雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005

MicroPython动手做(34)——通用传感器

2020-6-23 08:24:34 显示全部楼层
本帖最后由 雕爷学编程 于 2020-6-25 07:45 编辑

1、什么是传感器?
传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。

国家标准GB7665-87对传感器下的定义是:“能感受规定的被测量并按照一定的规律(数学函数法则)转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。
中国物联网校企联盟认为,传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。”

“传感器”在新韦式大词典中定义为:“从一个系统接受功率,通常以另一种形式将功率送到第二个系统中的器件”。

物联网设备中那些常见的传感器见下图

0.jpg

最新评论

楼层直达:

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-23 08:48:17 显示全部楼层
本帖最后由 雕爷学编程 于 2020-6-23 08:56 编辑

2、在物联网架构中——各种传感器组成了基础的感知层
感知层包括了与环境交互的传感器,执行器和边缘设备等。感知层是物联网的皮肤和五官,用于识别物体、感知物体、采集信息、自动控制,比如装在空调上的温度传感器识别到了室内温度高于30度,把这个信息收集后,自动打开了空调进行制冷;这个层面涉及到的是各种识别技术、信息采集技术、控制技术。而且这些技术是交叉使用的的,各种感知有些是单一的,有些则是综合的,比如机器人就是整合了各种感知系统。 这一层最常见的就是各种传感器,用于替代或者延展人类的感官完成对物理世界的感知,也包括企业信息化过程中用到的RFID以及二维码技术。


01.jpg

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-23 09:02:59 显示全部楼层
01-0.jpg

3、传感器的特点与作用

传感器的特点
微型化、数字化、智能化、多功能化、系统化、网络化。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。微型化是建立在微电子机械系统(MEMS)技术基础上的,已成功应用在硅器件上做成硅压力传感器(芯片级应用)。传感器不仅促进了传统产业的改造和更新换代,而且还可能建立新型工业,从而成为21世纪新的经济增长点。

传感器的作用
人们为了从外界获取信息,必须借助于感觉器官。而单靠人们自身的感觉器官,在研究自然现象和规律以及生产活动中它们的功能就远远不够了。为适应这种情况,就需要传感器。因此可以说,传感器是人类五官的延长,又称之为电五官。新技术革命的到来,世界开始进入信息时代。在利用信息的过程中,首先要解决的就是要获取准确可靠的信息,而传感器是获取自然和生产领域中信息的主要途径与手段。

在现代工业生产尤其是自动化生产过程中,要用各种传感器来监视和控制生产过程中的各个参数,使设备工作在正常状态或最佳状态,并使产品达到最好的质量。因此可以说,没有众多的优良的传感器,现代化生产也就失去了基础。

在基础学科研究中,传感器更具有突出的地位。现代科学技术的发展,进入了许多新领域:例如在宏观上要观察上千光年的茫茫宇宙,微观上要观察小到fm的粒子世界,纵向上要观察长达数十万年的天体演化,短到 s的瞬间反应。此外,还出现了对深化物质认识、开拓新能源、新材料等具有重要作用的各种极端技术研究,如超高温、超低温、超高压、超高真空、超强磁场、超弱磁场等等。显然,要获取大量人类感官无法直接获取的信息,没有相适应的传感器是不可能的。许多基础科学研究的障碍,首先就在于对象信息的获取存在困难,而一些新机理和高灵敏度的检测传感器的出现,往往会导致该领域内的突破。一些传感器的发展,往往是一些边缘学科开发的先驱。

传感器早已渗透到诸如工业生产、宇宙开发、海洋探测、环境保护、资源调查、医学诊断、生物工程、甚至文物保护等等极其之泛的领域。可以毫不夸张地说,从茫茫的太空,到浩瀚的海洋,以至各种复杂的工程系统,几乎每一个现代化项目,都离不开各种各样的传感器。由此可见,传感器技术在发展经济、推动社会进步方面的重要作用,是十分明显的。世界各国都十分重视这一领域的发展。相信不久的将来,传感器技术将会出现一个飞跃,达到与其重要地位相称的新水平。

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-23 10:42:45 显示全部楼层
02.jpg

4、DHT11温湿度传感器
DHT11是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。

