zengming00 / my-esp8266

尝试一下“物联网”开发,做了个远程控制空调的小玩意,用的最简单的实现方式

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

996.icu

通过网络远程控制一切可以红外遥控的设备、可以通过机械开关的设备

基于最简单的http服务器工作,通过轮询http请求获取命令,执行完成后再通过http通知服务器执行完毕,为什么不用mqtt之类的库?简单的就是最好的,直接说就是我才玩了两天,很多东西根本就不会,但目前已经实现了我远程控制空调的想法,下班时打开手机,往服务器添加个命令,到家就可以享受空调了。

“掏包网上买个空调伴侣多方便?”

“我就喜欢折腾,你管我”

开发要求

  1. 了解基本的单片机开发,会刷固件,会用串口
  2. 会基本的c语言编程
  3. 懂一点点电子知识,看得懂电路图,认得出元件,会焊接电子元件
  4. 有受控的http api接口(可以不会服务端开发,只要有能受你控制的http网站内容都可以,比如某论坛的贴子内容、博客的标题等,一切可以受你控制的部分都可以利用起来)

硬件与成本

  • 1块NodeMCU开发板 价格14.3元 (买的4MB Flash规格,卖家宣传的32M是bit单位)
  • 1个红外发射led 价格0.14元
  • 1个三极管 任意型号,因为手上只有一个三极管 9014 于是我就用了(开发板GPIO输出的电流不足以驱动led)
  • 1个红外接收头 VS1838B 价格0.25元

开发时使用的环境

  • Arduino 1.8.9

开发板管理器中安装esp8266 v2.5.1, 选择NodeMCU 1.0开发板

如果刷写的程序无法运行,可以刷一遍AT固件,怎么刷自己网上搜,以及Arduino工具擦除flash勾选all

使用下面两个库:

  • IRremoteESP8266 V2.6.0
  • ArduinoJson v6.10.1

在示例中找到IRrecvDumpV2并刷入,按要求连接红外接收头dump遥控器数据, 将数据替换掉源码中的相应部分,重新编译上传到开发板即可

红外接收管和发射管的引脚在源码中有定义,不建议修改,因为有些引脚有特殊功能有可能不工作。 发射管需要接个三极管,否则GPIO引脚的电流不够,导致遥控的距离很短

esp8266.js 是我的服务端代码,仅做参考

代码中有控制led的功能,可以稍微修改控制继电器模块扩展其它远程控制家用电器的功能,物联网就是这么工作的

2019/05/12 19:00左右完成开发

2019/05/13 23:43经过一整天的实际使用,板子工作正常,成功在我中午和晚上回家时打开了空调

代码写得非常烂,很多年不玩单片机和写c语言,很多都忘了

About

尝试一下“物联网”开发,做了个远程控制空调的小玩意,用的最简单的实现方式

License:MIT License


Languages

Language:C++ 84.7%Language:JavaScript 15.3%