【雕爷学编程】 MicroPython动手做(34)——通用传感器的综合运用

news2024/12/26 0:38:05

知识点:什么是掌控板?
掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED显示屏、RGB灯、加速度计、麦克风、光线传感器、蜂鸣器、按键开关、触摸开关、金手指外部拓展接口,支持图形化及MicroPython代码编程,可实现智能机器人、创客智造作品等智能控制类应用。

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

国家标准GB7665-87对传感器下的定义是:“能感受规定的被测量并按照一定的规律(数学函数法则)转换成可用信号的器件或装置,通常由敏感元件和转换元件组成”。

中国物联网校企联盟认为,传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。”

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

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

在这里插入图片描述
2、在物联网架构中——各种传感器组成了基础的感知层

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

在这里插入图片描述
3、传感器的特点与作用

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

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述
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() 获取测量的温湿度值。

在这里插入图片描述
#MicroPython动手做(34)——通用传感器的综合运用
#DHT11温湿度传感器

#MicroPython动手做(34)——通用传感器的综合运用
#DHT11温湿度传感器

from mpython import *
import network
import ntptime
import time
import music
from machine import Timer
import dht

my_wifi = wifi()

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

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

tim13 = Timer(13)

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

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


ntptime.settime(8, "time.windows.com")
rgb[1] = (int(0), int(102), int(0))
rgb.write()
time.sleep_ms(1)
music.play('E5:1')
while True:
    oled.fill(0)
    oled.DispChar("温湿度表", 0, 0, 1)
    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)
    oled.DispChar((str("温度:") + str(dht11.temperature())), 0, 30, 1)
    oled.DispChar((str("湿度:") + str(dht11.humidity())), 0, 44, 1)
    oled.show()

在这里插入图片描述

mPython X 实验图形编程

在这里插入图片描述
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 稳健性。多种设备工作选择带来了最高灵活性,可以在功耗、分辨率和滤波性能方面对设备进行优化。

在这里插入图片描述

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)。

在这里插入图片描述

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()

描述: 返回环境湿度,单位%

在这里插入图片描述
#MicroPython动手做(34)——通用传感器的综合运用
#BMP280气压温度传感器

#MicroPython动手做(34)——通用传感器的综合运用
#BMP280气压温度传感器

from mpython import *
import music
import time


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

出错信息如下:

Traceback (most recent call last):
File “main.py”, line 13, in
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,在多个平台试了二天,未解决

在这里插入图片描述

mPython X 实验图形编程

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/832953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

71. 简化路径

题目链接:力扣 解题思路: 以 "/" 对路径字符串进行分割,得到分割后的数组split,那么数组中每个元素就是一级路径的名称对split进行遍历:使用一个队列deque保存最终的每一个目录 如果当前字符串是 "..&…

发明专利申请:不能包含文本框或自选图形 || 不能包含域对象(校验错误)

提交出错 解决方案:如果xml文件传上去没有反应,一定要优先把word转成pdf,不要去文本框中输入:里面的公式编辑器很老旧(很多公式编辑不了) 上传以后,总体预览没有问题就ok,前序穿文件…

【GitOps系列】如何实施自动化渐进式交付?

文章目录 前言自动渐进式交付概述自动渐进式交付准备创建生产环境创建 AnalysisTemplate访问生产环境安装Prometheus配置 Ingress-Nginx 和 ServiceMonitor验证 Ingress-Nginx 指标 自动渐进式交付实战自动渐进式交付成功自动渐进式交付失败 结语 前言 在实施金丝雀发布的过程中…

Golang之路---03 面向对象——反射

