====== WiFi Slot: распиновка, схема подключения и программирование ====== [[amp>product/wifi-slot?utm_source=man&utm_campaign=wifi-slot&utm_medium=wiki|WiFi Slot]] — платформа для быстрой разработки компактных устройств с Wi-Fi на борту. Мозгом платы выступает модуль ESP-12 с чипом ESP8266EX от Espressif. {{ :wifi-slot:wifi-slot.4.jpg?nolink |}} ===== Обзор платы ===== {{youtube>D6vL-kZwS_c?large}} ===== Общие сведения ===== WiFi Slot содержит на борту всё необходимое для быстрой и комфортной работы: USB-разъём для программирования и отладки, десять цифровых входов/выходов с поддержкой ШИМ-сигнала (восемь из которых восемь могут использоваться как аналоговый вход) и две служебные кнопки. Больше нет нужды нажимать специальные кнопки при каждой прошивке. Специальная схема вводит плату в режим программирования при прошивке через USB-разъём. Родным напряжением чипа является 3,3 В. Мы установили на плату мощный DC-DC преобразователь, который позволяет запитать плату от 5 В при помощи USB, Power Bank или Li-Ion-аккумулятора. Понижающий преобразователь обеспечит нагрузку током до 1 А. Забудьте о глюках при нехватке питания от маломощных регуляторов напряжения — тока хватит всем. WiFi Slot позволяет подключить до четырёх [[amp>collection/troyka?utm_source=man&utm_campaign=wifi-slot&utm_medium=wiki |Troyka-модулей]]. Используемые пины для связи сенсоров и модулей с WiFi Slot зависят от конкретного устройства, точнее: от типа его коммуникации, сигнала и протокола. Обратитесь к странице с [[:troyka-modules|обзором сенсоров]], чтобы определить как организована коммуникация с каждым устройством. После чего можно приступать к работе с модулем. Платформа программируется двумя способами: * [[:products:wifi-slot#программирование_на_c|На языке C++ при помощи Arduino IDE.]] * [[:products:wifi-slot#программирование_на_javascript|На языке Javascript через Espruino IDE.]] ===== Программирование на C++ ===== {{ :wifi-slot:wifi-slot_c.png?nolink |}} - Для начала работы с платформой WiFi Slot на языке C++ [[articles:arduino-ide-install|скачайте и установите]] на компьютер интегрированную среду разработки Arduino IDE. - По умолчанию среда программирования настроена только на AVR-платы. Для платформы WiFi Slot добавьте в менеджере плат [[:articles:arduino-boards-manager#платформы_на_модуле_esp8266|поддержку платформ на модуле ESP8266]]. - В пункте меню //Инструменты// //Плата// //Amperka WiFi Slot//.{{ :wifi-slot:wifi-slot_arduino_ide1.png?nolink |}} После выполненных действий платформа WiFi Slot готова к программированию через Arduino IDE. Подробности о функциях и методах работы WiFi Slot (ESP8266) на языке C++ читайте на [[https://arduino-esp8266.readthedocs.io|ESP8266 Arduino Core’s]]. ==== Пример работы ==== В качестве примера повторим первый эксперимент [[:конспект-arduino:светильник-с-управляемой-яркостью|«Маячок»]] из набора [[amp>product/matryoshka-z?utm_source=man&utm_campaign=wifi-slot&utm_medium=wiki|Матрёшка]]. Для этого установите [[amp>product/troyka-5mm-led-module?utm_source=man&utm_campaign=troyka-slider&utm_medium=wiki|светодиод 5 мм (Troyka-модуль)]] в пин ''A2''. После чего прошейте платформу кодом ниже. // пин подключения светодиода #define LED_PIN A2 void setup() { // настраиваем пин светодиода в режим выхода pinMode(LED_PIN, OUTPUT); } void loop() { // подаём на пин светодиода «высокий уровень» digitalWrite(LED_PIN, HIGH); // ждём одну секунду delay(1000); // подаём на пин светодиода «низкий уровень» digitalWrite(LED_PIN, LOW); // ждём одну секунду delay(1000); } После загрузки светодиод начнёт мигать раз в полсекунды. {{ :wifi-slot:wifi-slot_blink_red.gif?nolink |}} Это значит всё получилось и можно смело переходить к [[мини-проекты-arduino-breadboard:оглавление|экспериментам]] на WiFi Slot. ===== Программирование на JavaScript ===== {{ :wifi-slot:wifi-slot_js.png?nolink |}} - Для старта с платформой WiFi Slot на языке JavaScript [[:js:ide|скачайте и установите]] интегрированную среду разработки — Espruino Web IDE. - [[:js:espruino:esp8266|Установите прошивку интерпретатор JavaScript на ESP8266]]. Подробнее о функциях и методах работы ESP8266 на языке JavaScript читайте на [[http://www.espruino.com/EspruinoESP8266|Espruino]]. При программировании платформы через Espruino IDE используйте имена пинов модуля ESP-12. Например пину ''A2'' равносильно название ''D16''. Для информации изучите [[:wifi-slot#распиновка]] платформы. ==== Пример работы ==== В качестве примера повторим второй эксперимент [[:yodo#маячок|«Маячок»]] из набора [[amp>product/yodo?utm_source=man&utm_campaign=wifi-slot&utm_medium=wiki|Йодо]]. Для этого установите [[amp>product/troyka-5mm-led-module?utm_source=man&utm_campaign=wifi-slot&utm_medium=wiki|светодиод 5 мм (Troyka-модуль)]] в пин ''D16''. После чего прошейте платформу скриптом ниже. // создаём объект для работы со светодиодом на пине D16 var led = require('@amperka/led').connect(D16); // мигаем светодиодом каждые полсекунды led.blink(0.5, 0.5); После загрузки светодиод начнёт мигать раз в полсекунды. {{ :wifi-slot:wifi-slot_blink_green.gif?nolink |}} ===== Элементы платы ===== {{ :wifi-slot:wifi-slot_annotation.png?nolink |}} ==== Мозг платформы ==== WiFi Slot основан на модуле {{:wifi-slot:esp-12f_datasheet.pdf|ESP-12}} с чипом {{:wifi-slot:esp8266_datasheet.pdf|ESP8266EX}} от Espressif. {{ :wifi-slot:wifi-slot_composed.png?nolink |}} === Чип ESP8266EX === Чип {{:wifi-slot:esp8266_datasheet.pdf|ESP8266}} — выполнен по технологии SoC (англ. System-on-a-Chip — система на кристалле). В основе кристалла входит процессор семейства Xtensa — 32-х битный Tensilica L106 с частой 80 МГц с ультранизким энергопотреблением, радиочастотный трансивер с физическим уровнем WiFi IEEE 802.11 b/g/ и блоки памяти SRAM. Мощности процессорного ядра хватает для работы сложных пользовательских приложений и цифровой сигнальной обработки. Программное приложение пользователя должно храниться на внешней микросхеме Flash-памяти и загружаться в ''ESP8266EX'' через один из доступных интерфейсов (SPI, UART, SDIO и др.) каждый раз в момент включения питания системы. Чип ESP8266 не содержит в себе Flash-память и многих других компонентов для пользовательского старта. Микросхема является основой на базе которой выпускаются модули с необходимой периферией, например ESP-12. === Модуль ESP-12 === ESP-12 — модуль с чипом ''ESP8266EX'', Flash-памятью на 2 МБ и всей необходимой обвязкой, которые спрятаны под металлическим кожухом. Рядом с кожухом расположен индикаторный светодиод и миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Металлический кожух экранирует компоненты модуля и тем самым улучшает электромагнитные свойства. {{ :wifi-slot:esp12_without_cap_annotation.png?nolink |}} ==== Разъём micro-USB ==== Разъём micro-USB предназначен для прошивки платформы WiFi Slot с помощью компьютера. ==== Преобразователь USB-UART ==== Преобразователь USB-UART на микросхеме {{:wifi-slot:cp2102_datasheet.pdf|CP2102}} обеспечивает связь модуля ESP-12E с USB-портом компьютера. При подключении к ПК — WiFi Slot определяется как виртуальный COM-порт. ==== Понижающий DC-DC ==== Понижающий DC-DC {{:wifi-slot:ncp1529_datasheet.pdf|NCP1529}} с выходом 3,3 вольта, обеспечивает питание микроконтроллера. Максимальный выходной ток составляет 1 А. ==== Светодиодная индикация ==== ^ Имя светодиода ^ Назначение ^ | PWR |Индикатор питания | | RX и TX |Мигают при обмене данными между WiFi Slot и компьютером.| ==== Аналоговый мультиплексор ==== Модуль ESP-12 имеет только один 10-битный аналоговый вход, который способен измерять напряжение от нуля до одного вольта. Мы расположили на плате аналоговый мультиплексор {{:wifi-slot:74hc4052d_datasheet.pdf|74HC4052D}} с селектором выбора каналов на микросхеме {{:wifi-slot:sn74hc393_datasheet.pdf|SN74HC393}}. А резисторный делитель поднимает верхний порог измеряемого напряжения до 3,3 В. Всё это даёт платформе WiFi Slot восемь аналоговых портов. ==== Кнопка RESET ==== Кнопка предназначена для ручного сброса прошивки — аналог кнопки ''RESET'' обычного компьютера. ==== Кнопка PROG ==== Кнопка служит для ручного перевода модуля в режим прошивки: - Зажмите кнопку ''PROG''; - Нажмите и отпустите кнопку ''RESET''; - Отпустите кнопку ''PROG'' При использовании с Arduino IDE проводить эту процедуру необязатьельно. Специальная схема на плате сделает всё за вас. ==== Разъём Slot Connector ==== Вы можете подключить к WiFi Slot одну или несколько плат расширения [[amp>product/wifi-slot-expander?utm_source=man&utm_campaign=wifi-slot&utm_medium=wiki|Slot Expander]]. Плата управляется через интерфейс I²C и предоставляет 10 дополнительных пинов ввода/вывода, 9 из которых поддерживают АЦП и ШИМ. Slot Expander физически подключается через специальный разъём с переходником [[amp>product/wifi-slot-connector?utm_source=man&utm_campaign=wifi-slot&utm_medium=wiki|Slot Connector]]. === Распиновка разъёма === {{ :wifi-slot:wifi-slot_connector.png?nolink |}} ^ Имя контакта ^ Назначение ^ | 5V |питание| | GND |земля| | SDA |линия данных I²C| | SCL |линия синхронизации I²C| Подробнее о Slot Expander читайте [[:продукты:wifi-slot-expander|в соответствующей статье]] ===== Распиновка ===== {{ :wifi-slot:wifi-slot_pinout.png?nolink |}} ==== Пины питания ==== * **5V:** На вывод поступает напряжение 5 В от разъёма micro-USB. * **3.3V:** На вывод поступает 3,3 В от понижающего DC-DC преобразователя на плате. Преобразователь обеспечивает питание модуля ''ESP-12''. Максимальный ток — 1 А. * **GND:** Выводы земли. ==== Пины ввода/вывода ==== В отличии от большинства плат Arduino, родным напряжением платформы WiFi Slot является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Большее напряжение может повредить модуль! Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений. * **Цифровые входы/выходы:** 10 пинов; ''A0''–''A7'', ''SDA(2)'' и ''SCL(0)''\\ Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 12 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно. * **ШИМ:** 10 пинов; ''A0''–''A7'', ''SDA(2)'' и ''SCL(0)''\\ Позволяет выводить аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ – 10 бит. * **АЦП:** 8 пинов; ''A0''–''A7''\\ Позволяет представить аналоговое напряжение в виде числа. Разрядность АЦП установлена в 10 бит. Изменить разрядность АЦП нельзя. На аналоговые входы WiFi Slot можно подавать напряжение в диапазоне от 0 до 3,3 В. При подаче большего напряжения модуль может выйти из строя. * **TWI/I²C:** пины ''SDA'' и ''SCL''\\ Для общения с периферией по интерфейсу ''I²C''. Для работы используйте библиотеки для [[https://www.arduino.cc/en/Reference/Wire|Arduino]] и [[js:i2c|Espruino]]. * **SPI:** пины ''A3(MOSI)'', ''A7(MISO)'' и ''A5(SCK)''\\ Для общения с периферией по интерфейсу ''SPI''. Для работы — используйте библиотеки для [[https://www.arduino.cc/en/Reference/SPI|Arduino]] и [[js:spi|Espruino]]. * **UART:** пины ''A0(RX)'' и ''A1(TX)''\\ Используется для коммуникации платы WiFi Slot с компьютером или другими устройствами по интерфейсу ''UART''. Для работы — используйте библиотеки [[https://www.arduino.cc/en/Reference/Serial|Arduino]] или [[js:serial|Espruino]]. Чтобы иметь возможность подключать модули с аналоговым входом к пинам ''A0'' и ''A1'' и при этом не мешать прошивке через ''UART'', разрежьте соответствующие перемычки на задней стороне WiFi Slot. ===== Принципиальная и монтажная схемы ===== {{:wifi-slot:wifi-slot_schematic.png?direct&350 |}} {{ :wifi-slot:wifi-slot_layout.png?direct&300|}} ===== Характеристики ===== * Модуль: ESP-12 (ESP8266) * Тактовая частота: 80 МГц, 160 МГц * Объём Flash-памяти: 2 МБ * Беспроводной интерфейс: Wi-Fi 802.11 b/g/n 2,4 ГГц * Режимы работы: * Клиент (STA) * Точка доступа (AP) * Клиент + Точка доступа (STA + AP) * Портов ввода-вывода всего: 10 * Портов с АЦП: 8 * Разрядность АЦП: 10 бит * Портов с ШИМ (Программный): 10 * Разрядность ШИМ: по умолчанию 10 бит * Аппаратных интерфейсов SPI: 1 * Программных интерфейсов I²C / TWI: 1 * Аппаратных интерфейсов UART / Serial: 2 * Номинальное рабочее напряжение: 3,3 В * Максимальный ток с шины 3.3V: 1 А (включая питание микроконтроллера) * Максимальный ток с пина или на пин: 12 мА * Габариты: 50,8×50,8 мм ===== Ресурсы ===== * [[amp>product/wifi-slot?utm_source=man&utm_campaign=wifi-slot&utm_medium=wiki|Wi-Fi Slot]] в магазине. * [[https://arduino-esp8266.readthedocs.io|Методы и функции на языке C++ через Arduino IDE (Eng)]] * [[http://wikihandbk.com/wiki/ESP8266|Методы и функции на языке C++ через Arduino IDE (Rus)]] * [[http://www.espruino.com/EspruinoESP8266|Методы и функции на языке JavaScript через Espruino IDE (Eng)]] * [[js:start|Методы и функции на языке JavaScript через Espruino IDE (Rus)]] * [[https://github.com/amperka/hardware-drawings/blob/master/wifi-slot.svg|Векторное изображение Wi-Fi Slot]] * {{:wifi-slot:esp-12f_datasheet.pdf|Datasheet на плату-модуль ESP-12}} * {{:wifi-slot:esp8266_datasheet.pdf|Datasheet на чип ESP8266EX}} * {{:wifi-slot:cp2102_datasheet.pdf|Datasheet на USB-UART преобразователь}} * {{:wifi-slot:ncp1529_datasheet.pdf|Datasheet на понижающий DC-DC преобразователь}} * {{:wifi-slot:74hc4052d_datasheet.pdf|Datasheet на аналоговый мультиплексор}} * {{:wifi-slot:sn74hc393_datasheet.pdf|Datasheet на селектор выбора канала АЦП}} * [[:продукты:esp8266:flash-download-tool|Программа для перепрошивки модуля ESP-12]] * {{:wifi-slot:esp8266-2.4.1-amperka.zip|Архив для Arduino IDE}} * {{ :wifi-slot:espruino_v2.01_2mb_combined.zip |Прошивка Espruino v2.01 для WiFi Slot}}