当前位置: 首页 > news >正文

嵌入式人工智能(40-基于树莓派4B的水滴传感器和火焰传感器)

虽然这两个传感器水火不容,我还是把他们放到一起了。本文是有线传感器的最后一个部分了。后面如果还有文章介绍有线传感器,也是补充学习其他内容不得已而为之。如果不是,就当我没说,哈哈。

1、水滴传感器

水滴传感器又称雨滴传感器/水位感应模块,是一种能够检测雨水降落的设备。它通常由一个导电板和一个检测电路组成。当雨滴落在导电板上时,会改变导电板上的电阻,从而改变检测电路的电压或电流。通过检测电路对电压或电流的变化进行分析,就能判断出是否有雨滴降落。

雨滴传感器常用于自动雨刮器、洒水器、智能灯具等设备中。在自动雨刮器中,雨滴传感器可以检测到雨滴的降落,并通过信号控制雨刮器的启动和停止,提供更好的驾驶视野。在洒水器中,雨滴传感器能够检测到雨水的降落,从而自动停止洒水,节约水资源。在智能灯具中,雨滴传感器可以检测到雨滴的降落,并自动调节灯光亮度,提供更好的照明效果。

雨滴传感器的工作原理通常基于电阻、电容或光电效应等原理。不同类型的传感器采用不同的原理,但都能够实现对雨滴降落的检测。

功能介绍

接上 5V电源,电源指示灯亮,感应板上没有水滴时,DO输出为高电平,开关指示灯灭,滴上一滴水,DO输出为低电平,开关指示灯亮,擦掉上面的水滴,又恢复到,输出高电平状态。AO模拟输出,可以连接单片机的AD口检测滴在上面的雨量大小,DO TTL数字输出也可以连接单片机检测是否有雨。

水位检测:水位检测传感器,其是通过具有一系列的暴露的平行导线线迹测量其水滴/水量大小从而判断水位。轻松完成水量到模拟信号的转换,输出的模拟值可以直接被开发板读取,达到水位报警的功效。

2、火焰传感器

火焰是由各种燃烧生成物、中间物、高温气体、碳氢物质以及无极物质为主体的高温固体微粒构成的。火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射,不同燃烧物的火焰辐射强度、
波长分布也有所差异,但总体来说,其对应火焰温度的近红外波长域及紫外光域具有很大的辐射强度根据这种特性就可制成火焰传感器。火焰传感器根据探测波长的不同,一般可分为紫外火焰传感器和远红外火焰传感器两种。

紫外火焰传感器可以用来探测火源发出的400nm以下的热辐射。当红外光波长在350nm 附近时,
其灵敏度达到最大。紫外火焰探头将外界红外光的强弱变化转化为电流的变化,再通过AD转换器转换为0~255范围内数值的变化。外界紫外光越强,数值越小,紫外光越弱,数值越大。

本次使用的是一个远红外火焰传感器,KY-026模块,如图所示。其工作电压为3.3~5V,可以输出数字信号和模拟信号。该传感器能够探测到波长在760nm~1100nm范围内的红外光,探测角度为60°,其中红外光波长在880nm附近时,其灵敏度达到最大。当检测到有火焰时数字输出口输出高
电平,模拟输出口输出电压与火焰大小有关,火焰越大电压越高,模块的灵敏度可通过可调电位器调节。如果使用该模块的模拟信号接口,还需要一个模数转换器(ADC),我这边只有那个PCF8591的8位4路AD转换模块,如果同学要求较高的话,可以选用10位8通道的MCP3008A/D转换芯片。我手头没有这个,所以只能用8位AD,范围0-255的数字量。

3、与树莓派的连接

本次实验我打算2个模块一起做了,水滴传感器接PCF8591的IN0,火焰传感器接PCF8591的IN1。其他引脚的接线为VCC:接电源正极 3v-5v。GND:接电源负极。DO:TTL开关信号输出,可以接任一GPIO,我上次传感器实验是做的DO,本次做AO。

