Версия 6.2.0, данные: 29 января 2020 г.
Автор: М. Вестенберг ([email protected])
Авторские права: М. Вестенберг ([email protected])
Все права защищены. Эта программа и сопровождающие материалы предоставляются в соответствии с условиями лицензии MIT, которая сопровождает это распределение, и доступна по адресу https://opensource.org/licenses/mit-license.php
Эта программа распространяется в надежде, что она будет полезна, но без каких -либо гарантий; даже без подразумеваемой гарантии торговой точки зрения или пригодности для определенной цели.
Поддерживается Maarten Westenberg ([email protected])
Прежде всего: прочитайте этот файл и документацию, он должен содержать большую часть информации, необходимой для начала. К сожалению, у меня нет времени, чтобы следить за всеми электронными письмами, и, поскольку на этих страницах содержится большая часть информации, включая пин-ауты и т. Д.
У меня есть более 10 мини -досок Wemos D1, некоторые из которых я построил, около 10+ на Kallard, 3 на Comresult и 4 доска ESP32. Все они работают без проблем в этом коде. Однако я обнаружил, что хорошие пайки и проводка имеют все значение, поэтому, если вы получаете сбросы/ошибки, которые вы не можете объяснить, пожалуйста, посмотрите на вашу проводку.
Этот репозиторий содержит реализацию проверки концепции одного канала Lorawan Gateway для ESP8266. Начальная версия 5.2 также поддерживается ESP32 TTGO (и другие). Программное обеспечение реализует стандартный шлюз Lora со следующими исключениями и изменениями:
Этот шлюз Lora не полный шлюз, но он реализует только одноканальный/один частотный шлюз. Минимальное количество частот, поддерживаемых полным шлюзом, составляет 3, большинство поддерживают 9 или более частот. Это программное обеспечение началось как подтверждение концепции, чтобы доказать, что один недорогой чип RRFM95, который присутствовал почти в каждом узле LORA в Европе, может использоваться в качестве дешевой альтернативы гораздо более дорогим полным шлюзам, которые использовали чип SX1301.
Поскольку программное обеспечение этого шлюза часто будет использоваться на этапе разработки проекта или в демонстрационных ситуациях, программное обеспечение является гибким и может быть легко настроено в соответствии с требованиями среды или клиента. Есть два способа взаимодействия с программным обеспечением:
Полная документация одноканального шлюза встречается на TWERS4U.GITHUB.IO, пожалуйста, посмотрите на руководство по оборудованию под главой Gateway.
Одноканальный шлюз был протестирован на шлюзе с Wemos D1 Mini, используя приемопередатчик Hoperf RFM95W. Тесты были проведены на 868 версии LORA и некоторых тестирования на 433 МГц. Узлы LORA снова протестировали этот шлюз:
Код был протестирован как минимум на 8 отдельных досках шлюза, основанными на досках Kalsult и Comresult. Я все еще работаю над пин-аутом и функциями ESP32 (ожидается в ближайшее время).
Рекомендуется скомпилировать и запустить одноканальный шлюз с максимально небольшими модификациями. Это означает, что вы должны использовать настройки по умолчанию в 2 файлах конфигурации как можно больше и изменить SSID/пароль для вашей настройки WiFi и выводов вашего ESP8266, которые вы используете в loramodem.h. В этом разделе описывается минимум конфигурации, необходимую для получения рабочего шлюза, который может быть настроен дальше с использованием веб -страницы.
Через менеджер библиотеки:
Теперь ваш шлюз должен работать. Используйте веб -страницу, чтобы установить «отладку» на 1, и вы сможете увидеть пакеты, поступающие на серийном мониторе.
Есть два способа изменения конфигурации одноканального шлюза:
Где у вас есть выбор, вариант 2 гораздо более дружелюбен и полезен.
Файл Configgway.h содержит настройки пользователя настройки шлюза. У всех есть свои определения, установленные через утверждения #Define. В целом, установка #define на 1 будет включать функцию, и настройка ее на 0 отключит ее.
Кроме того, некоторые настройки могут быть инициализированы путем настройки их значения с помощью #Define, но могут быть изменены во время выполнения в веб -интерфейсе. Для некоторых настроек отключение функции с помощью #Define также удалит функцию из веб -сервера.
Примечание относительно использования памяти: ESP8266 имеет огромное количество памяти, доступное для программного пространства и файловой системы Spiffs. Однако память, доступная для кучи и переменных, ограничена около 80 тыс. Байтов (для ESP-32 это выше). Пользователю рекомендуется отключать функции, не используемые для сохранения использования памяти. Если куча падает ниже 18 кбайт, некоторые функции могут вести себя не так, как ожидалось (в крайнем случае программа может потерпеть крах).
Файл contignode.h используется для установки точки доступа к Wi-Fi и структуры известных датчиков на 1-канальный шлюз. Установка известных точек доступа Wi -Fi (SSID и пароль) должны быть выполнены во время компиляции.
Когда шлюз используется не только в качестве шлюза, но и в целях отладки, использованные могут указать не только имя узла датчика, но также расшифровывать для определенных узлов сообщение.
Пользователь может определить, используется ли консоль USB для выходных сообщений. При настройке _dusb до 0 все выводы по сериалу отключены (на самом деле последовательные операторы не включены в код).
#define _dusb 1
Определите класс операции, который поддерживается шлюзом. Класс A поддерживается и содержит основную работу для датчиков батареи.
Класс B содержит режим работы маяка/батареи. Ворота отправит OU маяка на подключенные датчики, что позволяет им синхронизировать носкую линию линии связи.
Режим работы класса C (непрерывный) содержит поддержку устройств, которые, вероятно, не управляются аккумулятором и будут всегда прослушать сеть. В результате задержка этих устройств также короче, чем для устройств класса A. Устройства класса C не зависят от питания аккумулятора и будут расширять окна приема до следующего окна передачи. На самом деле, только передачи заставит устройство прервать слушание до тех пор, пока эта трансмиссия длится. Устройства класса C не могут выполнять работу класса B.
#define _class "a"
Все устройства начнутся как устройства класса A и могут решить «обновить» до класса B или C. Также шлюз может или не может поддерживать класс B, который является суперсетом класса A. Примечание: только класс A поддерживается.
Мы поддерживаем две конфигурации пин-аута вне коробки: Kallard и Compresult. Если вы используете один из этих двух, просто установите параметр на правильное значение. Если ваши определения PIN -кода различны, обновите файл loramodem.h, чтобы отразить эти настройки. 1: Kallard 2: Comresult Pin Out 3: ESP32 Pin Out 4: Другое, определите свой собственный в loramodem.h
#define _pin_out 1
Следующий параметр должен быть установлен на 0 при нормальных обстоятельствах. Это позволяет системе форматировать форматирование файловой системы Spiffs.
#define spiff_format 0
Установите _SseReing Factor на желаемое значение SF7, SF8 - SF12. Обратите внимание, что это значение тесно связано со значением, используемым для _CAD. Если _CAD включена, значение _sseraing не используется шлюзом, поскольку в нем включены все коэффициенты spucting.
#define _spreading sf9
Обратите внимание, что используемая частота по умолчанию составляет 868,1 МГц, которая может быть изменена в файле loramodem.h. Пользователь рекомендуется не менять этого ETTING и использовать только по умолчанию частоту 868,1 МГц.
Обнаружение активности канала (CAD) является функцией чипа LORA RFM95 для обнаружения входящих сообщений (активность). Эти входящие сообщения могут поступить на любой из хорошо известных факторов распространения SF7-SF12. Обеспечивая CAD, шлюз может получать сообщения любого из факторов распространения.
На самом деле он используется в обычной операции, чтобы сообщить приемнику, что другой сигнал уже использует канал.
Функциональность CAD поступает по цене (маленькой): чип не сможет получить очень слабые сигналы, поскольку функция CAD будет использовать настройку регистра RSSI чипа, чтобы определить, получила ли он сигнал (или просто шум). В результате очень слабые сигналы не получены, что означает, что диапазон шлюза будет уменьшен в режиме САПР.
#define _cad 1
Как и из версии 4.0.6, шлюз позволяет обновлять воздух, если включен настройка A_OTA. Программное обеспечение Over Air требуется после настройки версии 4.0.6 над USB на шлюз, после чего программное обеспечение (по умолчанию) включено для использования.
Первый релиз поддерживает только функцию OTA с использованием IDE, что на практике означает, что IDE должен находиться в том же сегменте сети, что и шлюз.
Примечание. Вы должны использовать программное обеспечение Bonjour (Apple) где -то в своей сети. Версия доступна для большинства платформ (например, отправлена с iTunes для Windows). Программное обеспечение Bonjour позволяет Gateway использовать MDNS для разрешения идентификатора шлюза, установленного OTA, после которого загружаются порты в IDE.
TODO: Программное обеспечение OTA еще не было протестировано в сочетании с программным обеспечением Wifimanager.
#define a_ota 1
Эта настройка позволяет веб -сервер. Хотя сам WebServer занимает много памяти, он очень помогает настроить время выполнения Gatewayat и проверять его поведение. Он также предоставляет статистику полученных сообщений. Параметр A_REFRESH определяет, должен ли веб -сервер продлевать каждые x секунд.
#define a_server 1 // Определить локальный веб -сервер, только если это определение установлено
#Define A_REFRESH 1 // Способен ли WebServer обновить да/нет? (Да в порядке) #define a_serverport 80 // Локальный порт веб -сервер
#define a_maxbufsize 192 // должен быть больше 128, но достаточно маленький, чтобы работать
Параметр A_REFRESH определяет, можем ли мы установить настройку обновления да/нет в веб -браузере. Настройка в веб -браузере обычно наделяется «нет» в качестве по умолчанию, но мы можем оставить определение «1», чтобы позволить этому настройку в веб -брузере.
Чтобы шлюз отправил сообщения нисходящей линии связи на предварительно установленном коэффициенте распределения и на частоте по умолчанию, вам необходимо установить параметр _strict_1ch на 1. Обратите внимание, что, когда он не установлен на 1, шлюз ответит на запросы нисходящей линии связи с частотой и фактором распространения, установленным сервером. И на данный момент TTN отвечает на сообщения нисходящей связи для SF9-SF12 в временном интервале RX2 и с частотой 869,525 МГц и на SF12 (согласно стандарту LORA при отправке в RX2 временного интервала).
#define _strict_1ch 0
Вам рекомендуется не изменять настройку по умолчанию этого параметра.
Установив OLED, вы настраиваете систему для работы с OLED -панелями над I2C. Некоторые панели работают как SPI, так и I2C, где I2C - Solwer. Однако, поскольку SPI используется для связи RFM95 приемопередатчика, вы резко обеспокоены, используя один из них, поскольку они не будут работать с этим программным обеспечением. Вместо этого выберите OLED решение, которое работает над I2C.
#define OLED 1
Следующие значения определены для OLED:
Когда это будет определено (== 1), мы собираем статистику каждого сообщения и выведем ее в файловую систему Spiffs. Мы уверены, что используем несколько файлов с каждым фиксированным количеством записей для статистики. Номер REC сообщает нам, сколько записей разрешено в каждом статистическом файле. Как только номер REC выше, чем количество разрешенных записей, мы открываем новый файл. Как только количество файлов превышает количество файлов статистики, мы удаляем старый файл и открываем новый файл. При выборе кнопки «Журнал» в верхней части экрана графического интерфейса все файлы журнала rthe uptu для последовательного устройства USB. Таким образом, мы можем изучить гораздо больше записей, чем подгонка экрана графического интерфейса или серийный выход.
#define stat_log 1
Установка контактов I2C SDA/SCL выполняется в файле configgway.h сразу после #Define OFED. Стандарт ESP8266 использует контакты D1 и D2 для линий SCL и SDA шины I2C, но пользователь может измениться. Обычно это не требуется. Функции OLED обнаруживаются в файле _loramodem.ino и могут быть адаптированы, чтобы показать другие поля. Функции вызываются при получении сообщения (!), И, следовательно, это добавит к нестабильности ESP, поскольку эти функции могут потребовать больше времени, чем ожидалось. Если это так, Swithc отключите функцию OLED или постройте функцию в основном цикле (), которая отображается во время пользователя (не прерывание).
Ворота позволяет подключаться к 2 серверу одновременно (как и большинство шлюзов LORA). Вы должны подключиться как минимум к одному стандартному маршрутизатору Lora, если вы используете сеть вещей (TTN), чем убедиться, что вы установите:
#define _ttnserver "router.eu.thethings.network"
#define _ttnport 1700
Если вы настраиваете собственный сервер, вы можете указать следующее, используя свой собственный URL -адрес маршрутизатора и свой собственный порт:
#Define _ThingServer "your_server.com" // URL -адрес сервера сервера Lora UDP.JS Server программы
#define _thingport 1701 // Ваш UDP -сервер должен прослушать этот порт
Установите параметры идентификации для вашего шлюза:
#define _description "esp-gateway"
#define _email "[email protected]"
#define _platform "ESP8266"
#define _lat 52.00
#define _lon 5.00
#define _alt 0
Можно использовать шлюз в качестве узла. Таким образом, сообщается о локальных/внутренних значениях датчиков. Это процессор и интенсивная функция памяти, так как создание датчика включает в себя функции EAS и CMAC.
#define gatewaynode 0
Далее ниже в файле конфигурации infignode.h можно установить адрес и другую информацию LORA узла шлюза.
Самый простой способ настроить шлюз на Wi -Fi - это использование функции Wifimanager. Эта функция работает из коробки. Wifimanager поместит шлюз в режим Accesspoint, чтобы вы могли подключиться к нему в качестве точки доступа Wi -Fi.
#define _wifimanager 0
Если Wi -Fi Manager включен, обязательно определите имя точки доступа, если шлюз находится в режиме Accesspoint и пароль.
#define ap_name "esp8266-hay-things4u"
#define ap_passwd "ttnautopw"
Стандартное имя точки доступа, используемое шлюзом, - «ESP8266 GWAY», а его пароль - «TTNAUTOPW». После привязки к точке доступа к мобильному телефону или компьютеру перейдите по адресу htp: //192.168.4.1 в браузере и сообщите шлюзу, к какой сети Wi -Fi вы хотите, чтобы она подключилась, и укажите пароль.
Затем шлюз сбросит и связывается с данной сетью. Если все пойдет хорошо, вы теперь настроены, и ESP8266 запомнит сеть, к которой она должна подключиться. ПРИМЕЧАНИЕ. До тех пор, пока точке доступа, к которой находится шлюз, присутствует, шлюз больше не будет работать со списком известных точек доступа WPA. При необходимости вы можете удалить текущую точку доступа в веб -сервере и цикл питания шлюза, чтобы заставить его снова прочитать массив WPA.
#if gatewaynode == 1
#define _devaddr {0x26, 0x01, 0x15, 0x3d}
#define _appskey {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
#define _nwkskey {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
#define _sensor_interval 300
#endif
Встроенный веб-сервер можно использовать для отображения статуса и отладки информации. Кроме того, веб-сервер позволяет пользователю изменять определенные настройки во время выполнения, такие как уровень отладки или включать и выключить функцию CAD. Доступ к нему можно получить со следующим URL: http: //: 80, где находится IP, данный маршрутизатором ESP8266 при запуске. Вероятно, это что -то вроде 192.168.1.xx. В веб -сервере показаны различные настройки конфигурации, а также предоставляют функции для установки параметров.
Следующие параметры могут быть установлены с использованием веб -сервера.
Программное обеспечение зависит от нескольких частей программного обеспечения, а Arduino IDE для ESP8266 является наиболее важным. Несколько других библиотек также используются в рамках этой программы, убедитесь, что вы установите эти библиотеки с IDE:
Для удобства библиотеки также встречаются в этом репозитории GitHub в каталоге библиотек. Обратите внимание, что они не являются частью шлюза ESP 1Channel и могут иметь собственное лицензирование. Тем не менее, эти библиотеки не являются частью одноканального программного обеспечения шлюза.
См. Http://things4u.github.io в разделе оборудования для инструкций по строительству и подключению.
Следующие зависимости действительны для одноканального шлюза:
Следующие вещи все еще находятся в моем списке желаний, чтобы сделать в одном канале Gateway:
Исходные файлы эскиза шлюза в этом репозитории предоставляются по лицензии MIT. Библиотеки, включенные в этот репозиторий, включены только для удобства, и у всех есть своя собственная лицензия и не являются частью кода шлюза ESP 1CH.