Esp8266+DHT11+光线传感器做一个智能家居相关的一个小玩意
男朋友自己弄了一个智能家居产品,在开发过程中遇到很多问题,网上的解决办法很少,他想把自己的经历发出来,帮助一下被这些问题困扰着的朋友。
有项目想要合作或者有问题可以给他发邮件 :[email protected]
(以下是他原稿转载请注明出处,他****不能用,帮他发一下啦~)
今天做了个有意思的东西,给大家分享下!文章跨度比较大,涉及到C,Java,MQTT,前端几个方面,不喜勿喷。
我们今天的主角上场!
这是前段时间在TB买了几块ESP8266 01模块,最便宜的那种,一直仍在抽屉里吃灰,闲着也是闲着,不如拿出来做点东西。
查了一下资料,官网介绍它自带32位处理器,官网上也有对应的资料,下载了SDK和演示,以及ESP8266的开发环境,SDK里面有mqtt相关的demo,我们就做一个自动上传的传感器吧。
研究了一下手头的模组,发现只有两个IO,改一下,上图,根据网上找的一张定义,发现还有几个IO可以用。
动手改一下,从24脚GPIO5引线出来,到板子5脚。先把flash拆下来,飞线出来。
焊上flash,大功告成!
接下来开始,我们搭建一下MQTT服务器,这里先介绍一下MQTT:
MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议, 适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。目前已经是物联网消息通信事实上的标准协议了。
找了一台闲置的主机,配置一下,主机是百度云的CentOS,配置起来比较容易,这里我们选用MQTT消息中间件mosquitto:
直接在CentOS执行
yum install mosquitto mosquitto-clients
安装完成之后启动
mqtt
:
mosquitto -c /etc/mosquitto/mosquitto.conf -d
到此为止,
mqtt
搭建完成。
接下来找了一点
dht11
在
esp
的
demo
,在
esp8266 nonos sdk
自带的
demo
里面集成一下,直接编译。
编译成功,会有两个地址,根据地址烧写,具体烧写步骤直接百度吧,或者私信我。
烧写完成,测试一下。
CentOS服务器中输入命令 mosquitto_sub -t "#"
我们发现,现在数据已经传输过来了,接下来写一个后台,去接收下数据。
后台服务器我们用java开发,我们使用国内的JFinal极速开发框架,嗯,确实是极速,很简单,后台前端用layui,图表用echarts,数据库用mysql,mqtt与java之间通讯用:
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.1.1</version>
</dependency>
具体开发过程坎坷多磨,放过老夫吧!
最终!是这样的:
是这样的!
好了,分享就到这,有时间完善一下代码,把代码公布出来。