DHT11 на Wemos D1 Mini (подготовка)
This commit is contained in:
parent
bbed68cff2
commit
edb1b69d95
166
projects/MicroPython/DTH11/README.md
Normal file
166
projects/MicroPython/DTH11/README.md
Normal file
@ -0,0 +1,166 @@
|
||||
# Работа с DHT11 и DHT22 на Wemos D1 Mini (и других)
|
||||
|
||||
## Подготовка платы и прошиивка
|
||||
|
||||
### Предисловие о файле прошивки
|
||||
|
||||
По состоянию на 21 мая 2024 года на сайте
|
||||
[MicroPython](https://micropython.org/download/?vendor=Wemos)
|
||||
в разделе загрузок прошивка для **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/download/ESP8266_GENERIC/):
|
||||
https://micropython.org/resources/firmware/ESP8266_GENERIC-20240222-v1.22.2.bin
|
||||
|
||||
### Прошивка платы
|
||||
|
||||
Для манупуляций необходима утилита `esptool.py`.
|
||||
В репозиториях Arch Linux она имеется.
|
||||
|
||||
```shell
|
||||
pacman -Qi esptool
|
||||
```
|
||||
|
||||
```text
|
||||
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**.
|
||||
|
||||
```shell
|
||||
pip3 install esptool
|
||||
```
|
||||
|
||||
Перед прошивкой новой прошивки необходиимо очистить память устройста,
|
||||
выполнив следующую команду (`/dev/ttyUSB0` <- порт устройства).
|
||||
|
||||
```shell
|
||||
esptool.py --port /dev/ttyUSB0 erase_flash
|
||||
```
|
||||
|
||||
По окончанию зашиваем новую прошивку.
|
||||
|
||||
```shell
|
||||
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`.
|
||||
|
||||
```shell
|
||||
pip3 install mpremote
|
||||
```
|
||||
|
||||
`mpremote` - это специальная утилита для взаимодействия с платой на MicroPython.
|
||||
|
||||
Вот неполный листинг справки.
|
||||
|
||||
```text
|
||||
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`.
|
||||
|
||||
```shell
|
||||
pip3 install rshell
|
||||
```
|
||||
|
||||
С помощью `rshell` можно работать с платой через привычные команды,
|
||||
такие как `ls`, `cat`, `cp` и так далее.
|
||||
|
||||
Небольшой пример
|
||||
|
||||
```shell
|
||||
rshell --port /dev/ttyUSB0 # команда для подключения к плате
|
||||
ls /pyboard/ # вывести список файлов на плате
|
||||
|
||||
boot.py # непосредственно сами файлы
|
||||
```
|
||||
|
||||
`/pyboard/` - это путь к памяти устройста. **Автодополнение работает**.
|
||||
|
||||
### Проверка работоспособности
|
||||
|
||||
Подключимся к плате и проверим некоторые детали.
|
||||
|
||||
```shell
|
||||
mpremote
|
||||
```
|
||||
|
||||
Откроется REPL.
|
||||
|
||||
```python
|
||||
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](https://cdn.a2s.su/blog/2024/Wemos-D1-Mini.png)
|
||||
|
||||
Есть ещё один вариант на сайте
|
||||
[Wemos](https://www.wemos.cc/en/latest/d1/d1_mini.html).
|
2
projects/MicroPython/DTH11/requirements.txt
Normal file
2
projects/MicroPython/DTH11/requirements.txt
Normal file
@ -0,0 +1,2 @@
|
||||
mpremote==1.22.0
|
||||
rshell==0.0.32
|
Loading…
Reference in New Issue
Block a user