前言
基于先前写过ESP32蓝牙Mesh WIFI共存模式下的网关博文,挺多朋友感兴趣并私信问源码,于是在课余时间重新搭建了一套小型的系统,仍以ESP32作为蓝牙Mesh网关,泰凌微8258作为节点的方式,Linux环境下搭建mqtt服务器,qt creator设计客户端,实现了基于BLE MESH的完整物联网系统
文章会持续更新,如有疑问与异议,欢迎留言或私信
设计架构
- 采用ESP32作为网关,支持Mesh配网器功能
- 网关支持WIFI或网口RJ45方式入网
- MQTT服务器支持消息订阅与发布
- 普通节点支持友谊功能
- 低功耗节点通过普通节点进行数据交互
- PC端通过QT构建客户端进行发布与订阅消息
环境搭建基础
ESP32快速入门
泰凌微IDE安装与工程导入教程
泰凌微烧录调试工具下载
网关设计介绍
- 网关可以通过RJ45与WiFi方式入网
- ESP32 SDK中已经集成了LAN8720 PHY芯片的驱动,通过配置下引脚映射即可编译使用,相对应WiFi通信会稳定些;默认RMII PHY映射如下
No. | ESP32 GPIO | RMII 信号 | 备注 |
---|---|---|---|
1 | GPIO21 | TX_EN | EMAC_TX_EN |
2 | GPIO19 | TX0 | EMAC_TXD0 |
3 | GPIO22 | TX1 | EMAC_TXD1 |
4 | GPIO25 | RX0 | EMAC_RXD0 |
5 | GPIO26 | RX1 | EMAC_RXD1 |
6 | GPIO27 | CRS_DV | EMAC_RX_DRV |
- 使能ble与wifi协议栈coexis共存模式
演示
功能
节点设备为灯具,定时上报采集的温度,实时上报有人进过与开关状态,PC客户端可进行节点开关设置