首页 > 分享 > 【基于物联网的智能草莓种植系统的设计与实现系列教程】3

【基于物联网的智能草莓种植系统的设计与实现系列教程】3

【基于物联网的智能草莓种植系统】土壤湿度传感器连接验证与模数转换 项目各章节跳转树莓派环境说明硬件连接代码测试完整代码猜你需要

项目各章节跳转

可点击跳转到对应章节 ==》 努力更新中。。。

0.基于物联网的智能草莓种植系统项目简介
1.项目相关硬件购买清单与资料下载
2.温湿度传感器代码与接线验证
3.土壤湿度传感器代码与接线验证
4.光照度传感器代码与接线验证
5.PWM控制代码与接线验证
6.摄像头连接验证
7.触控屏连接验证
8.项目整体验证
9.项目快速搭建教程

树莓派环境说明

开始此章节教程之前,请确保你已经安装了相应的环境并且拥有相应的工具。
如果你还没有准备好可点此跳转

本章节将会带你使用树莓派连接PCF8591模数采集模块,并转换土壤湿度传感器采集的模拟量给树莓派,获取相应的土壤湿度数据。

硬件连接

1、土壤湿度传感器支持输出电平信号与模拟信号,电平信号只有高低,无法满足我们显示具体土壤湿度的要求,所以我们采用A0 模拟引脚,但是树莓派不支持模拟量输入,所以我们增加一个模数转换模块PCF8591,接线图如图所示。
在这里插入图片描述
请添加图片描述

我真的尽力了,建议看原理图,实物图真是惨不忍睹。连接正确的情况下,指示灯都会亮的。错了就多试几次,树莓派也是支持热拔插的,别断路就行。加油!
在这里插入图片描述

代码测试

1、直接运行代码肯定会报错,因为这里面还包含了光照强度传感器的代码,如图
在这里插入图片描述

2、所以我们需要注释掉光照强度传感器部分的代码,如图,需要用#号注释掉46-54行的代码。
31-44行的代码为PCF8591模块上面的温度与光照传感器,感兴趣的也可以去掉注释测试一下。在这里插入图片描述

3、注释掉以后重新测试即可得到具体的土壤湿度数据,正常应该是0,因为土壤湿度计并没有插到土里,你可以尝试有湿纸巾包裹传感器或者握住湿度计观察读数是否变化。如图。
在这里插入图片描述
好的,恭喜你完成了土壤湿度传感器的连接验证,继续加油!
如果你还是报错,可以检查一下树莓派I2C是否开启,或者检查接线是否正确,设备是否损坏等,可以通过以下命令行查看。

sudo i2cdetect -y 1 1

在这里插入图片描述

完整代码

代码和上面的测试代码完全一样的,推荐去第一章统一下载,点击跳转。

import smbus import time if __name__ == "__main__": #BH1750地址 __DEV_ADDR=0x23 __PCF_ADDR=0x48 #控制字 __CMD_PWR_OFF=0x00 #关机 __CMD_PWR_ON=0x01 #开机 __CMD_RESET=0x07 #重置 __CMD_CHRES=0x10 #持续高分辨率检测 __CMD_CHRES2=0x11 #持续高分辨率模式2检测 __CMD_CLHRES=0x13 #持续低分辨率检测 __CMD_THRES=0x20 #一次高分辨率 __CMD_THRES2=0x21 #一次高分辨率模式2 __CMD_TLRES=0x23 #一次分辨率 __CMD_SEN100H=0x42 #灵敏度100%,高位 __CMD_SEN100L=0X65 #灵敏度100%,低位 __CMD_SEN50H=0x44 #50% __CMD_SEN50L=0x6A #50% __CMD_SEN200H=0x41 #200% __CMD_SEN200L=0x73 #200% __PCF_THRES=0x42 #检测 while True: # bus.write_byte(0x48,0x40) # bus.read_byte(0x48) # illnum =bus.read_byte(0x48) # illnum =(255-illnum)/255*1000 # print("光照强度:%.2f" % illnum + " lux ") # bus.write_byte(0x48,0x41) # bus.read_byte(0x48) # temnum =bus.read_byte(0x48) #temnum +=bus.read_byte(0x48) # temnum +=bus.read_byte(0x48) # temnum =temnum/3 # temnum =(255-temnum)/255*100-6.5 # print("环境温度:%.2f" % temnum + " ℃ ") bus=smbus.SMBus(1) bus.write_byte(__DEV_ADDR,__CMD_PWR_ON) bus.write_byte(__DEV_ADDR,__CMD_THRES2) time.sleep(0.2) illnum=bus.read_word_data(__DEV_ADDR,0) #read_word_data illnum=((illnum>>8)&0xff)|(illnum<<8)&0xff00 illnum=round(illnum/(2*1.2),2) result="光照强度: "+str(illnum)+" lux" print(result) bus.write_byte(__PCF_ADDR,__PCF_THRES) bus.read_byte(__PCF_ADDR) soilnum =bus.read_byte(__PCF_ADDR) soilnum =(255-soilnum)/255*100 print("土壤湿度:%.2f" % soilnum + " % ") print("-------------------------") time.sleep(1)

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364

猜你需要

相关知识

【基于物联网的智能草莓种植系统的设计与实现系列教程】5
基于物联网的农业虫害智能监控系统
基于物联网的农业虫害智能监控系统的设计与实现
基于物联网的害虫智能监测系统设计与实现
基于物联网的智能花卉栽培系统设计研究.pdf
基于物联网的室内立体化绿植养护系统的设计与实现
基于物联网的番茄温室环境智能调控系统设计与实现
基于物联网的智能花卉培护系统设计
基于物联网的家庭园艺系统的设计与实现
基于物联网智能温室大棚控制系统的设计

网址: 【基于物联网的智能草莓种植系统的设计与实现系列教程】3 https://m.huajiangbk.com/newsview1558354.html

所属分类:花卉
上一篇: 秋日松雅湖 粉黛编织浪漫梦
下一篇: 草莓怎么画?绘画步骤图有哪些?