首先,准备好开发板,以下是某开发板的概念图。总之有继电器,有交流电源,有烧录程序接口即可。不做广告,大家可以自行搜索。
准备好插座,典型的插座结构如下:
实物图大概是这样的:
拿到开发板,首先熟悉开发板的开发步骤
其一,刷机的固件(firmware、rom) 应该由开发板开发商提供,或者自己在 https://nodemcu-build.com 构建(定制)自己需要的版本,需要注意的是要明白自己 开发板的 rom 容量,功能越多,库也越多,能用于写程序的空间就越少(是否运行效率,耗电之类的影响也许有,不确定)。
还有一点就是新版本和旧版的 firmware 编程语法也有很大差别,因此考虑自己应用的源代码版本,否则修改起来工作量也不小。比如这里提到的 timer 模块 和 wifi 模块,已经后面要用到的 mqtt 模块,几个版本还是有需要注意的区别的。
然后刷固件注意几个参数,当然你也首先要明确自己的开发板 内存是多少,一般情况下很快就完成了,这里用一下厂家的图:
其二,测试小程序,这个程序使用了定时器 (timer),无线连接(wifi) 的方法还有调试信息的方法,当然,这里没涉及的 mqtt 也请弄通学会,弄懂之后请继续。
然后 ,拆除插座,焊接插座,连接到开发板,改装后的插线板大概就是这个样子:
然后编写程序,烧录其中,完整的程序截图(不需要照抄,要在理解的层面上修改)如下:
针对 mqtt 的注册与登录:你首先必须在mqtt 的服务器网站注册一个账户。然后使用用户名和密码进行登录。这个程序的功能是使用 mqtt 登录服务器之后,获得 mqtt 的参数,调整开发板上提供的三色灯的颜色,不过我增加了其中无间断(WiFi或者 mqtt 断线后续联,!!别用官方的自动重连参数!!)连接的部分。
顺利连接服务器之后,你可以使用 Paho 进行测试:
当然,你也可以使用手机端的 mqtt 客户端程序。比如我自制的 mqtt 客户端的登录和使用,程序截图:
烧录程序,自动值守。我们来看一下 mqtt 在使用过程中可能遭遇的四种状态:
单独提出来讲这部分,是因为这部分才是耗时最多的,花了很久时间笔者才弄清楚怎么检查 mqtt 断线重连的状态,而且也不是本人原创 =)
这个插座完成后,开发和测试时间应该有一两年了吧,我实际使用有半月有余,除极个别情况出现死机,整体效果尚可 ,项目完成。