物联网DIY - 其实也没那么深奥

2022-01-12 11:07:23 13点赞 89收藏 11评论

创作立场声明:作者享受DIY带来的乐趣和自我满足感,由于各种产品、参数纷繁复杂,无法面面俱到,仅适合从个人角度阐述心得,且本文无任何普适性;

作者是DIY小白,不参与任何抬杠话题。值友如有感觉到冒犯之意,请多多包含;中心思想如有雷同,那应该是同道中人吧。

放个视频



1.灵感来源:一个懒到家的女朋友 ··· 【嫌弃的请直接下滑至 3】

广东的天气不比北方,上个月初的降温,很多地方都迎来了第一场雪,朋友们都迫不及待的发照片、发视频,都想第一时间向我们这些永远见不到雪的人炫耀一番,朋友圈里似乎也是“全国都在下雪”,而我们这边还是数次入冬失败的20来度。直到元旦前一周,大寒潮带来的降温才真正把我们带进同一个季节里。虽说不会下雪,但这个冷也实实在在的把我们锁在了被窝里。起床靠勇气,上班靠毅力。

平时下班,吃喝拉撒、洗洗涮涮搞个差不多后,基本就是窝在床上,看电视的看电视,打游戏的打游戏。有天晚上,视频时女朋友委屈巴巴地说:“好冷啊物联网DIY - 其实也没那么深奥 ,还得起来去门口那里关灯。要是能像哈利波特那样,用魔法关灯就好了。物联网DIY - 其实也没那么深奥

(0.0) !!

听到这个,我就不淡定了:这必须要宠一宠啊。我想值友们要是遇到类似的情况,肯定也得有所作为的,对吧?

我说的是:【打开值得买】-【搜索智能开关】

但是,这些智能玩意儿我是不满意的。要么贵(支持HomeKit),要么是定时的,要么下个APP,还得注册、同意各种协议、授权各种请求,先把你数字化的“脱”个精光,再满足你一下。。。。物联网DIY - 其实也没那么深奥

我想要一个能用手机控制的、价格还不贵的、还尽量少获取我个人隐私的一个开关。

然后我就尝试搜了一下DIY智能开关,果然各种网站、各种教程一大堆。可高兴坏了。

2.初识物联网 ··· 【关于ESP8266】

当你搜索到DIY智能开关时,页面上至少有一个条目是关于ESP8266 WiFi模块的。点进去一看,长得全都是不认识的样子,而且里面的文字,每一个都认识,都会读,但连起来的那些话,却是读懂都困难。

视频网站在这个时候就很有用了,它可以让你更直观的去了解一些东西,然后再去读那些相对生硬的文字教程,就会事半功倍。

看过两个视频之后,我就急着去淘宝了几个硬件回来:ESP8266芯片,4.9元一个;NodeMCU,12.8元一个;USB转串口连接器,4.5元一个;继电器,2.8元一个。

但是,真的着急了,甚至我收到快递后,还是不懂我买的东西怎么用。。。

NodeMCU(左上);ESP8266 *2(右上);USB转串口连接器(右下);继电器(蓝色)NodeMCU(左上);ESP8266 *2(右上);USB转串口连接器(右下);继电器(蓝色)

我又继续花了两天时间,算是基本上理清楚了一些思路:

  1. ESP8266 是自带 Flash存储和WiFi 功能的芯片,可以理解成一个单片机。

  2. NodeMCU 是一块集成主板,包含ESP8266 芯片、与芯片对应的驱动芯片和一些外围电路等。

其中常见的 WiFi 模块还有ESP32,以及各自下面的细分型号。目前我只了解ESP8266,下面也只针对ESP8266展开。

单片机:一种微型电脑(包含CPU、RAM、ROM、IO接口),使用时保持供电、写入系统、装好要跑的程序,即可。

3.物联网开发

既然ESP8266可以看作是一个单片机,那么就可以直接拿来使用。不过这样会产生两个问题:①ESP8266需要的是3.3V供电,且没有供电插口;②在Flash存储上写入固件(系统)时,需要USB转串口的连接器。

NodeMCU就不一样了,它集成了ESP8266,外围电路也已经设计好了,买回来只需要用MicroUSB 插口接入5V电源就能直接使用,而我们的电脑USB、老式手机充电器,都是5V的直流输出,简直不能更方便。

以前我连单片机是什么都不知道,现在肯定是选NodeMCU 上手做实验。

关于NodeMCU关于NodeMCU

将NodeMCU与电脑相连,电脑上会提示插入了新设备,在设备管理器中可以看到新增了一个串口设备(例如 COM3);如果没有,则需要安装驱动(如CH340等,具体看NodeMCU 使用的是哪个),另外,如果驱动也安装了,还是没有显示串口设备,就需要换一条 MicroUSB线,有些线没有数据传输功能。