DHT11模块描述
1、可以检测周围环境的湿度和温度
2、传感器采用DHT11
3、湿度测量范围:20%-95%(0度-50度范围)湿度测量误差:+-5%
4、温度测量范围:0度-50度 温度测量误差:+-2度
5、工作电压3.3V-5V
6、输出形式 数字输出         
7、设有固定螺栓孔,方便安装
8、小板PCB尺寸:3.2cm*1.4cm
9、电源指示灯(红色)
10、每套重量约为8g

广告

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-23 11:27:46 显示全部楼层
DHT11数字温湿度传感器和掌控板连接需要借助掌控扩展版,在掌控扩展版中DHT11可使用的引脚有P0/1/8/9/13/14/15/16,在这里使用引脚P13。将掌控板插在掌控宝扩展板上,通过双母头杜邦线将DHT11和扩展板进行连接,DHT11上的“+”连接扩展板的电源口“V”,“-”连接扩展板的地线口“G”,“out”连接扩展板的引脚“13”。

使用前,导入mpython模块和DHT11类:
from mpython import *
from dht import DHT11

实例化DHT11类,并设置mPython引脚P0:
dht=DHT11(Pin(Pin.P0))

DHT11测量并返回温湿度数据:
dht.measure()
dht.temperature()
dht.humidity()

注解
dht.measure() 为DHT11测量温湿度数据指令,测量后使用 dht.temperature() 、 dht.humidity() 获取测量的温湿度值。

03.jpg

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-23 13:21:01 显示全部楼层
  1. #MicroPython动手做(34)——通用传感器的综合运用
  2. #DHT11温湿度传感器

  3. from mpython import *
  4. import network
  5. import ntptime
  6. import time
  7. import music
  8. from machine import Timer
  9. import dht

  10. my_wifi = wifi()

  11. my_wifi.connectWiFi("zh", "zy1567")

  12. dht11 = dht.DHT11(Pin(Pin.P15))

  13. tim13 = Timer(13)

  14. def timer13_tick(_):
  15.     try: dht11.measure()
  16.     except: pass

  17. tim13.init(period=1000, mode=Timer.PERIODIC, callback=timer13_tick)


  18. ntptime.settime(8, "time.windows.com")
  19. rgb[1] = (int(0), int(102), int(0))
  20. rgb.write()
  21. time.sleep_ms(1)
  22. music.play('E5:1')
  23. while True:
  24.     oled.fill(0)
  25.     oled.DispChar("温湿度表", 0, 0, 1)
  26.     oled.DispChar((''.join([str(x) for x in [time.localtime()[1], "月", time.localtime()[2], "日", time.localtime()[3], "时", time.localtime()[4], "分", time.localtime()[5], "秒 "]])), 0, 14, 1)
  27.     oled.DispChar((str("温度:") + str(dht11.temperature())), 0, 30, 1)
  28.     oled.DispChar((str("湿度:") + str(dht11.humidity())), 0, 44, 1)
  29.     oled.show()


雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
广告

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-23 13:58:20 显示全部楼层
5、BMP280气压传感器
BMP280是博世最新推出的数字气压传感器,具有卓越的性能和低廉的价格,相对精度为±0.12 hPa(相当于±1米),传感器功耗仅有2.7μA。BMP280具有业界最小封装,采用极其紧凑的8引脚金属盖LGA封装,占位面积仅为2.0×2.5mm2,封装高度为0.95 mm。包括有压力和温度测量功能。该气压传感器支持SPI和IIC通信接口,相比上一代的BMP180,精度已有相当大的提升,非常适合应用于低成本的多旋翼飞行器飞行控制器上,价格仅有目前流行的MS5611的四分之一。传感器模块它的小尺寸和2.74μA@ 1Hz的低功耗允许在电池驱动的设备中实现。门内导航,医疗保健以及GPS改进的新兴应用需要高相对精度和低TCO。得益于小尺寸和低功耗特性,这种器件可用在如移动电话、GPS 模块或手表等电池供电型设备中。与上代产品相同,BMP180、BMP280 也基于Bosch 成熟的压阻式压力传感器技术,具有高确度和线性度,以及长期稳定性和很高的 EMC 稳健性。多种设备工作选择带来了最高灵活性,可以在功耗、分辨率和滤波性能方面对设备进行优化。


