MicroPython:Платы/ESP8266/Руководство по MicroPython для ESP8266/Управление устройствами с шиной OneWire: различия между версиями

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

(Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} <syntaxhighlight lang="python" enclose="div"> =С...»)
 
 
Строка 2: Строка 2:
 
{{Перевод от Сubewriter}}
 
{{Перевод от Сubewriter}}
 
{{Myagkij-редактор}}
 
{{Myagkij-редактор}}
 +
 +
=Управление устройствами с шиной 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" enclose="div">
 
<syntaxhighlight lang="python" enclose="div">
 +
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 мс перед считыванием данных''.
  
 
=См.также=
 
=См.также=

Текущая версия на 12:42, 1 июля 2020

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Управление устройствами с шиной 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 мс перед считыванием данных.

См.также

Внешние ссылки