文章目录
- 一、成果演示
- 二、所用到的模块
- 三、实现的功能
- 四、接线说明
- 五、WIFI模块配置步骤
- 5.1云平台介绍
- 5.2云平台使用
- 5.3使用USB转TTL测试联通云平台
- 六、STM32代码编写
- 七、手机上查看数据
- 6.1下载软件(仅限安卓手机)
- 6.2操作
一、成果演示
STM32通过物联网远程监测的温湿度和气压
二、所用到的模块
- STM32
- 正点原子WIFI模块
- DHT11温湿度传感器
- 蜂鸣器
- 气压传感器模块
- 面包板
- USB转TTL模块
- 杜邦线若干
三、实现的功能
- 将采集的温湿度数据通过WIFI上传到云平台,可通过电脑和手机就能远程查看到农业大棚里的数据
- 报警功能,当温度和湿度超过或者低于阈值时进行报警
- 气压环境监测
四、接线说明
蜂鸣器 核心板
GND
IO ------ PA8
VCC ----- 3.3v
温度传感器 – 采集环境温度 环境气压
VCC — 3.3V
GND
SCL — PB6
SDA — PB7
WIFI模块 链接原子云
VCC —3.3V
GND
TX —PA10
RX — PA9
RST — PC14
adc检测电压 气压和电压有一个对应关系
VCC — 5V
GND
AO — PA3
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1972dbb9ec1f4732a4375a5c76170545.png
五、WIFI模块配置步骤
5.1云平台介绍
项目中用到的云平台是原子云,在此项目中,相较于其他云平台兼容性要好很多,环境很好搭建。
云平台无非实现的就是远程控制和远程查看数据等功能,实现远程了解当地场景信息的目的,不用人为的去现场查看实际情况,节省人力物力。
5.2云平台使用
- 进入到原子云,没有账号需要先注册一个账号
- 点击左侧的设备管理
- 点击新增设备,选择ESP8266,因为我们买的wifi模块是这个型号
- 名称随便输入就好,比如“智慧大棚”
- 记住密码,默认是“12345678”
- 创建好之后就会有一个编号了,这个编号就是在网络上的唯一标识,就相当于人的身份证号
- 在分组管理中根据下图进行操作
- 账号信息中 将自己的API TOKEN记录一下
5.3使用USB转TTL测试联通云平台
WIFI模块可以使用STM32进行配置,也可以通过USB模块进行配置,都是通过串口进行的,本项目中是用的STM32直接发送串口指令,对WIFI模块进行配置,如果脱离STM32,使用USB转TTL配置也是可以实现上云通信功能的。
在电脑上通过串口小助手,以此发送以下指令
AT+RST
AT+CWMODE=1
AT+RST
ATE0
AT+CWJAP="GMWIFI-7402","GM5610322"
这里要久一点,大约10s左右,其他5s即可
AT+CIFSR(当断电,只需执行这两条指令就好)
AT+ATKCLDSTA="59312767944153276773","12345678"(当断电,只需执行这两条指令就好)
//实现透传发送数据验证一下 This ATK-MW8266D ALIENTEK Cloud Test
六、STM32代码编写
代码是通过HAL库实现的,外设驱动是使用软件STM32CubeMX配置的。
main.c中核心代码:
int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_I2C1_Init();MX_TIM2_Init();DHT11_Init();bmp180_get_cal_param();while (1){demo_run();}
}
demo_run:
void demo_run(void)
{uint8_t ret;char ip_buf[16];uint8_t key;uint8_t is_atkcld = 0;/* 初始化ATK-MW8266D */ret = atk_mw8266d_init(115200);if (ret != 0){ret = atk_mw8266d_init(115200);}ret = atk_mw8266d_restore(); /* 恢复出厂设置 */ret += atk_mw8266d_at_test(); /* AT测试 */ret += atk_mw8266d_set_mode(1); /* Station模式 */ret += atk_mw8266d_sw_reset(); /* 软件复位 */ret += atk_mw8266d_ate_config(0); /* 关闭回显功能 */ret += atk_mw8266d_join_ap(DEMO_WIFI_SSID, DEMO_WIFI_PWD); /* 连接WIFI */ret += atk_mw8266d_get_ip(ip_buf); /* 获取IP地址 */if (ret != 0){while (1){HAL_Delay(200);}}
// demo_show_ip(ip_buf);/* 重新开始接收新的一帧数据 */atk_mw8266d_uart_rx_restart();demo_key1_fun(&is_atkcld); /* 切换原子云连接状态 */if(is_atkcld == 0){demo_key1_fun(&is_atkcld); } while (1){DHT11_Read(&hum, &temp);GetRawData();if(bmp180_t>=30){beep = 1;}else{beep = 0;}/* 功能测试 */demo_key0_fun(is_atkcld);/* 发送接收自原子云的数据到串口调试助手 */demo_upload_data(is_atkcld);HAL_Delay(500);HAL_Delay(500);HAL_Delay(500);}
}
全部详细可通过下面链接资源下载:
https://download.csdn.net/download/m0_48216397/89585199
七、手机上查看数据
6.1下载软件(仅限安卓手机)
百度网盘链接:提取码:y5q4
6.2操作
下载后会让输入TOKEN,也就是在原子云中的账号信息中的TIKEN,输入上就进入到界面中了。
进入界面后点击订阅按钮,采集的数据就出现在手机上了,程序中设计的是每间隔1s往云上发送一次数据。