赞
踩
土壤湿度传感器主要用于检测土壤中湿度是否达到阀值及湿度的大小,通过电位器调节土壤湿度控制阀值,可以自动对菜园,花园自动浇水,家庭花盆土壤湿度的控制,各种电子比赛,电子积木等。
引脚定义:
土壤湿度传感器HaaS Python驱动:下载地址
drv = SoilMoisture(DO)
参数 | 类型 | 必选参数? | 说明 |
DO | GPIO | 是 | 调用此函数前需确保 DO 对象已经处于 open 状态 |
- import utime # 延时函数在utime库中
- from driver import GPIO
- import soil_moisture
- # 初始化 GPIO
- DO = GPIO()
- DO.open('LM393_DO') # 按照 board.json 中名为 "LM393_DO" 的设备节点的配置参数
- drv = soil_moisture.SoilMoisture(DO)
- print("SoilMoisture inited!")
SoilMoisture inited!
drv.moistureDetect()
- detected = drv.moistureDetect()
- if detected == 0:
- print("moisture is detected")
- else:
- print('no moisture detected')
moisture is detected
此使用实例在 board.json 中定义了名为 LM393_DO 的 GPIO 类型的对象。在 Python 脚本中周期性的检查当前土壤湿度检测值结果并打印在日志中。
# board.json配置:
- {
- "name": "board-name",
- "version": "1.0.0",
- "io": {
- "LM393_DO": {
- "type": "GPIO",
- "port": 25,
- "dir": "input",
- "pull": "pullup"
- }
- },
- "debugLevel": "ERROR",
- "repl": "disable"
- }
# Python代码
- import utime # 延时函数在utime库中
- from driver import GPIO
- import soil_moisture
- if __name__ == '__main__':
- # 初始化 GPIO
- DO = GPIO()
- DO.open('LM393_DO') # 按照 board.json 中名为 "LM393_DO" 的设备节点的配置参数
- if ret != 0:
- raise Exception('open device failed %s' % ret)
- drv = soil_moisture.SoilMoisture(DO)
- print("SoilMoisture inited!")
- while True: # 无限循环
- detected = drv.moistureDetect() # 周期性检查噪音值
- if detected == 0:
- print("moisture is detected")
- else:
- print('no moisture detected')
- utime.sleep_ms(30)
- DO.close() # 关闭 GPIO 设备
- ...
- no moisture detected
- no moisture detected
- moisture is detected
- moisture is detected
- ...
主控芯片与土壤湿度感应传感器之间使用 GPIO 通讯,土壤湿度传感器通过 LM393 比较器对模拟信号电压进行比较,当达到阀值则输出对应开关量。
使用时感应板上未达阀值时,DO 输出高电平,感应板上湿度达到阀值时,DO 输出低电平。感应板恢复干燥环境时,DO又恢复到高电平状态。DO TTL 数字开关量可以方便检测土壤湿度是否达到阀值状态。
模拟量输出 AO 口可以和 ADC 接口相连,通过 AD 转换,可以获得土壤湿度更精确的数值;
如下是原理图,土壤湿度感应板输出电压到 LM393+ 口,LM393- 口接电位器,因此感应板与 510K 电阻产生分压电路输出电压到 LM393+,电位器产生参考电压输出到 LM393-。
LM393 的原理是:
因为 OUT 引脚有一颗 510K 上拉电阻,因此在开路的情况下为高电平,与地接通时时为低电平。
我们以 VCC 3.3V为例,当感应板无湿度环境时,LM393+ 为3.3V,LM393- 通过电位器输出电压假设为2V,那么 LM393- < LM393+,OUT 为开路,输出高电平 1,反之输出低电平。
[1] LM393 Datasheet
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。