5383| 7
|
[入门教程] DHT11温湿度传感器掌控下使用(纯代码模式) |
本帖最后由 yywudao 于 2019-4-29 13:35 编辑 DHT11,最常用的温湿度传感器,坛子里已经有基于mPython X下的图形化程序示意,放个纯代码的。 micropython固件里已经内置了 DHT模块,有DHT11和DHT12两个对象,使用起来分别是 [mw_shl_code=python,true]import dht # 导入 dht模块 dht.DHT11(Pin(n)) # n:对应的控制引脚 dht.DHT12(Pin(n)) # n:对应的的控制引脚[/mw_shl_code] DHT的使用需要加入计时器进行数据读取,否则如果单纯的使用dht.measur()会频繁执行数据读取,影响效率。 示例:以DHT11传感器接掌控引脚 P1 为例: [mw_shl_code=python,true]from mpython import * from machine import Timer import dht def DHT11(t): d = dht.DHT11(Pin(Pin.P1)) # 掌控的P1引脚 d.measure() # 运行DHT11进行数据读取 oled.fill(0) # 清屏 temp = d.temperature() hum = d.humidity() oled.text('Humi: {}%'.format(hum), 0, 0) oled.text('Temp: {}C'.format(temp), 0, 20) oled.show() tim = Timer(-1) tim.init(period=2000, mode=Timer.PERIODIC, callback=DHT11) try: while True: pass except: tim.deinit() print('stopped')[/mw_shl_code] P.S. tim = Timer(-1) # 在ESP8266控制板上,编号 -1,表示使用虚拟计时器。(掌控为ESP32,使用方式类似。) PYB控制板使用编号为1~14。 period=2000 # 间隔时间为 2s mode=Timer.PERIODIC # 循环方式为一直 |
一介布衣 发表于 2019-7-9 14:57 集成到固件的意思,就是使用的时候直接代码里 import dht,就可以用dht的相应模块功能了。 用Mu编程,有个问题是程序无法直接刷入掌控板子里吧。。。 你可以用thonny (https://randomnerdtutorials.com/ ... -ide-esp32-esp8266/)。 李时念老师那边有整一个中文翻译版本的thonny(https://www.bunnyzoo.com/download.html#thonnybox) |
一介布衣 发表于 2019-7-9 15:04 掌控板固件刷入的话,推荐用mPython X mPython X 0.3.3 更新 1. 内置固件优化,释放更多ROM空间(0.3.3新增) 2. 允许刷入main.py之外的其他文件(0.3.3新增) 3. 文件系统增加选取任意*.py文件运行的功能(0.3.3新增) 4. “事件”分类增加掌控板被抛起的事件(0.3.3新增) 5. 现有图形化block有所优化(0.3.3新增) 6. 修正已知bug 下载地址 https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html 或点击软件“帮助--检查更新” |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed