目录
背景
基本构思
设计原则
硬件介绍
ESP32D0WDQ6
土壤湿度传感器
JQ8400-10P MP3 module
其他
硬件连接
MicroPython代码
成品以及效果
背景
办公室里的直饮机的水流很小,装满一瓶水需要在旁等待许久。
尤其是往热水壶接水时经常出现由于等待时间长->暂时离开->回来时已经水漫金山寺。
而且水流声也极小,在办公室的同事们往往也是水漫到脚下的时候才发觉。结果同事们被迫大扫除。而且我发过的洪水最多。
为了解决这个问题,暂用手头上的材料做一个简易的溢水报警系统,起到提前预警的效果。
基本构思
- 利用传感器获取桌面上的湿度信息。
- ESP32根据读取到的传感器数值,发出声光警报。
设计原则
先干再说、不行拉倒功能为主、外观忽视实现为主、原因忽略有啥用啥、不求和谐- 学习为主、实用为辅
硬件介绍
ESP32D0WDQ6
很久以前心血来潮,在某宝上贪小便宜买到的,到手后发现没有任何资料。封存,今天才开封。
ESP32D0WDQ6
芯片资料可以在参考以下连接并下载:
https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_cn.pdf
连接电脑后,打开Mu-editor的REPL会自动出现flash read error。初始化后未解决。
本着第三条设计原则,果断刷固件。解决!
至此主控板准备好。
土壤湿度传感器
土壤湿度传感器模块
由探头和处理单元由两根导线连接(貌似不分正负极),处理单元分别输出数字量信号和模拟量信号。对我来说只要是在湿度变化时,有变化的量就是好量。
某宝上搜索此产品和获得相应技术文件。
JQ8400-10P MP3 module
以前做项目时买到的,一直没有用。
JQ8400-10P
内置4M flash,可通过USB线直接装入音频;支持UART通讯;buzy引脚可用于监控该模块工作状态。
资料还请参考某宝。
其他
除上述主要部件外, 还有WS2812B RGB灯条、8Ohm 0.5W的小喇叭。
硬件连接
由于主控板的有些引脚功能还没弄清,所以将每个小功能单独测试后找到适合(能用)的引脚。
硬件连接图
MicroPython代码
from machine import Pin, ADC,UART
import time,neopixel
led_num=5 #灯条中灯珠的个数
level=8 #颜色变化级别
np=neopixel.NeoPixel(Pin(5),led_num)
adc=ADC(Pin(35)) #土壤湿度传感器读取端
uart = UART(2, baudrate=9600, rx=12,tx=14,timeout=10) #向MP3模块发送指令
speak_status=ADC(Pin(34)) #监控MP3模块的状态
buf = bytearray(6) #播放音频指令, 其实MP3模块中只有一个音频
buf[0] = 0xAA
buf[1] = 0x07
buf[2] = 0x02
buf[3] = 0x00
buf[4] = 0x01
buf[5] = 0xb4
buf1 = bytearray(4) #停止播放指令
buf1[0] = 0xAA
buf1[1] = 0x04
buf1[2] = 0x00
buf1[3] = 0xAE
while True:
Sensor_val = adc.read() #空气中的读数为4095,探头被湿毛巾包裹时度数大约在2000~3000右。
if Sensor_val>=4000:
uart.write(buf1) #发出停止播放音频的指令
for i in range(level): #灯条发出绿色呼吸灯效果
for j in range(led_num):
np[j] = (0,i,0)
np.write()
time.sleep_ms(40)
time.sleep_ms(800)
for i in range(level):
for j in range(led_num):
np[j] = (0,7-i,0)
np.write()
time.sleep_ms(40)
elif Sensor_val<=4000 and speak_status ==0:#当检测到湿度,并且MP3模块不工作时
uart.write(buf) #播放音频
for i in range(led_num): #灯条闪烁红光
np[i]=(255,0,0)
np.write()
time.sleep(1)
for i in range(led_num):
np[i] = (0,0,0)
np.write()
time.sleep(0.1)
time.sleep(1)
成品以及效果
成品图(关于外形,请参考设计原则2和4)
基于ESP32 D0WDQ6芯片+MicroPython的溢水报警系统
以上就是不求甚解的基于ESP32 D0WDQ6芯片+MicroPython的溢水报警系统。