基于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。

用户连接该热点后,打开浏览器,输入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模式。

最后放上录的小视频。

基于ESP8266的微信门铃相关推荐

  1. php与硬件通过wifi对接,基于ESP8266的WiFi排插接入贝壳互联实现天猫精灵控制

    认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 hzy3774 于 2020-1-8 00:45 编辑 * 实验 ...

  2. 基于ESP8266与51单片机的震动报警器(车辆报警器)(简单向)

    基于ESP8266与51单片机的震动报警器(车辆报警器) 前言 笔者是桂工通信工程的一名在读大学生,在进行课程设计的时候,想要去做一个可以在手机上进行消息提醒的报警器.在传统的声光报警器上有所突破,可 ...

  3. 【物联网初探】- 09 - 基于 ESP32 和微信小程序的土壤湿度监测【完结篇】

    文章目录 1. 硬件.接线.环境配置 2. 项目简介 2.1 初衷 2.2 技术路线 3. 实现方法 3.1 接线及电源选型 3.2 ESP32 端程序 3.2.1 源码 3.2.2 特别说明 3.3 ...

  4. android手机数字取证,基于Android智能终端微信应用的数字取证分析模型的研究

    第 42卷 第 10A期 2015年 10月 计 算 机 科 学 Computer Science Vo1.42 No.10A Oct 2015 基于 Android智能终端微信应用的数字取证分析模型 ...

  5. Java课程设计基于ssm的微信小程序

    Java课程设计, 基于ssm的微信小程序 后端涉及技术spring.mysql等 效果查看请扫一扫 喜欢可以点赞哟

  6. esp8266 接收udp广播_ESP8266_21基于ESP8266的一键配网

    这一节,说一下一键配网的用法.首先说为什么需要一键配网? 原因很简单,因为设备要上网.那,给那些设备配一个屏幕和一个输入设备行不行? 不是不可以,对那些成本没要求的设备是没问题的.但物联网设备大部分都 ...

  7. Serverless 实战 —— 基于 Serverless + 企业微信打造 nCoV 疫情监控小助手

    基于 Serverless + 企业微信打造 nCoV 疫情监控小助手 作者:Tabor 最近的一些疫情信息很让人揪心,为了方便大家掌握疫情信息,在空闲之余做了一个关于 nCoV 的疫情监控小助手.主 ...

  8. mpvue 微信小程序api_基于mpvue构建微信和支付宝小程序(1)

    基于mpvue构建微信和支付宝小程序(1) (1)----- 基础架构篇 why?为啥会有这个系列? 无论是百度和google,关于mpvue构建小程序的项目讲的都是管中窥豹,没有一个系统的讲解. 本 ...

  9. 基于java的微信公众平台开发视频教程

    微信作为当前流行的通信社交软件已经有了几个亿的用户量,并且每天还在继续增加.几乎每一部智能手机都安装了微信.其公众平台拥有强大的功能.但是由于微信的示例代码基本使用php编写,市场上的java开发资料 ...

最新文章

  1. linux kernel 内存管理 感想总结(未完待续)
  2. Android地图 总于实现了!
  3. 字符缓冲输入流,高效读取整行数据
  4. BZOJ2059: [Usaco2010 Nov]Buying Feed 购买饲料
  5. Java多线程学习二十七:AtomicInteger 在高并发下性能不好,如何解决?为什么?
  6. 【干货】PEP8风格指南
  7. Python机器人-最简单的机器人答复
  8. 129个百度网盘资源搜索网站大全(建议收藏)
  9. 黑鲨重装计算机安装无法继续,示例黑鲨装机大师装机失败无法开机怎么办?
  10. 基于Python+Django+mysql的实验室设备管理系统
  11. RAD Studio 10.3.1 cannot initialize object parameter of type..........“
  12. python 3d绘图立方体_Python3使用turtle绘制超立方体图形示例
  13. 无穷积分 ∫e^(-x^2)dx 的几种巧妙解法
  14. java开发工具-->IDEA
  15. win10 win7 php,win10装win7双系统引导
  16. Java容器深度总结:Java容器整体结构
  17. HttpWebRequest的GetResponse或GetRequestStream 超时决办法
  18. “在我心里,一直有一个户口本,上面有我们的名字”
  19. Python笔记(七):内置模块
  20. flex: 0 0 auto

热门文章

  1. php 使用rand函数产生一个随机数
  2. python显示圆周率的值是多少_用python做一个有趣的实验,看你的生日是否出现在圆周率中...
  3. 【高项备考】范围管理,过程域、知识点、案例学习
  4. Python编程-爬虫原理与简单实践
  5. 高新技术企业的优惠政策有哪些
  6. 工程伦理--15.6 克隆技术和干细胞研究的伦理问题(下)
  7. matlab复函数画图
  8. 多重宇宙与单一宇宙:科学真的能解释永恒的过去和未来吗?
  9. 新唐NUC980使用记录:在用户应用中使用GPIO
  10. 英语国际音标教学视频