Общие сведения:
Управляющая плата Metro ESP - собрана на базе модуля ESP-12E от компании «Ai-thinker» построенного на микроконтроллере ESP8266. Плата выполнена в формфакторе плат линейки «Metro» и снабжена только теми выводами, которые ей необходимы для управления модулями линейки «Metro». На плате имеется разъём Micro USB для подключения к компьютеру и гнездовая колодка из 5 выводов для подключения модулей «Metro».
Для загрузки скетчей в плату управления Metro ESP из программы «Arduino IDE», необходимо выбрать пункт: «Инструменты» > Плата: «NodeMCU 1.0 (ESP-12E Module)».
Видео:
Спецификация:
- Микроконтроллер: ESP8266 (в модуле ESP-12E);
- Ширина шины данных: 32-бит;
- Тактовая частота 80 МГц;
- Объём памяти программ (FLASH): 4 Мб (из которых 1 или 3 Мб можно выделить под файловую систему SPIFFS). Файловая система SPIFFS может использоваться для хранения любых файлов, например, для хранения файлов web-страниц, их картинок, видео, архивов и т.д.
- Объем RAM (ОЗУ): 80 Кб (часть используется предустановленными библиотеками чипа);
- Объем EEPROM: Данная память отсутствует. Но Вы можете воспользоваться библиотекой EEPROM которая имитирует наличие EEPROM используя для хранения (записи и чтения) данных один сектор памяти программ (FLASH);
- Выводы на колодке для подключения модулей «Metro»:
- SCL (GPIO_5) - линия тактирования шины I2C;
- SDA (GPIO_4) - линия данных шины I2C;
- 5V - питание модулей;
- GND - общий;
- ADR - вывод установки адреса (GPIO_16);
- Рабочее напряжение: 5 В (постоянного тока);
- Разъем питания и подключения к компьютеру: Micro USB;
- Логика выводов: 3,3 В (толерантны к 5 В);
- Максимальный ток на выводах: 12 мА;
- Радиоинтерфейс Wi-Fi: 802.11 b/g/n с WEP, WPA, WPA2;
- Режимы работы Wi-Fi: Клиент, точка доступа, клиент+точка доступа;
- Выходная мощность Wi-Fi в режиме 802.11b: +19.5 дБм;
Подключение:
Все модули линейки «Metro» подключаются друг к другу соединяя выход предыдущего модуля со входом следующего, образуя состав из модулей «Metro» в котором первым «вагоном» является плата управления Metro ESP или Metro Leonardo. Плата управления подключается к компьютеру или источнику питания через порт Micro USB.
Если скетч загруженный в плату управления Metro ESP написан с использованием библиотеки iarduino_Metro, то библиотека (после считывания всех модулей на шине I2C) сама создаст массив объектов Metro
, каждый элемент которого предназначен для управления одним модулем:
Metro[0]
- объект для управления модулем №0 (ближайшим к управляющей плате);Metro[1]
- объект для управления модулем №1 (следующим после ближайшего к плате);Metro[2]
- объект для управления модулем №2 (и т.д. по последнего модуля «Metro»).
Модули «Metro» не поддерживают «горячее» подключение! Перед подключением модулей «Metro» к плате управления, извлеките кабель из разъема Micro USB, так Вы обесточите все модули при их подключении. В противном случае потребуется отключить питание при уже подключённых модулях.
Питание:
Плата управления Metro ESP получает питание 5 В постоянного тока через разъем Micro USB. Источником 5 В питания может быть: блок питания, зарядное устройство, источник автономного питания, USB порт компьютера и т.д.
Подробнее о модуле:
Плата управления Metro ESP построена на базе модуля ESP-12E от компании «Ai-thinker» построенного на микроконтроллере ESP8266. На плате имеется колодка для подключения любых модулей линейки «Metro», состоящая из 5 выводов: SDA (GPIO_4), SCL (GPIO_5), ADR (GPIO_16), 5V и GND. К выводам шины I2C (SDA и SCL) можно подключать не только модули линейки «Metro» но и любые другие модули работающие по шине I2C (за исключением модулей с адресом 0x09 на шине I2C).
Плата управления Metro ESP (в отличии от платы управления Metro Leonardo) имеет встроенный WiFi модуль и значительно больший объем памяти, что позволяет подключать больше модулей «Metro», и управлять ими через интернет. Но для работы с платой управления Metro ESP необходимо добавить плату «NodeMCU 1.0 (ESP-12E Module)» через «менеджер плат» в программе «Arduino IDE».
Специально для работы с модулями «Metro» нами разработана библиотека iarduino_Metro, одна библиотека для всех модулей линейки «Metro». Библиотека сама определяет наличие и тип модулей на шине I2C, присваивает им адреса и создаёт массив объектов для работы с найденными модулями. Стоит отметить что пользователю даже не обязательно знать адреса присвоенные модулям, так как для обращения к любому модулю достаточно знать его номер по порядку от платы управления.
Сторонние модули на шине I2C: Библиотека iarduino_Metro допускает наличие на шине I2C сторонних модулей со своими библиотеками. Их наличие не повлияет на обнаружение модулей «Metro», не приведёт к присвоению неуникального адреса модулю и не нарушит очерёдность следования элементов массива Metro.
Пример:
#include <Wire.h> // Подключаем библиотеку Wire (для Metro Leonardo можно не подключать). #include <iarduino_Metro.h> // Подключаем библиотеку iarduino_Metro. // uint8_t sum; // Объявляем переменную для хранения количества найденных модулей Metro. // void setup(){ // sum=iarduino_Metro_Start(&Wire); // Определяем модули и создаём массив объектов Metro. Serial.begin(9600); // Инициируем связь с монитором последовательного порта на скорости 9600 бит/сек. while(!Serial){;} // Ждём готовность к работе аппаратной шины UART (для вывода данных в монитор последовательного порта). for(uint8_t i=0; i<sum; i++){ // Проходим по всем модулям ... Serial.print("Модуль Metro[" ); // Serial.print(i); // Выводим номер по порядку. Serial.print("]:\tтип - " ); // switch(Metro[i].model){ // Сверяем тип модуля (тип определяется по значению model): case MOD_KEY: Serial.print("кнопка, "); break; // case MOD_RGB: Serial.print("светодиод, "); break; // case MOD_RES: Serial.print("потенциометр, "); break; // case MOD_BUZ: Serial.print("зуммер, "); break; // case MOD_DHT: Serial.print("датчик DHT, "); break; // case MOD_DSL: Serial.print("датчик света, "); break; // case MOD_8X8: Serial.print("матрица 8х8, "); break; // default: Serial.print("не определён, "); break; // } Serial.print("адрес = " ); // Serial.print(Metro[i].address); // Выводим адрес на шине I2C. Serial.print(", версия " ); // Serial.print(Metro[i].version); // Выводим версию прошивки. Serial.print(", занимает " ); // Serial.print(Metro[i].size ); // Выводим занимаемое место в ОЗУ. Serial.print(" байт ОЗУ.\r\n"); // } // } // // void loop(){} //
Данный скетч загруженный в плату управления Metro ESP будет выводить в монитор последовательного порта названия всех обнаруженных модулей линейки «Metro», присвоенные им адреса на шине I2C, версию прошивки и объем ОЗУ отведённый для работы с каждым модулем.
Библиотека iarduino_Metro содержит разные функции для разных типов модулей. С подробным описанием функций можно ознакомиться на страницах Wiki модулей линейки «Metro».
Применение:
Плата Metro ESP используется для управления всеми подключёнными к ней модулями линейки «Metro», а так же иными модулями использующими для подключения шину I2C.
Обсуждение