OrangePi и MySensors
Добавлено: Чт ноя 09, 2017 10:48 am
Подключение MySensors к OrangePi PC и другим апельсинкам без NAND и к Zero
Только если Armbian не ниже 5.30, в ранних версиях не работает SPI
1. Устанавливаем Armbian версии не ниже 5.30 (поскольку до этого не реализована работа с SPI)
2. Устанавливаем sunxi-tools
3. Конфигурируем script.bin для включения SPI
3.1. для Zero
3.2. Для остальных достаточно включить только spi0
4. Перезагружаемся.
5. проверяем наличие SPI
Для Zero должен быть /dev/spidev1.0, для остальных достаточно только /dev/spidev0.0
6. загружаем модуль
7. Качаем MySensors
8. Конфигурируем
Для Zero СЕ подключаем на 22 контакт, CS подключаем на 24-й контакт
для NRF24
для RFM69
Для PC, lite и т.п. CE подключаем на 22 контакт (РА2), CS подключаем на 26 контакт(PA21)
для NRF24
для RFM69
9. Так же указываем конфигурацию шлюза
Ethernet gateway
Serial gateway
MQTT
10. Собираем
11. проверяем
должно быть
12. Устанавливаем
Возможно подключать не только к PA21, а к другому пину, при этом номер GPIO будет совпадать с номером вывода PA, если нужно подключить с другому пину не PA то соответствие номера GPIO с номером порта я не нашел, если кто подскажет, буду рад.
Только если Armbian не ниже 5.30, в ранних версиях не работает SPI
1. Устанавливаем Armbian версии не ниже 5.30 (поскольку до этого не реализована работа с SPI)
2. Устанавливаем sunxi-tools
Код: Выделить всё
sudo apt-get update
sudo apt-get install sunxi-tools
Код: Выделить всё
bin2fex /boot/script.bin /tmp/orange.fex
nano /tmp/orange.fex
СпойлерПоказать
Код: Выделить всё
[spi0]
spi_used = 1
spi_cs_bitmap = 1
spi_mosi = port:PC00<3><default><default><default>
spi_miso = port:PC01<3><default><default><default>
spi_sclk = port:PC02<3><default><default><default>
spi_cs0 = port:PC03<3><1><default><default>
[spi1]
spi_used = 1
spi_cs_bitmap = 1
spi_cs0 = port:PA13<2><1><default><default>
spi_sclk = port:PA14<2><default><default><default>
spi_mosi = port:PA15<2><default><default><default>
spi_miso = port:PA16<2><default><default><default>
[spi_devices]
spi_dev_num = 2
[spi_board0]
modalias = "spidev"
max_speed_hz = 33000000
bus_num = 0
chip_select = 0
mode = 0
full_duplex = 1
manual_cs = 0
[spi_board1]
modalias = "spidev"
max_speed_hz = 33000000
bus_num = 1
chip_select = 0
mode = 0
full_duplex = 1
manual_cs = 0
СпойлерПоказать
Код: Выделить всё
[spi0]
spi_used = 1
spi_cs_bitmap = 1
spi_mosi = port:PC00<3><default><default><default>
spi_miso = port:PC01<3><default><default><default>
spi_sclk = port:PC02<3><default><default><default>
spi_cs0 = port:PC03<3><1><default><default>
[spi1]
spi_used = 0
spi_cs_bitmap = 1
spi_cs0 = port:PA13<2><1><default><default>
spi_sclk = port:PA14<2><default><default><default>
spi_mosi = port:PA15<2><default><default><default>
spi_miso = port:PA16<2><default><default><default>
[spi_devices]
spi_dev_num = 1
[spi_board0]
modalias = "spidev"
max_speed_hz = 33000000
bus_num = 0
chip_select = 0
mode = 0
full_duplex = 1
manual_cs = 0
[spi_board1]
modalias = "spidev"
max_speed_hz = 33000000
bus_num = 1
chip_select = 0
mode = 0
full_duplex = 1
manual_cs = 0
Код: Выделить всё
sudo fex2bin /tmp/orange.fex /boot/script.bin
Код: Выделить всё
sudo reboot
Код: Выделить всё
ls -l /dev/spidev*
crw------- 1 root root 153, 0 Jan 11 16:31 /dev/spidev0.0
crw------- 1 root root 153, 1 Jan 11 16:31 /dev/spidev1.0
6. загружаем модуль
Код: Выделить всё
sudo modprobe gpio-sunxi
echo "gpio-sunxi" >> /etc/modules
Код: Выделить всё
git clone https://github.com/mysensors/MySensors.git
cd MySensors
Для Zero СЕ подключаем на 22 контакт, CS подключаем на 24-й контакт
для NRF24
Код: Выделить всё
./configure --spi-spidev-device=/dev/spidev1.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=13
Код: Выделить всё
./configure --spi-spidev-device=/dev/spidev1.0 --my-transport=rfm69 --my-rfm69-irq-pin=2 --my-rfm69-cs-pin=13 --my-rfm69-frequency=868 --my-is-rfm69hw
для NRF24
Код: Выделить всё
./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=21
Код: Выделить всё
./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=rfm69 --my-rfm69-irq-pin=2 --my-rfm69-cs-pin=21 --my-rfm69-frequency=868 --my-is-rfm69hw
Ethernet gateway
Код: Выделить всё
--my-gateway=ethernet --my-port=5003
Код: Выделить всё
--my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorsGateway
Код: Выделить всё
--my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1
Код: Выделить всё
make
Код: Выделить всё
sudo ./bin/mysgw -d
Код: Выделить всё
mysgw: Starting gateway...
mysgw: Protocol version - 2.2.0-beta
mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.2.0-beta
mysgw: TSF:LRT:OK
mysgw: TSM:INIT
mysgw: TSF:WUR:MS=0
mysgw: TSM:INIT:TSP OK
mysgw: TSM:INIT:GW MODE
mysgw: TSM:READY:ID=0,PAR=0,DIS=0
mysgw: MCO:REG:NOT NEEDED
mysgw: Listening for connections on 0.0.0.0:5003
mysgw: MCO:BGN:STP
mysgw: MCO:BGN:INIT OK,TSP=1
Код: Выделить всё
sudo make install
sudo systemctl enable mysgw.service