Страница 1 из 2

OrangePi и MySensors

Добавлено: Чт ноя 09, 2017 10:48 am
immortal
Подключение MySensors к OrangePi PC и другим апельсинкам без NAND и к Zero
Только если Armbian не ниже 5.30, в ранних версиях не работает SPI

1. Устанавливаем Armbian версии не ниже 5.30 (поскольку до этого не реализована работа с SPI)
2. Устанавливаем sunxi-tools

Код: Выделить всё

sudo apt-get update
sudo apt-get install sunxi-tools
3. Конфигурируем script.bin для включения SPI

Код: Выделить всё

bin2fex /boot/script.bin /tmp/orange.fex
nano /tmp/orange.fex
3.1. для Zero
СпойлерПоказать

Код: Выделить всё

[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
3.2. Для остальных достаточно включить только spi0
СпойлерПоказать

Код: Выделить всё

[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
4. Перезагружаемся.

Код: Выделить всё

sudo reboot
5. проверяем наличие SPI

Код: Выделить всё

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
Для Zero должен быть /dev/spidev1.0, для остальных достаточно только /dev/spidev0.0
6. загружаем модуль

Код: Выделить всё

sudo modprobe gpio-sunxi
echo "gpio-sunxi" >> /etc/modules
7. Качаем MySensors

Код: Выделить всё

git clone https://github.com/mysensors/MySensors.git
cd MySensors
8. Конфигурируем
Для 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
для RFM69

Код: Выделить всё

./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
Для PC, lite и т.п. CE подключаем на 22 контакт (РА2), CS подключаем на 26 контакт(PA21)
для NRF24

Код: Выделить всё

./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=21
для RFM69

Код: Выделить всё

./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
9. Так же указываем конфигурацию шлюза
Ethernet gateway

Код: Выделить всё

--my-gateway=ethernet --my-port=5003
Serial gateway

Код: Выделить всё

--my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorsGateway
MQTT

Код: Выделить всё

--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
10. Собираем 11. проверяем

Код: Выделить всё

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
12. Устанавливаем

Код: Выделить всё

sudo make install
sudo systemctl enable mysgw.service
Возможно подключать не только к PA21, а к другому пину, при этом номер GPIO будет совпадать с номером вывода PA, если нужно подключить с другому пину не PA то соответствие номера GPIO с номером порта я не нашел, если кто подскажет, буду рад.

Re: OrangePi и MySensors

Добавлено: Сб ноя 11, 2017 4:35 pm
Ivan
Используйте лучше модуль MySensors.
Он даст вам больше возможностей MySensirs

Отправлено с моего SM-G7102 через Tapatalk

Re: OrangePi и MySensors

Добавлено: Сб ноя 11, 2017 6:38 pm
immortal
Ivan писал(а):Используйте лучше модуль MySensors.
Он даст вам больше возможностей MySensirs

Отправлено с моего SM-G7102 через Tapatalk
В смысле? модель разве может работать без демона MySensors?

Re: OrangePi и MySensors

Добавлено: Сб ноя 11, 2017 11:17 pm
AlexeyKr
Как раз сегодня разбирался, почему не работает в вашем образе nRF24L01. Хотел поделиться, а тут оказывается появилась темка :D

сначала нашел распиновку GPIO OrangePI PC и Zero. понял, что SPI надо использовать не 1, а 0.

Для определения номеров портов можно воспользоваться командой

Код: Выделить всё

root@orangepipc:~# gpio readall    
результат gpio readallПоказать

Код: Выделить всё

 +-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--                                                                                                    +
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM                                                                                                     |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----                                                                                                    +
 |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |                                                                                                         |
 |  12 |   8 |    SDA.0 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |                                                                                                         |
 |  11 |   9 |    SCL.0 | ALT5 | 0 |  5 || 6  |   |      | 0v       |     |                                                                                                         |
 |   6 |   7 |   GPIO.7 | ALT3 | 0 |  7 || 8  | 0 | ALT3 | TxD3     | 15  | 13                                                                                                      |
 |     |     |       0v |      |   |  9 || 10 | 0 | ALT3 | RxD3     | 16  | 14                                                                                                      |
 |   1 |   0 |     RxD2 | ALT3 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110                                                                                                     |
 |   0 |   2 |     TxD2 | ALT3 | 1 | 13 || 14 |   |      | 0v       |     |                                                                                                         |
 |   3 |   3 |     CTS2 | ALT3 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68                                                                                                      |
 |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71                                                                                                      |
 |  64 |  12 |     MOSI | ALT4 | 0 | 19 || 20 |   |      | 0v       |     |                                                                                                         |
 |  65 |  13 |     MISO | ALT4 | 0 | 21 || 22 | 1 | OUT  | RTS2     | 6   | 2                                                                                                       |
 |  66 |  14 |     SCLK | ALT4 | 0 | 23 || 24 | 1 | OUT  | CE0      | 10  | 67                                                                                                      |
 |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21                                                                                                      |
 |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18                                                                                                      |
 |   7 |  21 |  GPIO.21 | ALT3 | 0 | 29 || 30 |   |      | 0v       |     |                                                                                                         |
 |   8 |  22 |  GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT5 | RTS1     | 26  | 200                                                                                                     |
 |   9 |  23 |  GPIO.23 | ALT3 | 0 | 33 || 34 |   |      | 0v       |     |                                                                                                         |
 |  10 |  24 |  GPIO.24 | ALT3 | 0 | 35 || 36 | 0 | ALT5 | CTS1     | 27  | 201                                                                                                     |
 |  20 |  25 |  GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT5 | TxD1     | 28  | 198                                                                                                     |
 |     |     |       0v |      |   | 39 || 40 | 0 | ALT5 | RxD1     | 29  | 199                                                                                                     |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----                                                                                                    +
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM                                                                                                     |
 +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+----- 
В колонке BCM - номер пина.

У меня nRF24L01 с усилителем, для него надо устанавливать низкий уровень мощности.
В результате для того, чтобы заработал мой приемопередатчик, пересобрал mysgw со следующими настройками:

Код: Выделить всё

./configure --spi-spidev-device=/dev/spidev0.0 --my-transport=nrf24 --my-rf24-ce-pin=2 --my-rf24-cs-pin=67 --my-gateway=ethernet --my-port=5003 --my-rf24-pa-level=RF24_PA_LOW

Re: OrangePi и MySensors

Добавлено: Сб ноя 11, 2017 11:28 pm
AlexeyKr
nRF24L01 подключена так:
17 - 3,3В - +nRF
19 - MOSI
21 - MISO
22 - CE
23 - SCK
24 - CSN
25 - GND
на ножках питания nRF висит дополнительно конденсатор

Использую модуль Mysensors, IP 0.0.0.0 порт 5003. Никаких дополнительных модулей для работы не требуется.

mosquitto за ненадобностью деинсталлировал.

Re: OrangePi и MySensors

Добавлено: Вт ноя 14, 2017 4:09 pm
vitar78
AlexeyKr писал(а):nRF24L01 подключена так:
17 - 3,3В - +nRF
19 - MOSI
21 - MISO
22 - CE
23 - SCK
24 - CSN
25 - GND
на ножках питания nRF висит дополнительно конденсатор

Использую модуль Mysensors, IP 0.0.0.0 порт 5003. Никаких дополнительных модулей для работы не требуется.

mosquitto за ненадобностью деинсталлировал.
Странно по вашей схеме не работает
вот вывод gpio

Код: Выделить всё

root@orangepipc:~/MySensors# gpio readall
 +-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
 |  12 |   8 |    SDA.0 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |     |
 |  11 |   9 |    SCL.0 | ALT5 | 0 |  5 || 6  |   |      | 0v       |     |     |
 |   6 |   7 |   GPIO.7 | ALT3 | 0 |  7 || 8  | 1 | OUT  | TxD3     | 15  | 13  |
 |     |     |       0v |      |   |  9 || 10 | 0 | ALT5 | RxD3     | 16  | 14  |
 |   1 |   0 |     RxD2 | ALT3 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110 |
 |   0 |   2 |     TxD2 | ALT3 | 1 | 13 || 14 |   |      | 0v       |     |     |
 |   3 |   3 |     CTS2 | ALT3 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68  |
 |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71  |
 |  64 |  12 |     MOSI | ALT4 | 0 | 19 || 20 |   |      | 0v       |     |     |
 |  65 |  13 |     MISO | ALT4 | 0 | 21 || 22 | 0 | OUT  | RTS2     | 6   | 2   |
 |  66 |  14 |     SCLK | ALT4 | 0 | 23 || 24 | 0 | ALT4 | CE0      | 10  | 67  |
 |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21  |
 |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18  |
 |   7 |  21 |  GPIO.21 | ALT3 | 0 | 29 || 30 |   |      | 0v       |     |     |
 |   8 |  22 |  GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT5 | RTS1     | 26  | 200 |
 |   9 |  23 |  GPIO.23 | ALT3 | 0 | 33 || 34 |   |      | 0v       |     |     |
 |  10 |  24 |  GPIO.24 | ALT3 | 0 | 35 || 36 | 0 | ALT5 | CTS1     | 27  | 201 |
 |  20 |  25 |  GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT5 | TxD1     | 28  | 198 |
 |     |     |       0v |      |   | 39 || 40 | 0 | ALT5 | RxD1     | 29  | 199 |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+
root@orangepipc:~/MySensors#
 
помогите подключить nRF24L01 к orange pi pc

Re: OrangePi и MySensors

Добавлено: Вт ноя 14, 2017 4:43 pm
immortal
vitar78 писал(а): помогите подключить nRF24L01 к orange pi pc
а по инструкции в шапке? различия в них только в одном выводе, всё сделалт что написано в шапке? Armbian не ниже 5.30? если ниже то там не реализована работа SPI (надо пересобирать ядро)
Как вариант: экспортировать настройки МД в файл, скачать новый образ который выложен вчера и просто сконфигурировать там MySensors (лежит в папке /root/MySensors), загрузить сохраненные настройки МД

Re: OrangePi и MySensors

Добавлено: Вт ноя 14, 2017 5:14 pm
vitar78
Я скачал и поставил вашу полследнюю сборку, пробовал и как вы писали и как в последнем посте.
но он почему то не видит модуль, пробовал несколько модулей
а можно для самых одаренных как я расписать пины на pi pc

Re: OrangePi и MySensors

Добавлено: Вт ноя 14, 2017 8:35 pm
immortal
vitar78 писал(а):Я скачал и поставил вашу полследнюю сборку, пробовал и как вы писали и как в последнем посте.
но он почему то не видит модуль, пробовал несколько модулей
а можно для самых одаренных как я расписать пины на pi pc
где то писали, что для некоторые модули не работают от питания прямо с гребенки OrangePiPC, попробуйте внешнее питание, не забудьте объединнить GND внешнего питания nrf и апельсинке
или между между ногой 3.3V и GND конденсатор
Выделение_040.png
Выделение_040.png (67.64 КБ) 8474 просмотра

Re: OrangePi и MySensors

Добавлено: Вт ноя 14, 2017 10:25 pm
vitar78
Блин не знаю что дклать
кондер повесил
питание отдельно подключил
гнд соединил с апельсинкой

Код: Выделить всё

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 FAIL
mysgw: TSM:FAIL:CNT=1
mysgw: TSM:FAIL:DIS
mysgw: TSF:TDI:TSL
mysgw: TSM:FAIL:RE-INIT
mysgw: TSM:INIT
mysgw: !TSM:INIT:TSP FAIL
mysgw: TSM:FAIL:CNT=2
mysgw: TSM:FAIL:DIS
mysgw: TSF:TDI:TSL
почему не работает не знаю (((
у меня одна только мысль не правельно может читаю таблицу пинов и не туда подключаю ((


Изображение

CE и на 22 и на 24 вешал
СS судя по таблице на 8 пин и на 26 и 22 вешал
CLK на 23
MOSI 19
MISO 21

не в какую не видит