MicroPython:Платы/ESP8266/Руководство по MicroPython для ESP8266/Управление устройствами с шиной OneWire: различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} <syntaxhighlight lang="python" enclose="div"> =С...») |
Нет описания правки |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
<syntaxhighlight lang="python" | =Управление устройствами с шиной OneWire<ref>[http://docs.micropython.org/en/latest/esp8266/tutorial/onewire.html docs.micropython.org - Controlling 1-wire devices]</ref>= | ||
[[Шина OneWire]] – это последовательная шина, в которой для коммуникации используется всего один провод (вдобавок к проводам для заземления и питания). Температурный датчик [[DS18B20]] – очень популярное OneWire-устройство, и в этом разделе мы расскажем, как при помощи модуля onewire считывать данные с этого устройства. | |||
Чтобы код ниже заработал, у вас должен быть как минимум один температурный датчик [[DS18S20]] или [[DS18B20]], чья линия данных подключена к контакту ''GPIO12''. Вы также должны запитать датчик и подключить резистор на ''4.7 кОм'' между контактом данных и контактом питания. | |||
<syntaxhighlight lang="python"> | |||
import time | |||
import machine | |||
import onewire, ds18x20 | |||
# устройство подключено к GPIO12: | |||
dat = machine.Pin(12) | |||
# создаем объект «onewire»: | |||
ds = ds18x20.DS18X20(onewire.OneWire(dat)) | |||
# сканируем устройства, подключенные к шине: | |||
roms = ds.scan() | |||
print('найденные устройства:', roms) | |||
# делаем блок, который будет работать 10 циклов, | |||
# считывая и печатая данные о температуре: | |||
for i in range(10): | |||
print('температуры:', end=' ') | |||
ds.convert_temp() | |||
time.sleep_ms(750) | |||
for rom in roms: | |||
print(ds.read_temp(rom), end=' ') | |||
print() | |||
</syntaxhighlight> | |||
Обратите внимание, что вы должны сначала выполнить функцию convert_temp(), чтобы инициировать считывание температуры, а затем подождать ''как минимум 750 мс перед считыванием данных''. | |||
=См.также= | =См.также= | ||
{{ads}} | |||
=Внешние ссылки= | =Внешние ссылки= | ||
<references /> | <references /> |
Текущая версия от 20:05, 23 мая 2023
Управление устройствами с шиной OneWire[1]
Шина OneWire – это последовательная шина, в которой для коммуникации используется всего один провод (вдобавок к проводам для заземления и питания). Температурный датчик DS18B20 – очень популярное OneWire-устройство, и в этом разделе мы расскажем, как при помощи модуля onewire считывать данные с этого устройства.
Чтобы код ниже заработал, у вас должен быть как минимум один температурный датчик DS18S20 или DS18B20, чья линия данных подключена к контакту GPIO12. Вы также должны запитать датчик и подключить резистор на 4.7 кОм между контактом данных и контактом питания.
import time
import machine
import onewire, ds18x20
# устройство подключено к GPIO12:
dat = machine.Pin(12)
# создаем объект «onewire»:
ds = ds18x20.DS18X20(onewire.OneWire(dat))
# сканируем устройства, подключенные к шине:
roms = ds.scan()
print('найденные устройства:', roms)
# делаем блок, который будет работать 10 циклов,
# считывая и печатая данные о температуре:
for i in range(10):
print('температуры:', end=' ')
ds.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(ds.read_temp(rom), end=' ')
print()
Обратите внимание, что вы должны сначала выполнить функцию convert_temp(), чтобы инициировать считывание температуры, а затем подождать как минимум 750 мс перед считыванием данных.