本项目通过STM32的C8t6获取DHT11的温湿度数据,以及空气质量传感器MQ135,通过一块ESP8266模块连接wifi,把数据上传到机智云平台,可通过手机APP查看。
1、模块准备
一块STM32F103C8T6一块IIC的OLED模块一个DHT11一个MQ135空气质量模块一块ATK-8266wifi模块一个ST-link下载模块杜邦线若干
2、程序准备
首先,先让C8T6能够在OLED上正常显示温度、湿度、以及空气污染气体传感器。在这里我主要说一下MQ135的计算,至于DHT11如何显示温度湿度。关于MQ135:MQ-135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(Sn02)。当传感器所处环境中存在污染气体时,传感器的电导率随空气中污染气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-135气体传感器对氨气,硫化物,苯系蒸气的灵敏度高,对烟雾和其他有害气体的检测也很理想。这种传感器可检测多种有害气体,是一款适合多种应用的低成本传感器。特点:1.在较宽的浓度范围内对有害气体有良好的灵敏度2.对氨气,硫化物,苯系等气氛灵敏度较高3.长寿命,低成本4.简单的驱动电路
因为我这里要让MQ135显示实时的空气质量所以我选择了模拟量输出,并使用了STM32的AD转换。C文件的函数较多,请阅读原文获取)主函数部分以及计算部分
3、机智云移植
如果可以正常显示温度和湿度以及MQ135的数值了,那下面就开始准备机智云的移植了。首先先到机智云官网注册一个账号,然后登陆首先点击创建个人项目
选择方案,我这里是STM32+WIFi的方案,就选择第一个然后添加数据点温度:Temp,类型为数值,控制方式只读,湿度:Humi,类型为数值,控制方式只读空气质量:MQ135 ,类型数值,只读,范围这些就很好理解了开关类可选择布尔值,比如控制LED
然后保存方案点开基本信息,获取你的密钥然后点击MUC方案,点击修改,把你的密钥粘贴,然后生成代码包点击下载
我用的是标准库,机智云生成的是Hal库,要修改一下,这里我直接给出Usart3和定时器的代码
把机智云生成的Pack解压,复制里面的Gizwits和Ultis到C8t6的目录下然后添加刚刚的Timer usart3.usart3 和Timer的代码过多,请阅读原文获取。然后把这些文件添加到C8t6工程里面,include路径等
然后开始打开gizwits_product.c“
接下来处理Main函数部分由于我这边以及处理好了,我就给你们看就好了
然后是通过按键连接wifi部分
接下里是获取网络时间的部分
主函数部分代码(注:某些你们没有的头文件记得注释掉)
把代码编译通过后就下载到开发板里面然后按下按键,因为我的是c8t6的系统版,有一个按键,你们没有的可以用一个杜邦线接3.3来代替一下。
按下按键进入AIRLINK,然后机智云点击我的设备界面的右上角的+,点击一键配置然后手机连接一个2.4g的wifi,然后等待配置成功
4、效果
开发板运行效果
还可以在官网查看数据变化曲线