Мар 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
Это то, что реализовано на данный момент. Со временем будут изменения и актуальная версия всегда будет находится тут.