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

描述


 

前言

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

 

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

 

机智云代码工程移植

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

 

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

芯片选型为:STM32F103RCTx


 

2、配置相关外设

2.1   SYS 配置为 SWD 调试

监测系统

 

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

监测系统

 

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

监测系统

 

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

监测系统

 

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

监测系统

 

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

监测系统

 

2.6  配置所用到的 IO 口

两个按键

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

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

 

DHT11 DATA 引脚

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

 

LED 灯

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

监测系统

 

2.7  配置时钟树

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

监测系统

 

2.8  自动生成 CubeMX 工程
 

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

监测系统

 

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

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

监测系统

 

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

监测系统

监测系统

 

修改 hal_key.c 中的初始化

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

监测系统

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

 

采集数据的上发

  •  
void gizwitsHandle(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_t gizwitsEventProcess(eventInfo_t *info, uint8_t *gizdata, uint32_t len)

参数 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 名前缀和密码。

监测系统

 

3、选择乐鑫模组

监测系统


 

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

监测系统
 


 

5、等待几秒钟时间

监测系统


 

6、连接成功
 

监测系统


 

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

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分