文章目录
- 一、成果演示
- 二、所用到的模块
- 三、实现的功能
- 四、接线说明
- 五、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

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往云上发送一次数据。