选择你擅长的计算机语言,并在电脑上安装相应的开发环境,为刷固件(固件烧录)做准备。

而像我这种对编程语言零基础的人来说,其实哪个都不简单:打开一个教程,用的是lua;又打开一个教程,哦是Python;再打开一个吧:是C语言。刚开始完全是萌币状态,根本不懂其中的区别,只能感觉到每个人的教程都互不相同。。。过程就不赘述了,个人觉得基于C语言的 Arduino软件刚好可以满足我的要求,资源多,教程多,可参考的案例也多。

Arduino软件的样子,内容是HomeKit 开关的源码。Arduino软件的样子,内容是HomeKit 开关的源码。

3.1 在电脑上准备开发环境

安装好软件后,默认的开发板中只有Arduino自家的产品,并没有ESP8266的开发板管理器,需要手动安装:依次打开【文件】-【首选项】,在【附加开发板管理器网址】中添加如下网址。

https://arduino.esp8266.com/stable/package_esp8266com_index.json

在【工具】-【开发板】右侧聊表中选择【开发板管理器】,搜索“ESP8266”,点击安装。

安装 ESP8266开发板管理器安装 ESP8266开发板管理器

然后在【工具】-【开发板】右侧列表中即可看到ESP8266开发板的选项。将当前开发环境设置为ESP8266:选择【ESP8266 Boards】-【NodeMCU 1.0】

有了开发环境,还要安装相应的库文件,这是各路大神无私奉献的一些开源库文件,可以免费拿来用:在【选项】-【加载库】中选则【管理库】,搜索“HomeKit”点击安装。

安装 HomeKit 库文件安装 HomeKit 库文件

至此,关于NodeMCU的整体开发环境已经做好了,接下来就是写固件代码、测试环节,测试无误后,将固件刷入NodeMCU 即得成品。

3.2 局域网HomeKit固件代码编程、测试、烧录

NodeMCU自带一个蓝色的LED等,使用的是GPIO 2 口,我们测试的时候可以根据LED灯的状态,来判断是否实现了我们想要的结果。

首先礼貌性地感谢下HomeKit 库文件的作者“Mixiaoxiao”,万一他也逛值得买,也算是一种缘分。

打开他给的Homekit 开关案例,就可以图一的那个样子了。这里他已经将全部代码写好了,只需要修改一两个地方:①写上你家的wifi 名和密码;②选择性的更改 HomeKit 配对密码。具体如下图:

修改WiFi 名字 和 密码,NodeMCU 才会自动连接修改WiFi 名字 和 密码,NodeMCU 才会自动连接

选择性修改配对密码,然后验证,最后烧录选择性修改配对密码,然后验证,最后烧录

在没有代码错误的前提下,将固件刷入NodeMCU,刷机过程LED会快速闪烁,完成后去查看家里的路由器,会多了一个名叫 “ESP” 开头的联网设备。此时打开手机的 【家庭APP】-【添加或扫描设备】-【更多选项】-【输入配对密码】,等待片刻就会连接成功。此时APP开关打开:LED常量,APP开关关闭:LED熄灭。

回到Arduino软件,我们的目的是通过手机控制房顶灯的开关,而不是NodeMCU上的LED灯。因此需要修改输出的接口,这是就需要了解一下NodeMCU的工作原理:

NodeMCU 引脚定义NodeMCU 引脚定义

我们需要用的是蓝色方框对应的引脚,根据下图的源代码可以看出,板载LED灯用的是2号GPIO接口,把它改成5号,这样就可以控制我们想要控制的设备了。P.S. 截止到我写这篇文章,我也不懂引脚定义图上这么一大堆英文各自都是什么意思。

把LED灯的2号口,修改成5号把LED灯的2号口,修改成5号

修改后重新把固件刷入NodeMCU,此时再去控制开关,LED灯就不亮了。

灵魂 · 接线原理图灵魂 · 接线原理图

除此之外,NodeMCU的供电需要一个充电宝,或一个5V 的充电器,而且需要将房顶灯开关内的火线接入继电器COM口,从继电器“常开”NO口接出。这么一来,女朋友一定会认为是一个很大的工程。于是我干脆把床底下带夹子的小台灯拿给她了,平时夹在床头,睡前伸手就能关灯物联网DIY - 其实也没那么深奥

3.3 外网远程控制的测试

实现了局域网HomeKit 控制开关,但是没能派上用场,那不如把它改成控制电脑开关的设备吧,顺便做成外网也能控制的。

首先想到的是用继电器控制主机电源线,同时将主板的通电自启功能打开。不过仔细一想,这样的话,还是需要一个单独的5V供电。能不能用主机后面板的5V USB供电,用短接开机触点实现开机呢?查了一下主板开机原理,理论上是可行的!

