Подключение esp8266 к счетчику электричества


Данные (импульсы) снимаются со счетчика электроэнергии посредством подключения либо телеметрическому (импульсному) выходу или на светодиод счетчика навешивается фототранзистор.
Данные отправляются на облачный сервер и записываются во FRAM память, для защиты от пропадания питания.
Память можно использовать с интерфейсом I2C или SPI.
Если SPI, то используется режим overlap — память припаивается поверх флеша с прошивкой на модуле esp.
Про SPI overlap режим расскажу ниже подробней.
Отображение информации, графики — через веб.



Количество считанных импульсов сохраняется в энергонезависимою FRAM память.
В ней также сохраняется кольцевой лог потребленной энергии за каждую минуту. Минуты с нулевыми значениями импульсов «архивируются», чтобы больше данных влезло.

Память может быть как I2C так и SPI. Если I2C, то программный флеш работает на частоте 80 Mhz, а если SPI, то на 40 Mhz. Это связано с режимом SPI overlap.
Особого замедления отображения веб страниц я не заметил.

У esp8266 есть две шины SPI — которые называются SPI и HSPI.
SPI используется процессором для доступа к флешу с прошивкой, HSPI может использоваться для других устройств.
Встроенный SPI буфер у esp8266 — 64 байта.
В режиме SPI overlap возможен доступ по одним и тем же линиям (MOSI,MISO,CLK) к трем устройствам, которые выбираются через CS0, CS1, CS2.
CS0 — это программная флеш.

пины

Команда включения режима SPI overlap:
SET_PERI_REG_MASK(HOST_INF_SEL, PERI_IO_CSPI_OVERLAP); // HOST_INF_SEL = 0x3ff00028


Арбитр HSPI шины можно настроить волшебными командами так, чтобы он сам решал какое устройство в данный момент использовать и назначить программному флешу наивысший приоритет, чтобы работало кеширование кода (ICACHE).
SET_PERI_REG_MASK(SPI_EXT3(SPI),0x1);
SET_PERI_REG_MASK(SPI_EXT3(HSPI),0x3);


Вот эти команды включают для HSPI только линию CS2:
CLEAR_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS2_DIS);
SET_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS0_DIS | SPI_CS1_DIS);


В режиме overlap есть ограничения по частоте SPI — если программная флеш работает на частоте SPI равной 80 Mhz, то и другие SPI устройства должны работать на той же частоте.
Либо нужно программную SPI установить в 40 Mhz, тогда можно будет использовать свои устройства на 40 Mhz и ниже.

Веб:
Главный экран

график

Схема:
Схема

Исходник здесь: github.com/vad7/PowerMeter
  • +7
  • 25 мая 2016, 17:37
  • vad7

Комментарии (4)

RSS свернуть / развернуть
Мелкая придирка: ты kWt и kWt*h не попутал?
0
  • avatar
  • Vga
  • 26 мая 2016, 12:23
Все хочу приколхозить такие штуки на счетчики воды и на электросчетчик, но с подсоединением по протоколу (валяется где то у меня конвертер написанный для СЭБ-2А), что нужно поставить для программирования esp-ишек?
0
С помощью какого софта работаешь с данным модулем?
0
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.