Оглавление:
- Шаг 1. Расходные материалы
- Шаг 2: узел LoRa
- Шаг 3: Подключение узла и датчика
- Шаг 4. Отправьте данные на шлюз
- Шаг 5: MakePython Lora
- Шаг 6: шлюз LoRaWAN
- Шаг 7: Загрузите код
- Шаг 8: Получите данные
- Шаг 9. Используйте ThingSpeak IoT
- Шаг 10: Результат
Видео: Lora Gateway на базе MicroPython ESP32: 10 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Лора в последнее время пользуется большой популярностью. Модуль беспроводной связи, использующий эту технологию, обычно дешев (с использованием свободного спектра), имеет небольшие размеры, энергоэффективен и имеет большое расстояние связи и в основном используется для взаимной связи между терминалами IoT или обмена данными с хостом. На рынке есть много модулей LoRa, например RFM96W, который оснащен (совместимым) чипом SX1278, который очень мал. Я использую его с MakePython ESP32 в качестве шлюза.
Затем я использую два узла LoRa для отправки данных о температуре и влажности на шлюз, а затем загружу их в Интернет через шлюз. Здесь вы узнаете, как загружать удаленные данные нескольких узлов LoRa в облако через шлюз.
Шаг 1. Расходные материалы
1 * MakePython ESP32
MakePython ESP32 - это плата ESP32 со встроенным OLED-дисплеем SSD1306.
2 * Радио Мадуино LoRa
Maduino Lora Radio - это решение для Интернета вещей (IoT), основанное на микроконтроллере Atmel Atmega328P и модуле Lora. Это может быть реальный проект для проектов IoT (особенно для приложений с большим радиусом действия и низким энергопотреблением).
2 * DHT11
1 * MakePython Лора
Шаг 2: узел LoRa
Это схема Мадуино Лора Радио.
Модуль Arduino Lora Radio в качестве узла LoRa, мы используем его для отправки данных о температуре и влажности на шлюз.
(Этот WiKi знакомит с тем, как использовать Maduino Lora Radio, а также отправлять и получать данные)
Шаг 3: Подключение узла и датчика
VCC и GND DHT11 подключены к 3V3 и GND Maduino, а вывод DATA подключен к D4 Maduino.
Узел 0 находится в парке, узел 1 находится в офисном здании рядом с компанией, они находятся на расстоянии около 2 километров друг от друга, а затем я получаю их данные о температуре и влажности дома.
Шаг 4. Отправьте данные на шлюз
Скачайте TransmitterDHT11.ino, откройте его в Arduino IDE.
При добавлении узла измените номер узла соответствующим образом. Например, теперь используйте 2 узла: первый узел для изменения nodenum = 0 для запуска программы, второй узел для изменения nodenum = 1 для запуска программы и так далее, вы можете добавить еще узел.
int16_t packetnum = 0; // счетчик пакетов, мы увеличиваем на каждую передачу
int16_t nodenum = 0; // Изменяем номер узла
Соберите данные и распечатайте их
String message = "#" + (String) nodenum + "Humidity:" + (String) влажность + "% Temperature:" + (String) temperature + "C" + "num:" + (String) packetnum; Serial.println (message); packetnum ++;
Отправить сообщение на rf95_server
uint8_t radioPacket [message.length () + 1];
message.toCharArray (radioPacket, message.length () + 1); radioPacket [message.length () + 1] = '\ 0'; rf95.send ((uint8_t *) radioPacket, message.length () + 1);
Откройте серийный монитор, вы можете увидеть собранные данные о температуре и влажности и отправить их.
# 0 Влажность: 6,00% Температура: 27,00 ° C число: 0
Передача: Отправка на rf95_server Отправка… Ожидание завершения пакета… Ожидание ответа… Нет ответа, есть ли слушатель?
Отложите это в сторону, теперь нам нужно сделать Врата Лора.
Шаг 5: MakePython Lora
Это соответствующий вывод модуля RFM96W и MakePython ESP32. Чтобы облегчить соединение с MakePython ESP32, я сделал печатную плату с модулем RFM96W. Да, на нем есть два RFM96W, которые могут отправлять и получать данные одновременно, но теперь мне нужен только один.
Шаг 6: шлюз LoRaWAN
LoRaWAN - это глобальная сеть с низким энергопотреблением, основанная на LoRa, которая может обеспечить одно: низкое энергопотребление, масштабируемость, высокое качество обслуживания и безопасную беспроводную сеть на большие расстояния.
Соберите MakePython Lora и ESP32, чтобы создать шлюз, который может получать удаленные данные и выгружать их в Интернет.
Шаг 7: Загрузите код
Загрузите все файлы «xxx.py» с WiKi и загрузите их в ESP32.
Откройте файл LoRaDuplexCallback.py. Вам необходимо внести некоторые изменения, чтобы ваш ESP32 мог подключаться к сети и загружать данные на сервер.
Измените API_KEY, который вы получили в ThingSpeak (я расскажу, как его получить позже)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
Измените SSID и PSW для подключения Wi-Fi
ssid = "Makerfabs"
pswd = "20160704"
Шаг 8: Получите данные
Найдите функцию on_receive (lora, payload) в файле LoRaDuplexCallback.py, где вы можете указать ESP32, что делать после получения данных. Следующий код анализирует и отображает полученные данные о температуре и влажности.
def on_receive (lora, полезная нагрузка):
lora.blink_led () rssi = lora.packetRssi () try: length = len (payload) -1 myStr = str ((payload [4: length]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1 + 1):(length1 + 6)] myNum2 = myStr [(length1 + 20):(length1 + 25)] print ("*** Полученное сообщение *** / n {}". format (payload)), если config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (payload [4: length])), rssi) if wlan.isconnected (): global msgCount print ('Отправка в сеть…') node = int (str (payload [5: 6], 'utf-8')), если node == 0: URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& field1 = "+ myNum1 +" & field2 = "+ myNum2 res = urequests.get (URL) print (res.text) elif node == 1: URL =" https://api.thingspeak.com/update?api_key= "+ API_KEY +" & field3 = "+ myNum1 +" & field4 = "+ myNum2 res = urequests.get (URL) print (res.text) за исключением Exception as e: print (e) print (" with RSSI {} n ".format (rssi))
Судя по количеству, чтобы различать узлы, и загружая данные в Интернет через URL-адрес, мы можем отслеживать удаленные данные разных узлов в любое время. Вы можете добавить больше узлов и внести аналогичные изменения в код.
если узел == 0:
URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& field1 =" + myNum1 + "& field2 =" + myNum2 res = urequests.get (URL) print (res.text)
Шаг 9. Используйте ThingSpeak IoT
Шаги:
- Зарегистрируйте аккаунт на https://thingspeak.com/. Если он у вас уже есть, войдите в систему напрямую.
- Щелкните Новый канал, чтобы создать новый канал ThingSpeak.
- Введите имя, описание, выберите поле 1. Затем сохраните канал внизу.
- Нажмите на опцию API Keys, скопируйте API Key, мы будем использовать его в программе.
Шаг 10: Результат
Вы можете видеть данные узла 0 и узла 1 на экране, хотя они находятся на расстоянии 2 км друг от друга.
Войдите в свою учетную запись ThingSpeak и щелкните созданный вами канал, вы увидите загруженные данные о температуре и влажности.
График field1 и графики field2 - это данные влажности и температуры узла Lora 0, а график field3 и график field4 - данные влажности и температуры узла Lora 1.
Рекомендуемые:
MuMo - LoRa Gateway: 25 шагов (с изображениями)
MuMo - LoRa Gateway: ### UPDATE 10-03-2021 // последняя информация / обновления будут доступны на странице github: https: //github.com/MoMu-Antwerp/MuMoЧто такое MuMo? MuMo - это сотрудничество между разработка продукта (департамент Антверпенского университета) в рамках
ESP32 Lora Thingspeak Gateway с сенсорным узлом: 9 шагов
ESP32 Lora Thingspeak Gateway с сенсорным узлом: в этом проекте IoT я разработал ESP32 LoRa Gateway & также узел датчика ESP32 LoRa для беспроводного отслеживания показаний датчика с расстояния в несколько километров. Отправитель считывает данные о влажности и температуре с помощью датчика DHT11. Затем он передает
Интерфейс ESP32 с SSD1306 на базе MicroPython: 5 шагов
Интерфейс ESP32 с SSD1306 Oled с MicroPython: Micropython - это оптимизация для python и небольшая занимаемая площадь python. Это предназначалось для создания встроенных устройств с ограничениями памяти и низким энергопотреблением. Micropython доступен для многих семейств контроллеров, включая ESP8266, ESP32, Ardui
MicroPython IoT Rover на базе WEMOS D1 (ESP-8266EX): 7 шагов (с изображениями)
MicroPython IoT Rover на основе WEMOS D1 (ESP-8266EX): ** Обновление: я опубликовал новое видео для версии 2 с копьем ** Я провожу семинары по робототехнике для маленьких детей и всегда ищу экономичные платформы для создания интересных проектов. Хотя клоны Arduino дешевы, они используют язык C / C ++, которым дети не являются
Как прошить микропрограмму MicroPython на интеллектуальном коммутаторе Sonoff на базе ESP8266: 3 шага (с изображениями)
Как установить прошивку MicroPython на смарт-коммутатор Sonoff на базе ESP8266: что такое Sonoff? Sonoff - это линейка устройств для умного дома, разработанная ITEAD. Одними из самых гибких и недорогих устройств из этой линейки являются Sonoff Basic и Sonoff Dual. Это переключатели с поддержкой Wi-Fi, основанные на отличном чипе ESP8266. Пока