DIY一款基于MySensors的ESP8266+NRF24L01的MQTT(WIFI)和RF无线网关(二)正式DIY
正式DIY
先声明一下,本次DIY并非原创。
硬件方面,参考了一款国外的DIY,他的项目比较完善。有多个信号指示灯和包装外壳等。
我们的DIY只是用ESP8266跟NRF24L01+加强版的模块直接连接,目的是做个简单的网关,对网关功能进行验证。
当然有兴趣的人可以去做完善的版本。
软件上,我们直接用那个国外DIY项目的源代码。
或者在其基础上进行修改。
这款基于ESP8266的网关支持SoftAP模式(热点模式)设置网络连接参数。
一、本文参考的国外DIY项目
这款MQTT-RF无线网关DIY项目在这里:
https://www.openhardware.io/view/349/MySensors-ESP8266-MQTT-gateway
外观图:
主板PCB:
电路原理图:
他的源代码:
https://github.com/Japio74/MySensorsESP8266MQTTGateway
或者:
https://www.openhardware.io/dl/58bdb24644f656d179dca125
二、本文采用的模块和连接线路
1、ESP8266模块
也有人叫它NodeMCU
前面我们研究了怎么用Arduino IDE给它烧程序。
这个模块可以用使用CP2102的或者CH340的,都可以,后者便宜几块钱。
可以在某宝上买到,十几块钱吧。
2、NRF24L01+ PA版(即所谓的功率增强版)
NRF24L01+ 无线模块 功率加强版 2.4G 无线收发通信模块
在某宝上,大概两三块钱。
当然我们现在是用在家用场合,收发距离不太远。
如果要远距离传输,最好买那种加屏蔽罩并带有外置天线的。
或者,模块带屏蔽罩,自己另加室外天线。
3、硬件连接线路
我们使用MySensors官方给出的连接定义,这个连接方式是跟网关源代码的定义相符合的。
参考:https://www.mysensors.org/build/connect_radio#nrf24l01+-&-esp8266
整个的连接共使用7根线,IRQ(中断信号管脚)不需要连接。
NRF24L01+ 的管脚定义: