OrangePI 2iot

  • Михаил
  • 12 мин. на прочтение
  • 67
  • 14 Dec 2020
  • 06 Jan 2023

Orange Pi 2G-IoT предназначен для всех, кто хочет начать создавать с помощью технологий, а не просто потреблять их. Это простой, забавный и полезный инструмент, который вы можете использовать, чтобы начать контролировать мир вокруг себя.

Первым делом чтобы начать работать с платой, нам необходимо поставить ОС. На сайте производителя можно почитать про устройство, посмотреть характеристики, а так-же скачать ОС по вкусу. 

Как видим, выбор довольно впечатляющий. Для платы Orange Pi PC+ я ставлю Armbian Image, он и качается проще и достаточный для работы.

На сайте разработчика имеется как CLI версия, так и Desktop. Кто не представляет свою жизнь без GUI

Далее приступаем к процессу записи образа ОС на флешку.

Подключаемся через RS232. Если нет GUI.

Наблюдаем процесс загрузки.

Ну и наконец логинимся.

orangepi
orangepi

Настраиваем wifi.

sudo nmcli device wifi list
sudo nmcli device wifi connect 'smm' password '' ifname wlan0
ip addr

 

 

Теперь пользователь temproot должен иметь привилегии root:

root:x:0:0:root:/root:/bin/bash
temproot:x:0:0:temproot

 

Дальше пошел процесс настройки ZigBee CC2531 свистка и всех сопутствующих плюшек. Об этом можно почитать в разделе ZigBee.

После прошивки модема необходимо установить MQTT брокер (если еще не установлен).

Я использую Mosquitto (но чаще использую в DockerЕ), устанавливается так: 

sudo apt install -y mosquitto mosquitto-clients
sudo systemctl start mosquitto
sudo systemctl enable mosquitto.service

А если в Docker, то всего то

docker run --restart=always -p 1883:1883 -p 9001:9001 -v /opt/mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf -v /mosquitto/data -v /mosquitto/log -d eclipse-mosquitto

Как всегда запускаем PuTTY и обновляемся.

sudo apt update
sudo apt -y upgrade

Все выпуски Node.js являются производными из официального репозитория APT. 

Однако это необходимо добавить в вашу систему вручную.

sudo apt update
sudo apt -y install curl dirmngr apt-transport-https lsb-release ca-certificates
sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

 

apt install npm
apt install -y nodejs git make g++ gcc
npm install typescript -g

 

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt 
sudo chown -R pi:pi /opt/zigbee2mqtt 
Установить зависимости

cd /opt/zigbee2mqtt

npm ci

или
npm install

 

Откройте файл конфигурации:

vi /opt/zigbee2mqtt/data/configuration.yaml

Настраиваем адрес mqtt сервера и порт usb стика СС25хх. 

Для базовой конфигурации, вероятно, подходят настройки по умолчанию.

Единственное, что нам нужно изменить, - это URL-адрес сервера MQTT и аутентификацию (если применимо).

# MQTT server URL
  server: 'mqtt://10.10.11.18'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

Так же указываем на каком порту у нас появился стик:
Для raspberry это возможно будут /dev/ttyACM0, /dev/ttyACM1
Для Orange Pi это будут /dev/ttyUSB0, /dev/ttyUSB1

Запуск в качестве демона с systemctl #

Чтобы запустить Zigbee2MQTT как демон (в фоновом режиме) и запускать его автоматически при загрузке, мы запустим Zigbee2MQTT с помощью systemctl.

vi /etc/systemd/system/zigbee2mqtt.service

Добавьте в этот файл следующее:

 

[Unit]
Description=zigbee2mqtt
After=network.target


[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=orangepi


[Install]
WantedBy=multi-user.target

Убедитесь, что конфигурация работает:

Запускаем Zigbee2MQTT

sudo systemctl start zigbee2mqtt.service

Проверяем статус

systemctl status zigbee2mqtt.service

Теперь, когда все работает, мы сделаем чтобы systemctl автоматически запускал Zigbee2MQTT при загрузке, это можно сделать, выполнив:

sudo systemctl enable zigbee2mqtt.service

Смотрим лог: 

sudo journalctl -u zigbee2mqtt.service -f

Видим, как весело наши zigbee устройства начинают нам кидать приветы.