【物联网从零开始做项目】基于stm32+ESP8266+onenet+EDP的智能消防系统

无法开学的博主正在一家墙上虽然挂着禁烟标志,但满屋子都是烟味的咖啡厅码字,可能是现在生活压力太大了吧。。看在博主熏的难受还在码字的份上,可爱帅气聪明大方的你真的不考虑一键三连,啊不,评论收藏关注一下吗?

一 项目需求及硬件清单

主要任务:传感器若干,收集传感器信息上传至onenet平台

传感器:MQ-2、MQ-9、DHT11、火焰传感器
主控芯片:stm32vet6(当然用其他也可以)
联网:ESP8266
其他:按键、继电器、洞洞板、电源、杜邦线等

二 onenet简介

关于是个物联网平台什么的就不说了,说说可以做什么吧
暂时我只用到图形界面(数据用图表方式显示出来)和基础的创建设备的功能。
做图表确实很方便,有现成的仪表盘可以使用

三 代码以及解释

代码是我在另一个博主的基础上改的,onenet部分基本无改变,博主原文讲的很好了我就直接把地址发一下。
https://open.iot.10086.cn/bbs/forum.php?mod=viewthread&tid=35887&highlight=stm32
https://open.iot.10086.cn/bbs/forum.php?mod=viewthread&tid=23845&highlight=stm32
特别感谢这位大佬的代码,对我很有帮助。
以上两个连接建议都看一遍,很有帮助,下面主要说一下使用方法、我自己的理解和改动。

四 使用方法

硬件连接方式

这里是一个贫穷的电路图,使用最小系统的话只要注意最下面6个模块和那个key按键就可以了。
【物联网从零开始做项目】基于stm32+ESP8266+onenet+EDP的智能消防系统_第1张图片

代码必须的改动

1.首先程序要和wifi模块连接,这里有个变量需要改动
在程序esp8266.h第18行附近

#define CWJAP       "AT+CWJAP=\"OPPO\",\"222233333\"\r\n" //ssid: onenet 密码:空

这里的OPPO是我的wifi名,222233333是我的密码,可以使用手机开热点,注意不要改错了(我就曾经把222233333写成了22223333),如果密码错误,debug时会卡在延时函数里。
2.硬件引脚定义
led我没有使用,程序里面有定义在led.c和.h文件里 默认PA1 PA2
继电器也在led.c .h文件里 默认PA3
ESP8266使用的串口在usart.c里 默认PA10 PA9
mq-2 mq-9 火焰传感器 按键在key.c .h文件里 默认PA 5678
DHT11在bsp_dht11.h里 默认PE6
其他还有esp8266的一些其他引脚,在上面的电路图里可以看到。
3.更改两个参数
在onenet.c中44行左右

#define DEVID "5968xxxx"//改成自己的设备ID
#define APIKEY "OCvJQfB2PwCwpeMxxxxxxxxxxxxx"//改成自己的APIKEY

这两个参数在哪里找请看下面onenet使用方式第三项

onenet使用方式

1.注册登录,这个我觉得不用说
2.点击开发者中心,创建自己的设备和产品,可以参考上面我发的连接以及onenet官方的新手教程,注意选择EDP有一个选项
3.在设备列表-设备详情里面,这个页面上有一堆参数,其中的设备ID,APIKEY是需要改到代码里的
4.创建数据流,数据流的名字一定和程序里一样

 OneNet_SendData("DHT11_tempint",DHT11_Data.temp_int);  //向平台发数据流DHT11_tempint的数值为DHT11_Data.temp_int

这里DHT11_tempint就是数据流的名字,这个名字可以随意只要onenet和代码的数据流名字对应就可以,当然可以创建多个数据流,另外OneNet_SendData()这个函数只能发送整数数据,所以请确保后面的变量是一个整数。
5.接收到数据之后可以在应用管理界面制作一个应用,其实就是图形化界面啦,给应用嵌入代码目前来看需要联系客服所以我还没有试过。
6.如果明明连接上wifi却连接不上onenet,可以查看设备列表-在线记录,是不是刚上线就被t掉了?如果是的话可能由于数据格式错误或者发送频繁,可以尝试多加延时函数或者断点调试。

五 我的改动

1.主要是原博主的代码里我只找到了发送整数的代码,于是自己写了一个发送浮点数的代码
函数是

OneNet_SendData_float("DHT11_humi",0.1);

经过测试单独使用无问题,
但我的代码里经过运算的浮点数变量发送没有实现,可能是变量有问题或者发送频繁或者其他原因,具体没有深究有兴趣的可以尝试一下,之后我会把单独测试好使的文件也上传上来。
2.增加了一些乱七八糟模块按键继电器啥的,大家凑合着看就行了
注意火焰传感器对光照敏感。

六 挖一个坑

考虑有时间移植到stm32c8t6以及其他型号上面(似乎只要关注定时器就好?),前面链接的博主那里也有c8的程序,有需要的可以看看。

你可能感兴趣的:(【物联网从零开始做项目】基于stm32+ESP8266+onenet+EDP的智能消防系统)