[Модуль] MySensors (mysensor)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Модуль MySensor

Сообщение lanket » Пн ноя 27, 2017 10:02 pm

Спасибо, добрый человек, что отозвался.
cabat писал(а):
lanket писал(а): Прошу помощи.
..
Что делать?
Целый день убил на эксперементы.
Если речь идет о прошивке через MYSBootloader, могу попробовать подсказать.
Блин не подумал что это может быть важным. нет. bootloader с которым пытался DualOptiboot которому внешняя eeprom нужна.
Первую я ошибку отловил сам : eeprom был подключен не на стандартную лапу и пришлось добавить строчку
#define MY_OTA_FLASH_SS 7
и ошибка инициализации eeprom исчезла

На всякий случай отпишу что строчка "#define MY_OTA_FIRMWARE_FEATURE" присутствует. В админке МД mysensors надпись напротив ноды "OTA:3.0" присутствует. Но прошивка не заливается.
cabat писал(а):1. Необходимо выбрать правильную версию бутлоадера - бывают для тактовой 1, 8 и 16MHz (ссылка)
А для DualOptiboot есть ссылка. На форуме mysensors есть ссылка на прошивку, там их несколько:
Dualoptiboot_v5.0_atmega328_8mhz_57600baud_BlinkD9_SPIdisable.hex
DualOptiboot_V5.0_atmega328_BlinkD9.hex
DualOptiboot_V5.0_atmega328_BlinkD9_SPIdisable.hex
DualOptiboot_V5.0_atmega1284p_BlinkD15.hex
DualOptiboot_V5.0_atmega1284p_BlinkD15_SPIdisable.hex
DualOtiboot_atmega328_1k_d9LED_debugOFF.hex
DualOtiboot_atmega328_1k_d9LED_debugON.hex

Какой нужен для меня? проц atmega 328 5v 16 Mhz

Вспомнил что один раз из кучи попыток заливал толи bootloader толи скет откомпилированный вместе с bootloader_ом DualOptiboot_V5.0_atmega328_BlinkD9.hex. Как результат нерабочая ардуинка с мигающим светодиодом на ножке D9 . Вполне оправдано названием.
cabat писал(а):2. В настройках фьюзов важно правильно указать тактовую частоту и размер бутлоадера, у меня для частоты 8MHz вроде такие:

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

low_fuses=0xE2
high_fuses=0xDA
extended_fuses=0x06
фьюзы брал с сайта mysensors.org/ru
А вот про размер бутлоадера нигде не видел в опсании упоминания, куда его вставлять?
cabat писал(а):3. После прошивки бутлоадера необходимо убедится в возможности прошивки стандартным способом (для MYSBootloader доступно 2 режима прошивки - по проводам и по воздуху).
Через USBasp шьется , по UART вроде как нет. Один раз всего пробовал может на глючном варианте.
Какой вариант должен работать в понимании стандартно.
cabat писал(а):Тут может быть проблема с указанием правильной скорости соединения, т.к. разные сборки будтлоадера в разное время имели разные скорости порта UART.
Как узнать и где выставляется? Вроде скорость порта выставляется в терминале а чтобы шить по UART не помню чтобы выставлялась скорость.

Кстати вспомнил. Натолкнули на мысль. Видимо bootloader меняется. Потому что после какой то попытки в терминале пришлось сменить скорость порта для того что бы понять что происходит со стороны ноды.
cabat писал(а):Ну и естественно, необходимо выбирать соответствующую частоту MCU в среде Arduino.
4. Если прошивка по проводам работает, можно проверять прошивку по воздуху.
Я так понял речь опять про UART видимо, потому что через USBasp шьется всегда отлично.
В том то и сомнения, на обоих сайтах mysensors пишется что мол для заливки бутлоадера надо выбрать sensebender Micro 8Mhz
Оговорка про 16 Mhz только во фьюзах. sensebender Micro я так понял чтобы залилась прошивка правильная и видимо MYSBootloader а не DualOptiboot.
Как залить DualOptiboot то. Думаю проще его залить с помошью avrdudess.

но как?
просто hex выбрать и залить его во FLASH и какой HEX из списка подходит для моего случая?
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Модуль MySensor

Сообщение lanket » Пн ноя 27, 2017 11:25 pm

Поэкспрементировал немного и словил такую надпись в логе:

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

24602 OTA:FWP:UPDATE
24603 !OTA:FWP:FLASH INIT FAIL
Парсер лога https://www.mysensors.org/build/parser
не рапознал что это.

Но судя по надписям eeprom не инициализируется и видимо я близок к победе?
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Модуль MySensor

Сообщение lanket » Вт ноя 28, 2017 12:16 am

Собственно на этом все и застопорилось.
Видимо не инициализируется eeprom

подсмотрел у Ивана MSMDPower, так как подключал все по их схеме, заметил некоторые настройки и сделал по аналогии:

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

#define MY_OTA_FIRMWARE_FEATURE
#define MY_OTA_FLASH_SS 7
#define M25P40 // Flash type
#define MY_SIGNING_ATSHA204
#define MY_SIGNING_ATSHA204_PIN 16 // A2

#ifdef M25P40
  #define MY_OTA_FLASH_JDECID 0x2020
#endif

#include <SPI.h>
#include <MySensors.h>
#ifdef M25P40
  #define SPIFLASH_BLOCKERASE_32K   0xD8
#endif
 
Все равно не работает

Я так понял это не критично: #define SPIFLASH_BLOCKERASE_32K 0xD8

А это вообще темный лес: #define MY_OTA_FLASH_JDECID 0x2020

Но на всякий случай добавил.

все равно вываливается ошибка
24602 OTA:FWP:UPDATE
24603 !OTA:FWP:FLASH INIT FAIL


Наверное уже завтра попробую перепаять новый eeprom. Может перегрел когда паял. Не знаю уже что думать.

Кстати почемуто попытки обновиться 1 раз из трех пытается. 2 раза грузиться нода и плевать хотела на новую прошивку. 1 раз из 3-5 раз загрузок вываливается эта ошибка. Когда нет ошибки обновления не происходит. Я так понял OTA:FWP:UPDATE это сообщение об начала процедуры обновления, ну и следующее об ошибке инициализации eeprom.

Это вообще нормально не с первого раза пытаться обновляться?
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
kalina
Сообщения: 180
Зарегистрирован: Пн фев 22, 2016 11:01 pm
Благодарил (а): 29 раз
Поблагодарили: 90 раз

Re: Модуль MySensor

Сообщение kalina » Вт ноя 28, 2017 12:23 am

lanket писал(а):Собственно на этом все и застопорилось.
Я так понял это не критично: #define SPIFLASH_BLOCKERASE_32K 0xD8
А это вообще темный лес: #define MY_OTA_FLASH_JDECID 0x2020
Эти строчки только для флешки M25P40. Какую флеху вы юзаете?
Сам долго возился с FOTA, пришлось даже бутлоадер пересобирать.
Сейчас всё работает как часы. Помогу чем смогу :)
Raspberry PI3 + образ 3.31 | MDMSGate | Lighting | LightingX2 | Power | Multisensor
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Модуль MySensor

Сообщение lanket » Вт ноя 28, 2017 1:47 pm

kalina писал(а):
Эти строчки только для флешки M25P40. Какую флеху вы юзаете?
Сам долго возился с FOTA, пришлось даже бутлоадер пересобирать.
Сейчас всё работает как часы. Помогу чем смогу :)
Именно её. Велосипед изобретать не стал, сделал по Вашей схеме MSMDSensor Power

Плата сделана 1:1 по Вашей с Иваном схеме, за исключением 'внешней' обвязки. Внешней я имею ввиду что используются mosfet транзисторы для светодиодных лент. Ну и пара датчиков с релюхами. А основная схема проц+eeprom+nrf+atsha резисторы кондеры и даже 'катушки' zr все 1:1 кроме аккумулятора и зарядки для него
СпойлерПоказать
Изображение
Отправлено с моего Redmi Note 4 через Tapatalk
Последний раз редактировалось lanket Вт ноя 28, 2017 11:26 pm, всего редактировалось 1 раз.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
kalina
Сообщения: 180
Зарегистрирован: Пн фев 22, 2016 11:01 pm
Благодарил (а): 29 раз
Поблагодарили: 90 раз

Re: Модуль MySensor

Сообщение kalina » Вт ноя 28, 2017 9:38 pm

1. Здесь лежит проверенный бутлоадер.
2. Фьюзы - Lf - 0xFF, Hf - 0xD8, EXTf-0x06.
3. Проверьте работоспособность самой памяти (запишите и считайте несколько страниц).
4. Обратите внимание на то, что дефайн SPIFLASH_BLOCKERASE_32K должен быть объявлен до MySensors.h (проверено в версии библиотеки mysensors 2.1)

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

#include <SPI.h>
#define MY_OTA_FIRMWARE_FEATURE
#define MY_OTA_FLASH_SS 7
#define M25P40 // Flash type
#define MY_SIGNING_ATSHA204
#define MY_SIGNING_ATSHA204_PIN 16 // A2

#ifdef M25P40
  #define MY_OTA_FLASH_JDECID 0x2020
#endif

#ifdef M25P40
  #define SPIFLASH_BLOCKERASE_32K   0xD8
#endif

#include <SPI.h>
#include <MySensors.h>

Если не поможет, будем рыть дальше...
За это сообщение автора kalina поблагодарил:
lanket (Вт ноя 28, 2017 11:07 pm)
Рейтинг: 1.16%
Raspberry PI3 + образ 3.31 | MDMSGate | Lighting | LightingX2 | Power | Multisensor
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Модуль MySensor

Сообщение lanket » Вт ноя 28, 2017 11:48 pm

kalina писал(а): Если не поможет, будем рыть дальше...
Спасибо что не бросили в беде.

На месте не стоял и на свежую голову в момент когда Вы писали ответ дальше экспрементировал с уже какимито результатами. И почти получилось.

В результате бутлоадер заработал вот этот: DualOptiboot_V5.0_atmega328_BlinkD9.hex
Судя по названию должен мигать светодиод на 9 ноге, но там же NRF хоть и работает.

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

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

2017-11-28 21:56:06 559 <@ 4:Stream; Node:19; Sensor:0; Ack:0; Sub:1:ST_FIRMWARE_CONFIG_RESPONSE; Msg:00130100a7059847
2017-11-28 21:56:05 829 >> 4:Stream; Node:19; Sensor:255; Ack:0; Sub:0:ST_FIRMWARE_CONFIG_REQUEST; Msg:FFFFFFFFFFFFFFFF0300
А в списке нод появился процент заливки прошивки. Все это завелось на другой ноде, это мои первые попытки перейти на V2.1.1 и OTA с шифрованием. Но рано обрадовался. Процент загрузки зависал, пакеты с прошивкой останавливались. До конца так и не получилось передать прошивку, причем проценты останавливались не переходя порог 1%. Да и удаленная перезагрузка редко срабатывала. А при железном ресете 1 раз из 3-4 только начинала грузить прошивку т.е. замечала что есть обнова.

Выяснилось что теряются пакеты. А первая нода видимо с дохлой eeprom, может перегрел когда паял.

Видимо либо связь плохая, но эксперементы проходят на расстоянии 2-3 метров от малины с MD которая и является также шлюзом с прямым подключением NRF которая с антенкой на борту поидее она помощнее.

Либо канал забит, слышал что его можно както поменят как его поменять, хотя все это происходит далеко от города.

Либо NRF на ноде плохой, но на второй ноде аналогично, что тогда партия бракованная. Вторая нода с другим 'обвесом' датчиков, да и если одна входное напряжение 12 из которого снячала понижается 'кренкой' до 5 а потом до 3,3 на разные нужды. То на второй одельные входа на 5В и на 3.3В . И конечно же куча кондеров электролитов и керамики по образу и подобии Вашей схемы.

Либо руки кривые. Тогда в каком месте не пойму.

На всякий случай питание берется от БП списанного компьютера, он у меня на столе для питания всяких тестовых двайсов как в данном случае, кондеры керамические и электролитные по Вашей схеме стоят и фильтр BLM18P тоже на радио и на Atmega стоят как на Вашей схеме. Благо эти BLM дешевые и очень маленькие.

Как отловить причину потеренных пакетов?

А не может ли BlinkD9 из бутлоадера мешать работе NRF которая пользуется этой ногой?

Попробую с Вашим бутлоадером что получиться.
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Модуль MySensor

Сообщение lanket » Ср ноя 29, 2017 12:23 am

kalina писал(а): 4. Обратите внимание на то, что дефайн SPIFLASH_BLOCKERASE_32K должен быть объявлен до MySensors.h (проверено в версии библиотеки mysensors 2.1)
у меня было наоборот.

Раз такая пьянка, имеет ли значение метсто где упоминается : #include <SPI.h>

В примере который указали он в двух местах. я его в начало вынес.
На всякий случай вдруг где еще последовательность нарушена:
СпойлерПоказать

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

// Enable debug prints to serial monitor
#define MY_DEBUG

// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69 

#include <SPI.h>

#define MY_NODE_ID AUTO
#define MY_PARENT_NODE_ID AUTO
#define MY_OTA_FIRMWARE_FEATURE
#define MY_OTA_FLASH_SS 7
#define M25P40 // Flash type
#define MY_SIGNING_ATSHA204
#define MY_SIGNING_ATSHA204_PIN 16 // A2

#ifdef M25P40
  #define MY_OTA_FLASH_JDECID 0x2020
#endif

#ifdef M25P40
  #define SPIFLASH_BLOCKERASE_32K   0xD8
#endif

#include <MySensors.h>
#include <avr/wdt.h>
#include <DHT.h>
#include <EEPROM.h>

#define BATTERY_AS_SENSOR

#define SKETCH_NAME "Binary Sensor+DHT"
#define SKETCH_MAJOR_VER "1"
#define SKETCH_MINOR_VER "1.2"

#define CHILD_ID_TRAP 1
#define CHILD_ID_HUM 2
#define CHILD_ID_TEMP 3
#define CHILD_ID_DEV 254

#define cMaxSmallTry 3   
Увы но таже проблема.
пакеты теряются, прошивка останавливается.
СпойлерПоказать

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

Ну и дальше только данные с датчиков а прошивка дальше не идет.
2017-11-29 00:11:35 118 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A305756d6564790054656d70657261747572
2017-11-29 00:11:35 017 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A305
2017-11-29 00:11:34 618 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A305756d6564790054656d70657261747572
2017-11-29 00:11:34 517 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A305
2017-11-29 00:11:34 120 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A305756d6564790054656d70657261747572
2017-11-29 00:11:34 019 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A305
2017-11-29 00:11:33 626 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A305756d6564790054656d70657261747572
2017-11-29 00:11:33 523 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A305
2017-11-29 00:11:33 120 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A305756d6564790054656d70657261747572
2017-11-29 00:11:33 019 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A305
2017-11-29 00:11:32 671 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A305756d6564790054656d70657261747572
2017-11-29 00:11:32 570 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A305
2017-11-29 00:11:32 464 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A40565006e616e00696e66006f7666000d0a
2017-11-29 00:11:32 362 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A405
2017-11-29 00:11:31 970 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A40565006e616e00696e66006f7666000d0a
2017-11-29 00:11:31 868 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A405
2017-11-29 00:11:31 497 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A40565006e616e00696e66006f7666000d0a
2017-11-29 00:11:31 396 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A405
2017-11-29 00:11:31 326 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A50500322e312e31004e41434b002100ffff
2017-11-29 00:11:31 225 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A505
2017-11-29 00:11:30 829 <@ 4:Stream; Node:18; Sensor:0; Ack:0; Sub:3; Msg:00120100A50500322e312e31004e41434b002100ffff
2017-11-29 00:11:30 727 >> 4:Stream; Node:18; Sensor:255; Ack:0; Sub:2:ST_FIRMWARE_REQUEST; Msg:00120100A505
2017-11-29 00:11:30 648 >> 1:Set; Node:18; Sensor:1; Ack:0; Sub:16:V_TRIPPED; Msg:1
2017-11-29 00:11:30 595 >> 0:Presentation; Node:18; Sensor:3; Ack:0; Sub:6:S_TEMP; Msg:Temperature
2017-11-29 00:11:30 541 >> 0:Presentation; Node:18; Sensor:2; Ack:0; Sub:7:S_HUM; Msg:Humedy
2017-11-29 00:11:30 488 >> 0:Presentation; Node:18; Sensor:1; Ack:0; Sub:0:S_DOOR; Msg:Open sensor
2017-11-29 00:11:30 434 >> 3:Internal; Node:18; Sensor:255; Ack:0; Sub:12:I_SKETCH_VERSION; Msg:1.1.2.1
2017-11-29 00:11:30 380 >> 3:Internal; Node:18; Sensor:255; Ack:0; Sub:11:I_SKETCH_NAME; Msg:Binary Sensor+DHT
СпойлерПоказать
2017-11-29_00-12-04.png
2017-11-29_00-12-04.png (2.45 КБ) 5208 просмотров
Почему думаю теряются, та нода где дохлая eeprom она должна управлять RGB лентой, 50% управляющих пакетов о смене цвета не реагирует нода, хотя MD их отправляет. И MYSController видит пакеты.

Существует какой нибудь сниффер сети MySensors?
Кстати а как узнать отрабатывает ли потребленное питание ATSHA а то в скетче упоминул, на плате присутствует, а как узнать шифруется ли трафик? может она дохлая? или неправильно распаена или настроена ...
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
kalina
Сообщения: 180
Зарегистрирован: Пн фев 22, 2016 11:01 pm
Благодарил (а): 29 раз
Поблагодарили: 90 раз

Re: Модуль MySensor

Сообщение kalina » Ср ноя 29, 2017 12:45 am

lanket писал(а): Раз такая пьянка, имеет ли значение метсто где упоминается : #include <SPI.h>
Нет.
Отключите в скетче подпись (ATSHA204). Советую работать с MYSController пока не запустите прошивку по воздуху.
Раз схемотехника один в один, то завтра сброшу свой рабочий скетч. Попробуете на нём.
Наблюдаются проблемы со связью в рабочем режиме?
Raspberry PI3 + образ 3.31 | MDMSGate | Lighting | LightingX2 | Power | Multisensor
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Модуль MySensor

Сообщение lanket » Ср ноя 29, 2017 6:44 am

kalina писал(а):
lanket писал(а): Раз такая пьянка, имеет ли значение метсто где упоминается : #include <SPI.h>
Нет.
Отключите в скетче подпись (ATSHA204). Советую работать с MYSController пока не запустите прошивку по воздуху.
Раз схемотехника один в один, то завтра сброшу свой рабочий скетч. Попробуете на нём.
Наблюдаются проблемы со связью в рабочем режиме?
Да. Потери пакетов есть.

Отправлено с моего Redmi Note 4 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Ответить