Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Прошивка esp как прокладка межу atmega и web-интефейсом 2016-05-01

Обработка команд от веб-интерфейса и их передача в матричные часы по uart

Метки:
  1. Andy Korg
    Свежие изменения выложил на githab, как fork от "свалки" pvvx.
    UPD - Добавил вывод прогноза погоды с сайта OpenWeatherMap current weather and forecast
    Файлы weather.c и .h содержат интерфейс к API вышеупомянутого сайта. Возможно это будет интересно тем кому нужен простой клиент http и получение IP адреса с помощью DNS
    Прошивка МК atmega32 работающая как основная.
    -------------
    Час построены на atmega32, а чип esp идет пристяжным. Отсюда и реализация - esp в основном транслирует команды в atmega32
    Алгоритм взаимодействия часов и esp8266
    При включении часы сбрасывают модуль подавая на reset модуля импульс сброса. Инициализируется порт UART и ожидается время ESP_WHITE_START. Если в течении этого времени модуль не пришлет запрос на инициализацию счетчиков то будет считаться потеря модуля и повторение попытки инициализации. После 16 неудачных попыток модуль считается окончательно потерянным.

    Если микросхема RTC в часах зафиксирует пропадание питания (и резервного то же) то запускается процесс получения времени из интернета.

    После успешной инициализации каждое изменение переменных передается из модуля в часы и из часов в модуль. Т.к. время меняется каждую секунду, то передача времени играет роль контрольного пакета для модуля esp.

    Получение каждой законченной команды подтверждается командой CLK_CMD_EMTYв режиме Write

    Формат пакета:
    Сначала идет 4 байта 0xAA, 0x55, 0xAA, 0x55 затем команда или ответ
    Формат команды и ответа: 1 байт длины данных, сами данные, 1 байт кода команды
    Формат байта команды:
    0b00XXXXXX– команда чтения, в ответ на эту команду обязательно должен быть ответ.
    0b10XXXXXX– команда записи, данные в переданной команде записываются в получателя команды
    0b11XXXXXX– команда тестирования, данные в переданной команде не записываются, но используются для настройки и запуска периферии. В ответ на эту команду передается команда записи с текущими параметрами которые установлены для этой периферии. Это сделано для восстановления переменных в esp разрушенных при передаче тестовой команды.
    Пример:
    0b1100 0110 – проверить состояние датчика. В ответ будет послана команда 0b1000 0110 – запись текущих параметров датчика.
    Прошивка базируется на старой версии "свалки" pvvx.
    Поскольку прошивка atmega не совсем вписывается в тему esp, не знаю имеет смысл ее тут выкладывать, оставляю на усмотрение модератора.
    Иван Иваныч и Артемий нравится это.