MicroPython动手做(34)——通用传感器-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

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

[复制链接]
 楼主| 发表于 2020-6-23 15:30 | 显示全部楼层
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

 楼主| 发表于 2020-6-24 09:30 | 显示全部楼层
[mw_shl_code=arduino,true]#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)[/mw_shl_code]
 楼主| 发表于 2020-6-24 09:36 | 显示全部楼层
出错信息如下:                                                                                    
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

 楼主| 发表于 2020-6-24 09:39 | 显示全部楼层
mPython X 实验图形编程

10.jpg
 楼主| 发表于 2020-6-24 10:07 | 显示全部楼层
11.jpg

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

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

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

 楼主| 发表于 2020-6-24 10:12 | 显示全部楼层
12 (1).jpg

超声波模块工作原理——
1)采用IO触发测距,给至少10us的高电平信号。
2)模块自动发送8个40KHz的方波,自动检测是否有信号返回。
3)有信号返回,通过IO输出一高电平,高电平持续时间就是超声波从发射到返回的时间。只需要提供一个10uS以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。

公式: uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间*声速(340M/S) /2;建议测量周期为60ms以上,以防止发射信号对回响信号的影响。


12 (2).jpg
 楼主| 发表于 2020-6-24 10:16 | 显示全部楼层
13.jpg

超声波模块主要技术参数
1:使用电压:DC---5V   
2:静态电流:小于2mA      
3:电平输出:高5V     
4:电平输出:底0V         
5:感应角度:不大于15度   
6:探测距离:2cm-450cm
7:   高精度 可达0.2cm   
8:   接线方式:VCC、trig(控制端)、
echo(接收端)、 GND

使用说明:
1、此模块不宜带电连接,若要带电连接,则先让模块的GND端先连接,否则会影响模块的正常工作。
2、测距时,被测物体的面积不少于05平方米且平面尽量要求平整,否则影响测量的结果。

 楼主| 发表于 2020-6-24 11:40 | 显示全部楼层
#MicroPython动手做(34)——通用传感器的综合运用
#HC-SR04超声波传感器测距实验

[mw_shl_code=arduino,true]#MicroPython动手做(34)——通用传感器的综合运用
#HC-SR04超声波传感器测距实验

from hcsr04 import HCSR04
from mpython import *
import music
import time

hcsr04 = HCSR04(trigger_pin=Pin.P13, echo_pin=Pin.P14)



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("超声波测距仪", 25, 10, 1)
    oled.DispChar((''.join([str(x) for x in ["测量距离:", str(hcsr04.distance_mm()), "mm"]])), 10, 28, 1)
    oled.show()
    time.sleep_ms(1000)[/mw_shl_code]

 楼主| 发表于 2020-6-24 11:42 | 显示全部楼层
19.gif
 楼主| 发表于 2020-6-24 11:44 | 显示全部楼层
本帖最后由 eagler8 于 2020-6-24 12:59 编辑

mPython X 实验图形编程

20.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 00:59 , Processed in 0.086544 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表