
开源协议
:GPL 3.0
描述
一、概述
本人也是小白一名,物联网工程专业,学习间发现做些物联网的小项目也是非常有趣的,奈何实力有限,在这里展示一下做出来的小作品。由于电路设计和焊接技术不够,思索再三决定使用立创开发板推出的ESP32核心板进行设计,简化设计流程,降低设计难度。
系统从整体上分为两部分,ESP32设备作为下位机,采集温湿度、光照度等传感器数据;微信小程序作为上位机,接收设备端上报的状态信息,并且远程遥控设备硬件的开关状态。如图是系统结构简图。

二、ESP32设备端
ESP32设备端包括电源电路、核心板、传感器、驱动设备以及人机交互接口等几部分。

2.1 电源管理电路
ESP32核心板具备USB接口,可以通过USBC接口取得5V供电,并且核心板上的电源电路将5V转为3.3V为MCU等芯片提供电源电压,因此设备端的电源输入也采用USB的5V电源电压。但是由于设备要扩展出OLED显示屏,传感器等其他外设,为确保电源稳定和功率充足,在设计的底板上使用AMS1117-3.3将5V转为另外一路3.3V为显示屏、传感器等供电。

2.2 传感器
传感器包括DHT11温湿度传感器、光照度传感器和MQ系列气体传感器。其中DHT11采用单总线与ESP32进行数据通信,光照度传感器采用光敏电阻分压采集的形式,MQ系列传感器通过5V电源进行加热供电,并同样采用分压采集的方式接入到ESP32的ADC采集引脚。这些传感器采集环境的状态信息并交给ESP32进行处理和运算。
2.3 驱动设备
驱动设备包括风扇和水泵,模拟实现通风散热和浇灌补水的功能。二者均使用5V电源供电,并通过三极管驱动电路控制。

2.4 人机交互
采用0.96寸OLED显示各信息,提供可视化操作,并通过三个按键读取用户交互的输入,来控制系统逻辑。

0.96寸OLED通过I2C总线与ESP32进行通信,程序移植和控制较为方便,且速率足以满足需求。
2.5 设备入网
ESP32通过Wifi连接网络,并接入到MQTT服务器,在指定的主题下每一秒发布一次心跳数据,心跳数据格式采用JSON格式。同时订阅上位机下发指令的主题,接收上位机指令。
设备端代码采用Arduino IDE编写编译并烧录。Arduino丰富的库资源大大降低开发难度,使开发快捷方便,不过并不利于底层的学习,后续会进一步使用ESP-IDF完成设备端开发。
三、微信小程序
小程序采用原生开发的方式,使用微信开发者工具+JS+WXML+WSS组合开发,绘制了简单的界面,显示基础传感器数据和开关状态。小程序通过mqtt.js库接入MQTT服务器,订阅发布数据,实现和设备端的通信。

设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程

评论