06.jpg

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-23 14:02:55 显示全部楼层
本帖最后由 雕爷学编程 于 2020-6-23 15:28 编辑

07.jpg

BMP280技术规格
1、气压工作范围 300 hPa 至 1100 hPa(海拔9000米~-500米)
2、工作温度范围 -40°C 至 +85°C
3、相对的绝对精度 ±0.12 hPa(典型值)
4、平均测量时间 5.5 ms
5、工作电压 VDD 1.71 V 至 3.6 V
6、电源电压 VDDIO 1.2 V 至 3.6 V
7、I2C 和串行外设接口 (SPI)
8、平均电流消耗典型值(1Hz数据刷新率):2.74μA(超低功耗模式);睡眠模式下的平均电流消耗:0.1μA
9、封装规格 2.0 mm x 2.5 mm x 0.95 mm,8 引脚 LGA,全金属封装

BMP280硬件连接(掌控宝需要打开电源开关)
注意的是这块板子的额定电压是3.3v,且同时支持两种连接方式: I²C 和 SPI ,这里的连接方式是 I²C,模块接入掌控拓展板的P19(SCL)和P20(SDA)。


雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-23 15:28:52 显示全部楼层
bme280环境传感器指令

bme280是一款集成温度、湿度、气压,三位一体的环境传感器,具有高精度,多功能,小尺寸等特点

温度检测范围:-40℃~+85℃,分辨率0.1℃,误差±0.5℃
湿度检测范围:0~100%RH,分辨率0.1%RH,误差±2%RH
压力检测范围:300~1100hPa
湿度测量响应时间:1s

bme280.temperature()
描述: 返回温度值,单位摄氏度

../_images/bme280.png
bme280.pressure()
描述: 返回大气压值,单位Pa

bme280.humidity()
描述: 返回环境湿度,单位%
08.jpg

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-24 09:30:09 显示全部楼层
  1. #MicroPython动手做(34)——通用传感器的综合运用
  2. #BMP280气压温度传感器

  3. from mpython import *
  4. import music
  5. import time


  6. music.play('D5:1')
  7. rgb[1] = (int(0), int(102), int(0))
  8. rgb.write()
  9. time.sleep_ms(1)
  10. while True:
  11.     oled.fill(0)
  12.     oled.DispChar("气压温度计", 0, 0, 1)
  13.     oled.DispChar((''.join([str(x) for x in ["温度:", round(bme280.temperature(), 1), " 度"]])), 0, 15, 1)
  14.     oled.DispChar((''.join([str(x) for x in ["湿度:", round(bme280.humidity(), 1), " %"]])), 0, 30, 1)
  15.     oled.DispChar((''.join([str(x) for x in ["气压:", round(bme280.pressure(), 1), " 帕"]])), 0, 45, 1)
  16.     oled.show()
  17.     time.sleep(2)


广告

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-24 09:35:46 显示全部楼层
出错信息如下:                                                                                    
Traceback (most recent call last):                                                         
  File "main.py", line 13, in <module>                                                     
NameError: name 'bme280' isn't defined                                                     
MicroPython v2.0.1-3-g312406c-dirty on 2020-01-16; mpython with ESP32                     
Type "help()" for more information.                                                        
>>>   

好像是未定义bme280,在多个平台试了二天,未解决

09.jpg

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005

雕爷学编程

  • 42 主题
  • 1217 帖子
  • 2255 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 灌水之王
  • E币:2005
雕爷学编程 2020-6-24 10:06:45 显示全部楼层
11.jpg

6、 HC-SR04超声波测距传感器模块

HC-SR04
超声波测距模块是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离。超声波测距模块具有测距距离精确,能和SRF05,SRF02等超声波测距相媲美,测量距离 ** 2cm~450cm (实测:10cm~300cm)。

超声波测距模块有好多种类型,比较常用的有URM37超声波传感器默认是232接口,可以调为TTL接口,URM05大功率超声波传感器测试距离能到10米,算是测试距离比较远的一款了,另外还有比较常用的国外的几款SRF系列的超声波模块,超声波模块精度能到1cm。

12下一页
我要评论
22
1
广告
关闭 热点推荐上一条 /6 下一条
快速回复 返回列表