面临两个问题:①NodeMCU开关形式是常开、常关,怎样实现点按的功能;②做成外网也能访问的样子。

关于问题①,这里我使用了一个笨方法:将开关 接通时间设置为0.2秒,然后回到常关状态;如果值友有更好的解决方法,还望不吝赐教。

问题①  开机代码问题① 开机代码

关于问题②,只需要将NodeMCU的联网端口映射出去,即可实现外网远程访问。通过使用ESP8266服务器库文件,可以建立一个具备基础功能的微型服务器,然后在路由器中将ESP8266的端口映射出去。

问题② 设置外网访问问题② 设置外网访问

用杜邦线将主板上的开机针脚与NodeMCU的GPIO4 、 GND引脚连接。

这时我还没买杜邦线,就用旧电脑上的线临时接了两根。这时我还没买杜邦线,就用旧电脑上的线临时接了两根。

上机实测上机实测

补充一句:主板开机原理实际上是将高电压(高电平)针脚与低电压(低电平)针脚接通,从而实现开机。从开机代码中可以发现,GPIO 4口有0.2秒的时间是低电平状态,因此只需要将GPIO 4与主板高电平针脚连接,即可实现开机。我在后续也验证了,而且目前也采用了只用一根杜邦线的方式。

差不多先写这么多,关于ESP8266还有更多的功能要开发:

准备研究外接红外收发器,目的是实现手机控制空调和电视;外接红外传感器,实现记录猫咪晚上的“蹦迪”轨迹。

猫管家压轴猫管家压轴

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

259元起

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

19.9元起

京东京造 TH1 时钟温湿度计 白色

京东京造 TH1 时钟温湿度计 白色

29.9元起

Xiaomi 小米 米家智能插座3

Xiaomi 小米 米家智能插座3

49.9元起

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

191.79元起

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

181.8元起

MIJIA 米家 1S 增强版 智能台灯 白色

MIJIA 米家 1S 增强版 智能台灯 白色

156元起

linptech 领普 智能无线开关KS1Pro屏显温湿度传感器智能联动免布线遥控开关

linptech 领普 智能无线开关KS1Pro屏显温湿度传感器智能联动免布线遥控开关

53.2元起

Xiaomi 小米 SJWS01LM 水浸卫士 白色

Xiaomi 小米 SJWS01LM 水浸卫士 白色

55元起

玺加 智能窗帘宝X3 光能充电窗帘伴侣

玺加 智能窗帘宝X3 光能充电窗帘伴侣

暂无报价

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 高清猫眼远程守护 AI指纹锁

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 高清猫眼远程守护 AI指纹锁

2899元起

Xiaomi 小米 无线开关 蓝牙版

Xiaomi 小米 无线开关 蓝牙版

32.9元起

米家 人体传感器2S 居 智能监测联动

米家 人体传感器2S 居 智能监测联动

61.99元起

Xiaomi 小米 MCCG02HL 小米门窗传感器 2 米家

Xiaomi 小米 MCCG02HL 小米门窗传感器 2 米家

34.9元起

MIJIA 米家 空调伴侣2 智能插座 白色

MIJIA 米家 空调伴侣2 智能插座 白色

68元起

卡萨帝(Casarte)掌静脉人脸识别带可视猫眼密码锁入户门带摄像头指纹锁电子锁智能门锁CFA-X70-CAU1罗曼金

卡萨帝(Casarte)掌静脉人脸识别带可视猫眼密码锁入户门带摄像头指纹锁电子锁智能门锁CFA-X70-CAU1罗曼金

6009元起
11评论

  • 精彩
  • 最新
  • 用esphome定制固件更简单些

    校验提示文案

    提交
    刚搜了下esphome,不太懂怎么使用这个网站,但是信息应该挺全的,谢谢大佬

    校验提示文案

    提交
    收起所有回复
  • esphome可以定制开关类型、方式、各种高低电平状态,支持各种传感器,支持mqtt,基本上你想到的控制方式与数据收录方式都有了。

    校验提示文案

    提交
    主要是用什么编程啊,lua还是Arduino?

    校验提示文案

    提交
    不用编程,自己定义好各GPIO,自动实时编译刷机,很方便的,尤其是开发板已装好但需要改动一些东西的时候,你提交后它自己会编译,然后通过wifi刷入。

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 去拼夕夕花30元买个涂鸦智能的mini通断器,配上天猫精灵或者小爱同学之类的智能音箱,可以在双控的基础上增加语音控制。很香。

    校验提示文案

    提交
    这东西的原理是利用蓝牙与智能音箱互联,接下来我会专门写一篇文章分析。低成本、容易上手,不过我个人不喜欢用。 [皱眉] [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 红外传感器能用来记录轨迹?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
89
扫一下,分享更方便,购买更轻松