开始此章节教程之前,请确保你已经安装了相应的环境并且拥有相应的工具。
如果你还没有准备好可点此跳转
本章节将会带你使用树莓派连接PCF8591模数采集模块,并转换土壤湿度传感器采集的模拟量给树莓派,获取相应的土壤湿度数据。
硬件连接
1、土壤湿度传感器支持输出电平信号与模拟信号,电平信号只有高低,无法满足我们显示具体土壤湿度的要求,所以我们采用A0 模拟引脚,但是树莓派不支持模拟量输入,所以我们增加一个模数转换模块PCF8591,接线图如图所示。
我真的尽力了,建议看原理图,实物图真是惨不忍睹。连接正确的情况下,指示灯都会亮的。错了就多试几次,树莓派也是支持热拔插的,别断路就行。加油!
代码测试
1、直接运行代码肯定会报错,因为这里面还包含了光照强度传感器的代码,如图
2、所以我们需要注释掉光照强度传感器部分的代码,如图,需要用#号注释掉46-54行的代码。
31-44行的代码为PCF8591模块上面的温度与光照传感器,感兴趣的也可以去掉注释测试一下。
3、注释掉以后重新测试即可得到具体的土壤湿度数据,正常应该是0,因为土壤湿度计并没有插到土里,你可以尝试有湿纸巾包裹传感器或者握住湿度计观察读数是否变化。如图。
好的,恭喜你完成了土壤湿度传感器的连接验证,继续加油!
如果你还是报错,可以检查一下树莓派I2C是否开启,或者检查接线是否正确,设备是否损坏等,可以通过以下命令行查看。
sudo i2cdetect -y 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)
## 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/a0ad91328089359eb9d24dd9ed691107.png)
![img](https://img-blog.csdnimg.cn/img_convert/5a493824edaf028ac7543a9eb84c8489.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/c30d5818d50edb68640067f083e6574f.png)
![img](https://img-blog.csdnimg.cn/img_convert/3236e95b5deae233cdc63729f68e082c.png)
![img](https://img-blog.csdnimg.cn/img_convert/47a348838917bc9bf178fa0eda22a532.png)
![img](https://img-blog.csdnimg.cn/img_convert/bb8285743ba585fb8928ba1dae43966b.png)
![](https://img-blog.csdnimg.cn/img_convert/34a3fdcd257b3a922a35b9bd07945a35.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!
全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!