反射 反射的存在意义 在开发中,你或许会碰到在有些情况下,你需要获取一个对象的类型,属性及方法,而这个过程其实就是反射。 golang中变量包括(type, value)两部分 静态类型 所谓的静态类型(…

【智慧校园】智慧班牌云平台源码,使用springboot vue框架

【智慧校园】智慧班牌云平台源码,使用springboot vue框架 前后端分离架构 1、使用springboot vue框架 2、数据库MySQL5.7 3、移动端小程序使用小程序原生语言开发 4、电子班牌固件安卓7.1;使用Java Android原生 5、java,elmentui &…

四、Unity中颜色空间

Unity中的设置 通过点击菜单Edit->Project Settings->Player页签->Other Settings下的Rendering部分进行修改,参数Color Space可以选择Gamma或Linear。 当选择Gamma Space时,Unity不会做任何处理。当选择Linear Space时,引擎的渲染…

电测知识分享——三千字解读时钟电路最重要部件,建议收藏!

晶振作为时钟电路中最重要的部件,在电路中起着产生震荡频率的作用,可以产生高度稳定的信号,并稳定工作环境,为系统提供基本的时钟信号,在工业、科技、车载、数码、电子等多个领域几乎都有应用场景。 今天,…

MySQL binLog问题

看到数据库目录下有很多OFF.*文件的时候很诧异,这玩意是啥,binlog不应该都是*bin-log.*​的文件吗?* [roottest ~]# cd /data/mysql_data [roottest mysql_data]# ls ansible hap_attach_yl hap_func_yl hap_msg_yl h…

区块链媒体发稿:区块链媒体宣发常见问题解析

据统计,由于区块链应用和虚拟货币的兴起,越来越多媒体对区块链领域开展报导,特别是世界各国媒体宣发全是热火朝天。但是,随着推卸责任媒体宣发的五花八门,让很多人因而上当受骗,乃至伤害一大笔资产。身为投…

【TiDB理论知识08】HATP概述

1 HTAP技术 OLTP 在线事务 支付 转账 高并发 每次操作的数据量少 ,行存 OLAP 报表分析 每次操作大量数据 列存储 2 传统解决方案 数据抽取到数仓或者数据湖 ETL有延迟 ,一般会有T1 T2 数据多副本 3 HTAP的要求 4 TIDB的HTAP架构 TiFlash特点&…

IO进程线程day6(2023.8.3)

一、Xmind整理&#xff1a; 进程与线程关系&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;pthread_create 功能&#xff1a;创建一个线程 原型&#xff1a; #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, vo…

【新版系统架构补充】-七层模型

网络功能和分类 计算网络的功能 &#xff1a;数据通信、资源共享、管理集中化、实现分布式处理、负载均衡 网络性能指标&#xff1a;速率、带宽&#xff08;频带宽度或传送线路速率&#xff09;、吞吐量、时延、往返时间、利用率 网络非性能指标&#xff1a;费用、质量、标准化…

三、基本流程控制结构

3.1结构化程序设计 基本控制结构&#xff1a; 顺序结构选择结构循环结构 C语句&#xff1a; 说明语句控制语句函数调用语句表达式语句空语句复合语句 3.2选择结构语句 if语句&#xff1a; &#xff08;1&#xff09;单选条件语句 if(表达式) 语句 if(x>y) cout<&l…

Tomcat的介绍和安装配置、eclipse中动态web项目的创建和运行、使用IDEA创建web项目并运行

一、Tomcat的介绍和安装配置 安装tomcat&#xff1a; 环境变量的配置&#xff1a; 配置之后重启cmd&#xff0c;执行startup命令&#xff0c;启动tomcat 在localhost:8080&#xff0c;能进入tomcat主界面&#xff0c;说明配置成功 二、eclipse中动态web项目的创建和运行 tomca…

基于回溯算法实现八皇后问题

八皇后问题是一个经典的计算机科学问题&#xff0c;它的目标是将8个皇后放置在一个大小为88的棋盘上&#xff0c;使得每个皇后都不会攻击到其他的皇后。皇后可以攻击同一行、同一列和同一对角线上的棋子。 一、八皇后问题介绍 八皇后问题最早由国际西洋棋大师马克斯贝瑟尔在18…

王道《操作系统》学习(二)—— 进程管理(二)

2.1 处理机调度的概念、层次 2.1.1 调度的基本概念 2.1.2 调度的三个层次 &#xff08;1&#xff09;高级调度&#xff08;作业调度&#xff09; &#xff08;2&#xff09;中级调度&#xff08;内存调度&#xff09; 补充知识&#xff1a;进程的挂起状态和七状态模型 &#x…

Three.js室内场景

Three.js实现三维可视化室内场景 1.效果 2.安装 要安装three 的 npm 模块,请在你的项目文件夹里打开终端窗口,并运行: npm install three 或 yarn add three包将会被下载并安装。然后你就可以将它导入你的代码了: import * as THREE from three引入性能监视器: impor…

MySQL日志——错误日志、二进制日志

错误日志二进制日志查询日志慢查询日志 1.错误日志 查看日志位置&#xff1a; show variables like %log_error%查看错误日志&#xff1a; tail -f /var/log/mysql.log2.二进制日志 show variables like %log_bin%;cd /var/lib/mysql ll2.1 日志格式 查看日志格式指令&…

第9章 CSS-DOM

三位一体的网页 游览器由结构层&#xff0c;表现层&#xff0c;行为层组成 结构层 网页的结构层&#xff08;structural layer&#xff09;由HTML或XHTML之类的标记语言负责创建。 表现层 表示层&#xff08;presentation layer&#xff09;由CSS负责完成。CSS描述页面内容…

腾讯云COS+PicGO+截图工具+Obsidian+Typora+蚁小二:打造丝滑稳定的Markdown写作和分发环境

背景 很久很久以前&#xff0c;我写过一篇《有道云笔记EverythingTyporaGitHub图床PicGojsDelivr加速截图工具——创造丝滑免费的Markdown写作环境》&#xff08;https://blog.csdn.net/qq_43721542/article/details/9685957&#xff09;&#xff0c;当时的目的是打造一个云同…