• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Работа с двумя UART интерфейсами в ESPHome

23 января, 2022

ESP32: http://alii.pub/67hfo2

ESP8266: http://alii.pub/67hfq7

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

Все Вы наверное знаете, что по UART интерфейсу можно работать только с одним устройством. Если подключить другое устройство одновременно. То оно не будет работать, будет писать, что порт занят. Да, даже если к UART интерфейсу микроконтроллера подключено устройство, то мы его прошить не сможем. Будет так-же писать, что устройство занято.

А все по тому, что у UART интерфейса для передачи и получения данных используется 2 контакта. Это  RX и TX. RX контакт используется для получения данных, а TX контакт для передачи данных и никак иначе. И когда мы подключаем к микроконтроллеру устройство по UART, то эти контакты подключаются крест на крест. То-есть RX к TX, а TX к RX соответственно.

Но что делать если у Вас 2 UART устройства и Вы оба хотите подключить. Ну тут решение только одно, подключать второе устройство к другому UART интерфейсу контроллера.

Вот например у ESP32 есть 2 аппаратных UART интерфейса. Следовательно без проблем можем подключить 2 устройства.

Ну а теперь возвращаясь к теме умного дома. Как подключить 2 устройства по UART интерфейсу в ESPHome. Устройства пускай будут такие:

  1. MHZ19b – датчик CO2
  2. PMS7003 – Датчик обнаружения PM2.5 частиц в воздухе.

Два эти датчика хорошо подходят для домашней метеостанции.

В ESPHome объявляется UART интерфейс следующим образом:



uart:
   rx_pin: 3
   tx_pin: 1
   baud_rate: 9600

Собственно тут видно, что объявляются пины RX и TX и скорость обмена данными.

Если мы добавим ниже еще пины rx_pin и tx_pin уже другого UART интерфейса. То естественно ничего работать не будет.

ЧТоб добавить 2 интерфейса нужно дать каждому UART интерфейсу свой уникальный id. И выглядеть это будет следующим образом:


uart:
 - id: uart1
   rx_pin: 3
   tx_pin: 1
   baud_rate: 9600
 - id: uart2
   rx_pin: 16
   tx_pin: 17
   baud_rate: 9600

Следовательно тут видно, что id тут uart1 и uart2. И после объявления этих id, при добавлении в блок sensor устройства работающего по UART как обычно. Выдаст нам ошибку, что не указан id UART интерфейса. Вот как это выглядит:

Хотя раньше, при добавлении такого блока sensor ошибки бы не было. Но как только мы объявляем 2 UART интерфейса, проверка на ошибки уже это учитывает и не пускает нас дальше.

Но все решается очень просто. Нужно добавить uart_id. Вот таким образом:

Ну и следовательно при добавлении следующего устройства, просто указываем ему другой UART путем: uart_id: uart2

И все. Собственно таким образом у меня и будут работать эти оба  датчика в моей метеостанции комнатной.

 

Primary Sidebar

Поиск

Новые записи

  • Автоматизация оповещения о надвигающимся дожде в Home Assistant
  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·