Останнім часом вирішили поглибити досвід роботи з LoRa.
Модуль LoRa обирали за наступними принципами:
- відносно низька вартість;
- є достатніми, щоб перевірити і зрозуміти технологію LoRa у режимі P2P;
- має простий інтерфейс програмування – UART (сам чіп зазвичай має лише SPI – незручний інтерфейс для LoRa у якості модему)
- підтримка режиму роботи Node – Node, тобто без “LoRa-хаба”.
- також завдяки UART, має легко конфігуруватися у консолі – має бути підтримка
Ми знайшли один такий і придбали комплект для тестування. Це модулі AIThinker RA-06 на базі вже не нового і всім відомого чіпа Semtech SX1278.
Заздалегідь відомі недоліки
Для цих чіпів немає готових драйверів під ESPHome (читай Home Assistant).
Щоправда, в ESPHome є потенційна можливість: підключення через Custom UART Text Sensor API, але це значить, окрім інтеграційних скриптів на YAML, програмування конекторів/парсерів на С. І це не дуже добре, адже Home Assistant зараз є дуже популярною платформою. Чомусь розробники HA/ESPHome не зробили жодної підтримки для LoRa.
На перший погляд, цей модуль (2013 року випуску) не дуже годиться для нових продуктів. Але те що треба для тестування LoRa і власного навчання.
Втім, інші модулі, які є сучасними і можуть бути претендентами для великих комерційних проектів, все ще мають дуже високу вартість і для DIY-проектів не дуже придатні з цієї точки зору.
Саме тому ми все ж вирішили попрацювати з RA-06 SX1278.
Підтримка модуля в прошивці NodeMCU
Тут теж немає готового драйвера ні для модуля AIThinker RA-06, ні для чіпа SX1278, але у складі прошивки NodeMCU є універсальний модуль Soft-UART, що дозволяє підключити модуль до будь-яких двох GPIO ESP8266 і програмувати його на рівні Lua.
На жаль, під час тестування виявилося, що один з параметрів протоколу UART не підтримується обопільно двома цими системами:
- Soft-UART прошивки NodeMCU функціонально обмежений і не підтримує режим
Parity: Odd
абоEven
. Доступний лишеParity:None
. - LoRa модуль не підтримує
Parity:None
, але підтримуєOdd
чиEven
.
Ця дрібничка, на яку зазвичай взагалі ніхто не звертає уваги, не дозволяє працювати з модулем LoRa через програмний Soft-UART.
Апаратний інтерфейс UART контролера ESP8266
Залишається лише можливість використовувати апаратний інтерфейс UART 0 модуля ESP8266.
І тоді все має бути добре. – Якби не прикрість, що цей UART в NodeMCU застосовується для консолі програмування. А ще одного повного TX/RX UART в ESP8266EX немає.
Що ж робити?
Є вихід. Потрібно лишень:
- перенаправити консоль програмування у інший протокол – наприклад, працювати з консоллю через інкапсульований у WiFi і TCP : telnet.
- підключити LoRa модуль на місце консолі (тобто на апаратний UART0)
Про результати спроби запустити LoRa через UART на ESP8266 під керуванням NodeMCU розповімо зовсім скоро у наших наступних публікаціях.