基于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+私有协议。
初期计划实现步骤大致如下:
- 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模式。
最后放上录的小视频。
基于ESP8266的微信门铃相关推荐
- php与硬件通过wifi对接,基于ESP8266的WiFi排插接入贝壳互联实现天猫精灵控制
认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 hzy3774 于 2020-1-8 00:45 编辑 * 实验 ...
- 基于ESP8266与51单片机的震动报警器(车辆报警器)(简单向)
基于ESP8266与51单片机的震动报警器(车辆报警器) 前言 笔者是桂工通信工程的一名在读大学生,在进行课程设计的时候,想要去做一个可以在手机上进行消息提醒的报警器.在传统的声光报警器上有所突破,可 ...
- 【物联网初探】- 09 - 基于 ESP32 和微信小程序的土壤湿度监测【完结篇】
文章目录 1. 硬件.接线.环境配置 2. 项目简介 2.1 初衷 2.2 技术路线 3. 实现方法 3.1 接线及电源选型 3.2 ESP32 端程序 3.2.1 源码 3.2.2 特别说明 3.3 ...
- android手机数字取证,基于Android智能终端微信应用的数字取证分析模型的研究
第 42卷 第 10A期 2015年 10月 计 算 机 科 学 Computer Science Vo1.42 No.10A Oct 2015 基于 Android智能终端微信应用的数字取证分析模型 ...
- Java课程设计基于ssm的微信小程序
Java课程设计, 基于ssm的微信小程序 后端涉及技术spring.mysql等 效果查看请扫一扫 喜欢可以点赞哟
- esp8266 接收udp广播_ESP8266_21基于ESP8266的一键配网
这一节,说一下一键配网的用法.首先说为什么需要一键配网? 原因很简单,因为设备要上网.那,给那些设备配一个屏幕和一个输入设备行不行? 不是不可以,对那些成本没要求的设备是没问题的.但物联网设备大部分都 ...
- Serverless 实战 —— 基于 Serverless + 企业微信打造 nCoV 疫情监控小助手
基于 Serverless + 企业微信打造 nCoV 疫情监控小助手 作者:Tabor 最近的一些疫情信息很让人揪心,为了方便大家掌握疫情信息,在空闲之余做了一个关于 nCoV 的疫情监控小助手.主 ...
- mpvue 微信小程序api_基于mpvue构建微信和支付宝小程序(1)
基于mpvue构建微信和支付宝小程序(1) (1)----- 基础架构篇 why?为啥会有这个系列? 无论是百度和google,关于mpvue构建小程序的项目讲的都是管中窥豹,没有一个系统的讲解. 本 ...
- 基于java的微信公众平台开发视频教程
微信作为当前流行的通信社交软件已经有了几个亿的用户量,并且每天还在继续增加.几乎每一部智能手机都安装了微信.其公众平台拥有强大的功能.但是由于微信的示例代码基本使用php编写,市场上的java开发资料 ...
最新文章
- linux kernel 内存管理 感想总结(未完待续)
- Android地图 总于实现了!
- 字符缓冲输入流,高效读取整行数据
- BZOJ2059: [Usaco2010 Nov]Buying Feed 购买饲料
- Java多线程学习二十七:AtomicInteger 在高并发下性能不好,如何解决?为什么?
- 【干货】PEP8风格指南
- Python机器人-最简单的机器人答复
- 129个百度网盘资源搜索网站大全(建议收藏)
- 黑鲨重装计算机安装无法继续,示例黑鲨装机大师装机失败无法开机怎么办?
- 基于Python+Django+mysql的实验室设备管理系统
- RAD Studio 10.3.1 cannot initialize object parameter of type..........“
- python 3d绘图立方体_Python3使用turtle绘制超立方体图形示例
- 无穷积分 ∫e^(-x^2)dx 的几种巧妙解法
- java开发工具-->IDEA
- win10 win7 php,win10装win7双系统引导
- Java容器深度总结:Java容器整体结构
- HttpWebRequest的GetResponse或GetRequestStream 超时决办法
- “在我心里,一直有一个户口本,上面有我们的名字”
- Python笔记(七):内置模块
- flex: 0 0 auto