Сборка Raspberry Pi Gateway

Raspberry Pi — это небольшой компьютер, который потребляет очень мало энергии (2-3 Вт). Но он достаточно мощный для работы в качестве контроллера «все-в-одном» с поддержкой облачных вычислений.

Некоторые контроллеры, описанные здесь, могут запускаться на RPi. Например. MajorDomo, OpenHAB и PiDome.

Скачивание MySensors

Войдите в свой Raspberry Pi и скачайте код из репозитория MySensors (master branch):

Чтобы использовать версию разработки с последними обновлениями:

Конфигурация

Список параметров для установки шлюза можно получить, выполнив команду:

Примечание: В параметрах, для которых требуется номер вывода, используйте физический пин-код Raspberry Pi, а не номера GPIO.

Транспортный уровень

Доступны следующие транспортные уровни: nrf24, rs485, rfm95, rfm69

NRF24

--my-transport=nrf24

RFM69

Примечание: RFM69 поддерживается только в ветке разработки.

Частоту можно установить равной 315,433,868 или 915 МГц; —my-is-rfm69hw позволяет использовать мощные радиостанции rfm69hw.

Примечание. В RaspberryPi используется новый драйвер RFM69, который несовместим со старым (= по умолчанию) RFM69-драйвером, вам нужно добавить #define MY_RFM69_NEW_DRIVER на свои узлы для правильной связи с шлюзом (доступно только в ветке разработки).

Тип шлюза

Доступны следующие типы: ethernet, serial, mqtt

Ethernet-шлюз

По умолчанию шлюз построен для сети Ethernet, и он прослушивает порт 5003:

Чтобы установить шлюз как клиент, который подключается к контроллеру, используйте:

или

Шлюз последовательного порта

Если вы используете контроллер на Raspberry Pi, который не поддерживает связь с шлюзом через ethernet, вы можете использовать виртуальный последовательный порт:

Для некоторых контроллеров необходимо использовать более узнаваемое имя: например. /dev /ttyUSB020 (проверьте, является ли он свободным).

MQTT

Ниже приведен пример построения шлюза MQTT:

Сборка

Чтобы собрать, запустите:

Если все пойдет хорошо, будет создан файл bin/mysgw.

Тестирование

Шлюз должен иметь права root для запуска. Чтобы посмотреть список параметров, нужно запустить команду:

При первом запуске шлюз, включите сообщения отладки, чтобы убедиться, что он работает:

Следующее сообщение указывает, что сообщение с радио модулем не выполнено:

Сообщение об успешном завершении:

Установка

Чтобы установить запустите:

Это команда опишет инструкции по добавлению шлюза при каждой загрузке.

Исправление проблем

При установке в качестве службы лог шлюза будет передаваться в syslog в /var/log/syslog.
Если вы хотите получить полный отладочный вывод от шлюза для входа в syslog (включая протокол), вам необходимо отредактировать следующий файл: /etc/systemd/system/mysgw.service
Добавьте параметр -d в строку ExecStart

Затем перезапустить процесс systemd и перезапустите шлюз

Теперь вывод шлюза можно контролировать

Имейте в виду, что в лог шлюза теперь имеет дополнительные данные syslog!

Подключение проводов

Используйте физический вывод, а не GPIO.

Raspberry Pi 2/3

Raspberry Pi 1

NRF24L01+ радио

Raspberry NRF24L01+ Цвет
 GND GND Чёрный
 3.3V(*) VCC Красный
22 CE Оранжевый
24 CSN/CS Жёлтый
23 SCK Зелёный
19 MOSI Синий
21 MISO Фиолетовый
15 (Опционально) IRQ Серый

 

(*): Если вы используете версию nrf24 PA / LNA, вам нужно использовать регулятор 5V-> 3.3V.

RFM69 радио

Raspberry RFM69 Цвет
GND GND Чёрный
3.3V VCC Красный
x NSS Жёлтый
x SCK Зелёный
x MOSI Синий
x MISO Фиолетовый
x DI00 Серый
 (*) ANA Антенна

(*): Припаяйте кусок проволоки, подробнее здесь

Улучшение пропускной способности для nrf24

Обычно шлюз запрашивает модуль nrf24, если новое радиосообщение доступно и затем спит несколько миллисекунд, прежде чем снова спросить. Это необходимо, чтобы избежать использования центрального процессора. Во время периода ожидания шлюза, модуль будет по-прежнему слушать новые сообщения, но если придет несколько сообщений, это не займет много времени.

Есть еще один способ: вывод прерывания из модулей nrf24 используется для уведомления о поступлении нового сообщения и немедленно добавляется в очередь для дальнейшей обработки. Чтобы использовать этот метод, подключите вывод прерывания от модуля nrf24 к вашему Raspberry Pi (проверьте подключение проводов с национальной информацией) и используйте опцию «—my-rf24-irq-pin = PIN» для сборки шлюза.

В следующем примере вывод прерывания подключен к контакту 15 Raspberry Pi:

Информационные светодиоды

Ниже приведен пример того, как добавить светодиоды для мигания ERR / RX / TX.

Raspberry Светодиоды Цвет
12 ERR Красный
16 RX Жёлтый
18 TX Зелёный

 

 

 

 

 

 

Дополнение

Другие настройки можно сделать, отредактировав файл example_linux/mysgw.cpp и MyConfig.h

Также можно установить любое определение из команды configure, добавив его в -extra-cxxflags. Пример отладки rfm95:

 

Share