基于ESP8266的微信门铃

基于ESP8266的微信门铃

前言

最近在学习ESP8266,所以想用他来做个小玩意儿。

于是就有了这篇文章,其实最终实现的效果很简单。

就是当门铃按键按下,微信会收到消息提醒。

当然这只是初期,拓展的话可以进一步设计一套协议,添加更多设备,比如开关或者插座之类的电器设备。

添加用户绑定功能,实现数据双向通信。

下面介绍怎么完成他。

一、硬件准备

1、ESP8266模块

我选择的是nodemcu。因为他可以直接用micro usb烧录,下载程序方便。实质上他就是一块ESP8266.

2、其他

本来准备外接一个按键的,结果发现nodemcu上面自带了两个按键,一个复位键,一个flash键。

因为是做门铃,所以暂时不需要杜邦线和按键了,一个安卓充电线当做下载线就可以了。

二、软件准备

nodemcu原生是lua脚本来开发,但是我还是习惯用C来开发。

于是我的开发环境就是VS2015+visual micro

软件环境的搭建,可以见我博客的前几篇文章。

arduino IDE配置ESP8266开发环境
https://blog.rayuu.com/arduinoesp8266.html

使用VS2015 visual micro安装开发arduino
https://blog.rayuu.com/vs2015arduino.html

三、系统架构

  • 单片机部分:nodemcu采用C来编写;

  • 后台:linux平台下使用python来写;

  • 数据库:待定。

  • 通信协议:基于MQTT+私有协议。

初期计划实现步骤大致如下:

  1. ESP8266固件开发(NodeMcu);
  2. mqtt协议学习;
  3. python版mqtt开发;
  4. 把wxpy与mqtt融合(后台开发);
  5. 与web版微信对接。

使用说明

1、flash模式

用户在开机前3秒内按下flash key,系统进入flash模式。

在该模式下,esp8266是AP模式,会生成一个wifi热点。名称为smledart_xxxxx xxxxx为芯片ID。

QQ截图20171113200344.jpg

用户连接该热点后,打开浏览器,输入192.168.4.1
打开配置wifi界面

QQ截图20171113200423.jpg

输入正确的wifi热点和密码,即你家里的可以上网的wifi热点。
服务器地址和端口,后续不会对用户开放。这里仅供测试用。

Image.png

另外后续可能采用通过smartconfig方式来连接wifi。即通过手机发送UDP报文出来,esp8266通过搜索报文自动建立连接。

配置完成后,重启esp8266即可。

热点名称,密码,服务器IP和端口,设备信息等信息 存在flash内,用文件系统spiffs来挂载读写。

网页同样用文件系统保存,用html,js,css来编写网页

2、normal模式

开机,等5~6秒后,esp8266连上第一步配置的wifi后,同时也会连上服务器。

这时就可以正常使用了。

按下flashkey后,微信就会收到相应的消息了。这里按下flashkey不同于开机前三秒按下进入flash模式。

QQ截图20171113200547.jpg

最后放上录的小视频。

aaa.gif

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器