全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 物联网 >

基于物联网的远程温湿度监测系统(3)机智云代

时间:2022-04-27 11:02

人气:

作者:admin

标签: 监测系统  物联网 

导读:前言本项目主要通过使用STM32F103C8T6作为主控MCU,ESP8266作为数据透传模块,接入机智云AIoT云平台,通过在线智能产品,实现了远程联网、温湿度监测、APP控制等功能。上文介绍了“创建...


前言

本项目主要通过使用STM32F103C8T6作为主控MCUESP8266作为数据透传模块,接入机智云AIoT云平台,通过在线智能产品,实现了远程联网、温湿度监测、APP控制等功能。

上文介绍了“创建云端产品,烧录Gagent”,“DHT11驱动的编写”。本文主要介绍,机智云代码工程移植、采集数据上发、控制数据下拉、配置入网。

机智云代码工程移植

前面我们有说到,在机智云平台创建产品完成后,生成了一个 MCU 的工程,这个工程是 CubeMX 所创建的,为了保持一致性,我们选择使用 HAL 库进行开发。

1、创建一个新的 CubeMX 工程。

芯片选型为:STM32F103RCTx


2、配置相关外设

2.1 SYS 配置为 SWD 调试

fec766de-c581-11ec-8521-dac502259ad0.png

2.2 使能外部高速时钟,并配置为外部晶振

fede1640-c581-11ec-8521-dac502259ad0.png

2.3 配置 TIM3 相关参数,机智云的通信协议中会用到

fef3ae24-c581-11ec-8521-dac502259ad0.png

2.4 配置 TIM2 相关参数,用于实现 us 级的延时

ff071e32-c581-11ec-8521-dac502259ad0.png

2.5 配置 USART1,用在 PC 端打印信息

ff288c8e-c581-11ec-8521-dac502259ad0.png

2.6 配置 USART2,用于连接 ESP-8266

ff3b74c0-c581-11ec-8521-dac502259ad0.png

2.6 配置所用到的 IO 口

两个按键

两个按键的公共端配置为 推挽输出模式、低电平且下拉

两个按键的自由端配置为 输入模式、上拉

DHT11 DATA 引脚

配置为 推挽输出模式、高电平且上拉

LED

配置为 推挽输出模式、低电平

ff526f68-c581-11ec-8521-dac502259ad0.png

2.7 配置时钟树

输入频率根据板子上的晶振频率填写,我们现在是 8 MHz。接着锁相环进行 9 倍频,使 AHB、APB1、APB2 桥的频率达到最高。

ff6fab6e-c581-11ec-8521-dac502259ad0.png

2.8 自动生成 CubeMX 工程

最好对下面的选项进行勾选。

ff83642e-c581-11ec-8521-dac502259ad0.png

3、将机智云平台生成的协议 demo 移植进入自己的工程

打开机智云工程文件夹,将其中的 Gizwits、Hal、Utils 文件夹复制到自己的工程文件夹中。

ff9545cc-c581-11ec-8521-dac502259ad0.png

Keil 中将复制的所有文件导入工程

ffafb45c-c581-11ec-8521-dac502259ad0.png

ffc3defa-c581-11ec-8521-dac502259ad0.png

修改 hal_key.c 中的初始化

语句中对应的IO 口和引脚号改为自己配置好的

ffd84c32-c581-11ec-8521-dac502259ad0.png

完成上述步骤后,工程移植成功。

采集数据的上发

voidgizwitsHandle(dataPoint_t*dataPoint)

参数 dataPoint [in]:用户设备数据点。

该函数中完成了相应协议数据的处理即数据上报的等相关操作。

自定义相关代码如下:

void userHandle(void)
{
  DHT11_Read_Data(&temperature, &humidity);
 currentDataPoint.valuetemperature = temperature;//Add Sensor Data Collection
  currentDataPoint.valuehumidity = humidity;//Add Sensor Data Collection
}

控制数据的下拉

int8_tgizwitsEventProcess(eventInfo_t*info,uint8_t*gizdata,uint32_tlen)

参数 info [in]:事件队列

参数 data [in]:数据

参数 len [in]:数据长度

用户数据处理函数,包括wifi状态更新事件和控制事件。

自定义相关代码如下:

case EVENT_LED:
  currentDataPoint.valueLED = dataPointPtr->valueLED;
  GIZWITS_LOG("Evt: EVENT_LED %d \n", currentDataPoint.valueLED);
if(0x01 == currentDataPoint.valueLED)
  {
//user handle
    PCout(15) = 1; // led灯亮
  }
else
  {
//user handle  
    PCout(15) = 0; // led灯灭
  }
break;

ESP8266配置入网

有两种配网的方式:airlink、softap。

这里我们选用 softap 模式进行配网。

步骤如下:

1、板子上电后,短按 按键2 进入 softap 模式

如果想要查询是否处于 softap 模式,可以将串口连接至 PC,查看打印出的相关信息。

2、进入机智云 APP 中选择 热点配置

填写要连接的路由器的账号和密码,以及ESP-8266发出的 WIFI 名前缀和密码。

fff746fa-c581-11ec-8521-dac502259ad0.jpg

3、选择乐鑫模组

000c68aa-c582-11ec-8521-dac502259ad0.jpg


4、按照提示,连接前缀为 XPG-GAgent- 的热点信号

002234be-c582-11ec-8521-dac502259ad0.png


5、等待几秒钟时间

003d5974-c582-11ec-8521-dac502259ad0.jpg


6、连接成功

0051ca1c-c582-11ec-8521-dac502259ad0.jpg


至此,即完成了 ESP-8266 softap 模式的配网。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信