snipplets.dev/projects/MicroPython/DTH11/README.md

5.5 KiB
Raw Blame History

Работа с DHT11 и DHT22 на Wemos D1 Mini (и других)

Подготовка платы и прошиивка

Предисловие о файле прошивки

По состоянию на 21 мая 2024 года на сайте MicroPython в разделе загрузок прошивка для D1 Mini отсутствовала.

По первой ссылке в поисковике увидел название файла прошивки esp8266-20190125-v1.10.bin по следующей ссылке http://micropython.org/resources/firmware/esp8266-20190125-v1.10.bin (http://micropython.org/download#esp8266).

Я не стал скачивать предлооженный старый бинарник и скачал слежую версию для ESP8266 GENERIC: https://micropython.org/resources/firmware/ESP8266_GENERIC-20240222-v1.22.2.bin

Прошивка платы

Для манупуляций необходима утилита esptool.py. В репозиториях Arch Linux она имеется.

pacman -Qi esptool
Name            : esptool
Version         : 4.7.0-3
Description     : A cute Python utility to communicate with the ROM bootloader in Espressif ESP8266
Architecture    : any
URL             : https://github.com/espressif/esptool
Licenses        : GPL-2.0-only
...

esptool также можно установить с помощью pip.

pip3 install esptool

Перед прошивкой новой прошивки необходиимо очистить память устройста, выполнив следующую команду (/dev/ttyUSB0 <- порт устройства).

esptool.py --port /dev/ttyUSB0 erase_flash

По окончанию зашиваем новую прошивку.

esptool.py \
  --port /dev/ttyUSB0 \
  --baud 115200 write_flash \
  --flash_size=detect 0 \
  /home/user/Downloads/ESP8266_GENERIC-20240222-v1.22.2.bin

Обеспечиваем удобство взаимодействия

D1 Mini имеет на борту UART преобразователь на чипе CH34x.

Подключиться к устройству можно с помощью утилит screen или minicon (и ещё сотню других), но более удобней будет работать с помощью mpremote.

pip3 install mpremote

mpremote - это специальная утилита для взаимодействия с платой на MicroPython.

Вот неполный листинг справки.

premote --help
mpremote -- MicroPython remote control
See https://docs.micropython.org/en/latest/reference/mpremote.html

List of commands:
  connect     connect to given device
  disconnect  disconnect current device
  edit        edit files on the device
  eval        evaluate and print the string
  exec        execute the string
  fs          execute filesystem commands on the device
  help        print help and exit
  mip         install packages from micropython-lib or third-party sources
  mount       mount local directory on device
  repl        connect to given device
  resume      resume a previous mpremote session (will not auto soft-reset)
  rtc         get (default) or set the device RTC
  run         run the given local script
  sleep       sleep before executing next command
  soft-reset  perform a soft-reset of the device
  umount      unmount the local directory
  version     print version and exit

Сочетание клавиш Ctrl+D вызывает мягкую перезагрузку (MPY: soft reboot).
Сочетание клавиш Ctrl+X закрывает соединение.

Советую ещё установить rshell.

pip3 install rshell

С помощью rshell можно работать с платой через привычные команды, такие как ls, cat, cp и так далее.

Небольшой пример

rshell --port /dev/ttyUSB0 # команда для подключения к плате
ls /pyboard/               # вывести список файлов на плате

boot.py                    # непосредственно сами файлы

/pyboard/ - это путь к памяти устройста. Автодополнение работает.

Проверка работоспособности

Подключимся к плате и проверим некоторые детали.

mpremote

Откроется REPL.

import esp
esp.check_fw()

# size: 642064
# md5: b5c0246d25a48de7dcd4cd4d29a7830f
# True

import os
print(os.listdir())

# ['boot.py']

import network
import ubinascii

mac = ubinascii.hexlify(network.WLAN().config('mac'), ':').decode()

print(mac) # 48:55:19:e1:35:04 <- у вас соответственно будет другой MAC адрес

Работаем с датчиками DHT

Документация находится по следующему адресу https://docs.micropython.org/en/latest/esp8266/quickref.html#dht-driver.

Схема Wemos D1 Mini

Схема Wemos D1 Mini

Есть ещё один вариант на сайте Wemos.