4、实验代码与实验现象

本次实验玩点花活,水滴值在数码管上显示。火焰的大小可以用LED灯亮的个数来显示。

import TM1638
import smbus
import timebus = smbus.SMBus(1)#通过 sudo i2cdetect -y -1 可以获取到IIC的地址
def setup(Addr):global addressaddress = Addr# 读取模拟量信息
def read(chn): #通道选择,范围是0-3之间try:if chn == 0:bus.write_byte(address,0x40)if chn == 1:bus.write_byte(address,0x41)if chn == 2:bus.write_byte(address,0x42)if chn == 3:bus.write_byte(address,0x43)bus.read_byte(address) # 开始进行读取转换except Exception as e:print ("Address: %s" % address)print (e)return bus.read_byte(address)def init():global tmtm=TM1638.TM1638(stb=36,clk=38,dio=40) tm.brightness(2)setup(0x48)def main_loop():init()while True:AIN0 = read(0)AIN1 = read(1)print(AIN0)print(AIN1)if AIN1<=32:tm.leds(0b10000000)elif AIN1<=64:tm.leds(0b11000000)elif AIN1<=96:tm.leds(0b11100000)elif AIN1<=128:tm.leds(0b11110000)elif AIN1<=160:tm.leds(0b11111000)elif AIN1<=192:tm.leds(0b11111100)elif AIN1<=224:tm.leds(0b11111110)else:tm.leds(0b11111111)tm.number(255-int(AIN0))time.sleep(0.5)if __name__ == '__main__':try:main_loop()except KeyboardInterrupt:print("程序结束!")finally:tm.clear()

果然当有水滴在感应板上时,数码管有数值显示,如果右手触摸也会有数值显示,只不过比较小。

而火焰传感器我感觉用手捂着都比火机来的刺激些,安全起见,还是用手把。

水滴火焰mp4

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c语言(8.1)
  • 二进制搭建 Kubernetes v1.20(中)
  • 【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现
  • Flutter 初识:数据表格和卡片
  • 介绍Servlet后端中两种接收参数方式req.getAttributer和req.getParameter的区别
  • OpenCV学习笔记 比较基于RANSAC、最小二乘算法的拟合
  • 以一个开发者的身份浅谈Memcached
  • SQL Server数据清洗工坊:打造你的自定义清洗规则
  • 某RED书旋转验证码识别(一)
  • 路径规划 | Q-learning机器人路径规划算法(Matlab)
  • Linux——多线程
  • 程序员纯粹八股文的危害有哪些,应该如何来解决?
  • 为什么 DDoS 攻击偏爱使用 TCP 和 UDP 包?
  • 【常用库】【pytorch】基本部件
  • Spark 基础 与 安装
  • Angular6错误 Service: No provider for Renderer2
  • interface和setter,getter
  • JS+CSS实现数字滚动
  • Linux快速复制或删除大量小文件
  • spring security oauth2 password授权模式
  • Vim 折腾记
  • vue脚手架vue-cli
  • 初识MongoDB分片
  • 前端工程化(Gulp、Webpack)-webpack
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 【云吞铺子】性能抖动剖析(二)
  • Java性能优化之JVM GC(垃圾回收机制)
  • 阿里云服务器如何修改远程端口?
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​configparser --- 配置文件解析器​
  • # include “ “ 和 # include < >两者的区别
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (2)MFC+openGL单文档框架glFrame
  • (33)STM32——485实验笔记
  • (C++)八皇后问题
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (八)Flask之app.route装饰器函数的参数
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (十二)Flink Table API
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • .md即markdown文件的基本常用编写语法
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net core 连接数据库,通过数据库生成Modell
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .net 按比例显示图片的缩略图
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .NET正则基础之——正则委托
  • .net中调用windows performance记录性能信息
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • @取消转义