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.fexSPOILERSPOILER_SHOW
Код: Выделить всё
[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 = 0SPOILERSPOILER_SHOW
Код: Выделить всё
[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.06. загружаем модуль
Код: Выделить всё
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-rfm69hwEthernet 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