找回密码
 立即注册

QQ登录

只需一步,快速开始

点击进入授权页面

只需一步,快速开始

  • QQ空间
  • 回复
  • 收藏

参加活动: 0

组织活动: 0

  • TA的每日心情
    开心
    2017-11-22 08:54
  • 签到天数: 44 天

    [LV.5]常住居民I

    禅师 注册会员 2017-11-13 21:55 楼主
    本帖最后由 禅师 于 2017-11-13 21:57 编辑

    前言
    之前在论坛看有人说做一门铃,微信可以收到消息。
    最近有时间在学esp8266,所以参考他的想法做了一个。

    @hongzailalala


    在此特地感谢这位同学给我提供一个学习的机会。

    “远方”的门铃
    http://www.arduino.cn/thread-48317-1-1.html


    于是就有了这篇文章,其实最终实现的效果很简单。
    就是当门铃按键按下,微信会收到消息提醒。
    当然这只是初期,拓展的话可以进一步设计一套协议,添加更多设备,比如开关或者插座之类的电器设备。
    添加用户绑定功能,实现数据双向通信。
    下面介绍怎么完成他。
    一、硬件准备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+私有协议。

    初期计划实现步骤大致如下:
    • ESP8266固件开发(NodeMcu);
    • mqtt协议学习;
    • python版mqtt开发;
    • 把wxpy与mqtt融合(后台开发);
    • 与web版微信对接。
    使用说明1、flash模式
    用户在开机前3秒内按下flash key,系统进入flash模式。
    在该模式下,esp8266是AP模式,会生成一个wifi热点。名称为smledart_xxxxx xxxxx为芯片ID。



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



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



    另外后续可能采用通过smartconfig方式来连接wifi。即通过手机发送UDP报文出来,esp8266通过搜索报文自动建立连接。
    配置完成后,重启esp8266即可。
    热点名称,密码,服务器IP和端口,设备信息等信息 存在flash内,用文件系统spiffs来挂载读写。
    网页同样用文件系统保存,用html,js,css来编写网页
    2、normal模式
    开机,等5~6秒后,esp8266连上第一步配置的wifi后,同时也会连上服务器。
    这时就可以正常使用了。
    按下flashkey后,微信就会收到相应的消息了。这里按下flashkey不同于开机前三秒按下进入flash模式。



    最后放上录的小视频。




    发新帖
    发表评论
    高级模式  
    您需要登录后才可以回帖 登录 | 立即注册  
    关闭

    推荐主题 上一条 /2 下一条