Шлюз и узел LoRa на ESP32 для передачи показаний датчика на Thingspeak


В этом проекте мы создадим шлюз и узел LoRa на основе платы ESP32. Проект по сути представляет собой систему мониторинга датчиков на сервере Thingspeak с использованием платы ESP32 и модуля LoRa SX1278 или SX1276.

За последние пару лет появилось несколько коммуникационных технологий для взаимодействия между устройствами Интернета вещей (IoT). Наиболее популярными из них являются технологии Wi-Fi и Bluetooth. Но у них есть несколько ограничений, таких как ограниченный радиус действия, ограниченное количество точек доступа и высокое энергопотребление. Поэтому компания Semtech представила технологию LoRa, чтобы решить все эти проблемы. Используя одну батарею, устройство на основе данной технологии работает более года.

Шлюз и узел LoRa на ESP32 для передачи показаний датчика на Thingspeak

Итак, в этом проекте IoT мы разработаем шлюз ESP32 LoRa, а также узел датчика ESP32 LoRa для беспроводного мониторинга показаний датчика на расстоянии нескольких километров. Отправитель будет считывать данные о влажности и температуре с помощью датчика DHT11. Затем он передает данные по радиоканалу с использованием технологии LoRa. Данные принимаются модулем приемника. Затем приемник будет отправлять данные на сервер Thingspeak через определенный интервал.

Если вы не работали с технологией LoRa с помощью модуля ESP32, то советуем прочитать статью на нашем сайте про подключение модуля LoRa SX1278 к ESP32.

Необходимые компоненты

  1. Модуль ESP32 (купить на AliExpress).
  2. Датчик температуры и влажности DHT11/DHT22 (купить на AliExpress).
  3. Модуль LoRa SX1278 (433MHz) – 2 шт. (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Установка необходимых библиотек

Для программирования платы ESP32 с помощью Arduino IDE проекту требуется несколько библиотек.

1. Библиотека DHT11

Для считывания температуры и влажности нам понадобится любой датчик температуры и влажности. Для этого DHT11 — лучший и дешевый датчик. Для работы с ним нужно установить библиотеку DHT11. Загрузите библиотеку по ссылке ниже и добавьте в ее Arduino IDE.

Загрузить библиотеку DHT11

2. Библиотека LoRa

Нам нужна библиотека Arduino для отправки и получения данных с использованием радио LoRa. Библиотека поддерживает такие модули, как Semtech SX1276, SX1277, SX1278, SX1279, а также HopeRF RFM95W, RFM96W и RFM98W.

Загрузить библиотеку радио LoRa

Схемы проекта

Теперь давайте рассмотрим схему отправителя и приемника для построения шлюза и узла LoRa на основе платы ESP32. Я собрал обе схемы на макетной плате. Вы можете сделать это на печатной плате, если хотите.

Узел LoRa на ESP32

Схема узла LoRa на основе платы ESP32 с датчиком DHT11 приведена на следующем рисунке. Эта часть работает как передатчик. Данные о влажности и температуре считываются датчиком влажности и температуры DHT11 и передаются с помощью радио LoRa .

Схема узла LoRa на основе платы ESP32 с датчиком DHT11

Подключение довольно простое. Схема соединений между модулем LoRa SX1278 и платой ESP32 приведена в следующей таблице.

Контакты ESP32 Контакты SX1278
GND GND
3.3V VCC
D5 NSS
D23 MOSI
D19 MISO
D18 SCK
D14 RST
D2 DIO0

Аналогично подключите цифровой выходной контакт датчика DHT11 к GPIO4 ESP32. Подключите VCC DHT11 к 3,3 В ESP32, а GND датчика - к GND ESP32.

Собранный на макетной плате узел LoRa на основе платы ESP32 с датчиком DHT11

Шлюз LoRa на ESP32 с подключением к Thingspeak

Схема шлюза LoRa на основе платы ESP32 и модуля SX1278 представлена на следующем рисунке. Эта часть работает как приемник. Данные о влажности и температуре принимаются с помощью радио LoRa и загружаются на сервер Thingspeak.

Схема шлюза LoRa на основе платы ESP32 и модуля SX1278

Подключение ESP32 и модуля LoRa SX1278 такое же, как указано выше.

Собранный на макетной плате шлюз LoRa на основе платы ESP32 и модуля SX1278

Настройка Thingspeak

Чтобы отслеживать данные датчиков на сервере Thingspeak, вам сначала нужно настроить Thingspeak. Чтобы настроить сервер Thingspeak, посетите https://thingspeak.com/. Создайте учетную запись или просто войдите в нее, если вы создали учетную запись ранее. Затем создайте новый канал со следующими данными.

Создание нужного нам канала на сервисе Thingspeak

Стоит отметить что Thingspeak является очень удобным и популярным сервисом для различных проектов Интернета вещей и все проекты на нашем сайте с его использованием вы можете посмотреть по следующей ссылке.

Код узла LoRa

После сборки схемы узла LoRa на макетной плате скопируйте следующий код и загрузите его на плату ESP32. Перед загрузкой обязательно внесите изменения в частоту LoRa в соответствии с регионом.

Код шлюза LoRa

Теперь вы можете скопировать код ниже и загрузить код шлюза на плату ESP32. В коде ниже внесите изменения в WiFi SSID, пароль и ключ API Thingspeak.

Мониторинг данных датчиков на сервере Thingspeak

После загрузки кода вы можете открыть Serial Monitor (последовательный монитор) на обоих частях нашего проекта. Вы увидите следующий вывод, если код и соединения верны.

Тестирование работы проекта в окне монитора последовательной связи

Теперь вы можете посетить окно приватного просмотра Thingspeak (Private View). Там вы можете увидеть, что данные по номеру пакета, температуре, влажности и шлюзу загружаются с интервалом в 15 секунд. Вы можете изменить функцию задержки в коде, чтобы изменить время получения данных.

Тестирование работы проекта на сервисе Thingspeak

(1 голосов, оценка: 5,00 из 5)
Загрузка...
42 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *