Мар 082015
 

Для обмена данными между роутером и ардуиной выбран текстовый режим: для начинающего это упрощает процесс отладки.

Кроме этого, для простоты реализации:

  • Отсутствует проверок контрольных сумм
  • Отсутствуют “явные рукопожатия”  (по типу UDP)
  • Отсутствует понятие упорядоченности

Сообщение представляет собой предложение состоящее из слов. Признаком окончания сообщения является символ переноса строки “\n”. Запросы начинаются со слова “ques”, ответы начинаются со слова “answ”.

Перечень доступных на данный момент сообщений:

#
Строка               Описание                                 Идентификатор Хранение в      Преобразование
                                                              в arduino     буфере arduino  в реальное значение
* sensor             сенсор
    * tempInt        температура внутри                       0             byte            (x-128)/2
    * tempExt        температура снаружи                      5             byte            (x-128)/2
    * humidityInt    влажность внутри                         1             byte            x/2
    * humidityExt    влажность снаружи                        6             byte            x/2
    * lightInt       освещенность внутри                      2             byte            x
    * lightExt       освещенность снаружи                     7             byte            x
    * poweru         напряжение на аккумуляторе               3             byte            x/10
    * all            все данные собранные в автономной режиме
* unixtime           время в формате unixtime
    * get            прочитать значение
    * set            установить 
        *value       значение
* router
    * off            выключить роутер
* lowpowerpin        низковольтная нагрузка (мосфеты)
    * {0,1}          номер нагрузки
        * value      уровень мощности. 0-255
* powerpin           высоковольтная нагрузка (реле)
    * {0,1,2,3}      номер нагрузки
        * on         включить
        * off        выключить
* version            версия прошивки
* LOG                Используется для отправки отладочной информации с ардуины
    * message        Текст сообщения

Примеры отправки запросов:

#
#Запрос данных о внутренней температуре
ques sensor tempInt
#Запрос всех данных из буфера ардуины
ques sensor all
#Запрос на установку времени в RTC
ques unixtime set 1234567890
#Запрос на включение первого реле
ques powerpin 1 on
#Запрос на включение низковольтной нагрузки с мощностью 150
ques lowpowerpin 1 150

Примеры ответов:

#
answ sensor tempExt 1234567890 22.5
answ unixtime 1234567890
LOG text_of_log

Это то, что реализовано на данный момент. Со временем будут изменения и актуальная версия всегда будет находится тут.

 Опубликовано в 23:17
Яндекс.Метрика