В данном обзоре указаны 10 распространенных приложений в управлении Ардуино с компьютера или телефона, которые легки в изучении и использовании. Arduino – это платформа, разработанная ввиду технологий современного программирования. Плата с USB разъемами для блока питания. При подключении к ПК, заряжается. Во внутренней системе есть кнопка для форматирования данных.
Главные составляющие:
- Бредбоард – соединяет платформу с устройством.
- Светодиод – индикатор, сигнализирует об управлении.
- Резистор — контролирует подачу электрического тока внутри платформы.
- Фоторезистор – реагирует на тип освещения.
- Транзистор – усиливает электрические сигналы и используется в сложных цепях.
Это было внутреннее описание. Далее переходим к обзору самого приложения. Компанией Google был создан новый интерфейс прикладного программирования под названием Arduino. Предназначается для связи Android устройства с USB. Открывает большие возможности в создании проектов и упрощает программирование и управление с экрана мобильного телефона. Помогает управлять синхронизацией данных.
Обзор возможностей Arduino:
- создание скетчей;
- их редактирование, компилирование и загрузка в плате;
- программирование и разработка кодов.
Работа производится со смартфона из любой части земного шара. В данном обзоре будут описаны программы, разработанные для удаленного пользования Ардуино, а именно Bluetooth и Wi-fi — контроллерами. Они просты в использовании и позволяют работать с любого гаджета. Проект Ардуино состоит из 3 этапов:
- написание кода;
- макетирование;
- прошивка.
Для программирования этих функций, требуется написать код, который можно удалять по необходимости, и прошить среду разработки. Это многоступенчатый процесс. В нем участвует несколько программ.
Arduino Bluetooth Controller
Эта программа работает в 3 основных положениях:
Контроллер. Приложение демонстрируется в облике play идентификатора и управляется кнопками переключения. Работает одной клавишей, основная функция которой – дистанционное управление.
Диммер. На расстоянии регулирует настройки яркости и скорости.
Терминал. Осуществление отправления директива для дешифрирования.
Установка приложения Arduino Bluetooth Controller сводит несколько устройств по воздушному каналу. Сообщения передаются по датчикам, контроллерам и обратно. Управляя смартфоном при помощи блютуз модулей, также возможно организовать беспроводное соединение целого проекта. Программирование такого типа доступно всем желающим и не требует особых усилий.
ГОЛОСОВОЕ УПРАВЛЕНИЕ ЧЕРЕЗ СМАРТФОН
Для четвертого пункта я воспользовался еще одним замечательным аппом — Utter! Voice Commands Beta, поскольку он интегрируется с Tasker и может выполнять его задачи по голосовой команде.
Но настройка требует просто ангельского терпения. Процедура простая: несмотря на требование Utter! устанавливаем русский язык голосового поиска Android. Потом открываем интерфейс Utter! (важно — не распознавание команд, а интерфейс программы) — Customisation — Create commands — Run Tasker Task — выбираем задачу и пытаемся два раза подряд одинаково произнести команду. Если получилось — не расслабляемся и говорим еще два слова: для успешного выполнения команды и ошибки.
Если Utter! совсем не понимает, то движок поиска можно оставить английским и найти любое слово/фразу, которое можете произнести два раза подряд одинаково. Это же касается сообщений для подтверждения и ошибки. Потом просто идем в пункт Edit commands и заменяем тексты на нужные. Только помним, что Utter! не умеет говорить по-русски, и поэтому сообщения о подтверждении и ошибке лучше записать по-английски или транслитом.
Да, не пугаемся, когда Utter! при повторении команды на русском не проговаривает ее. Это, опять же, следствие того, что апп не умеет пользоваться русским голосовым движком.
В общем, задача муторная, но решаемая.
ArduinoDroid — Arduino IDE
Используется программистами как средство редактирования кодов и создания программ. Особенность – написанный скетч превращается в СС+, компилируется и грузится в Arduino. Отлично подходит для работы новичков в этой области. Приложением можно пользоваться бесплатно и в открытом доступе.
Первым шагом в использовании будет заливка скетча на микроконтроллер. Далее нажав кнопку «Загрузить» необходимо дождаться окончания загрузки. Мигающий светодиод означает, что все было сделано правильно. Все готово к написанию и использованию прошивок.
ArduinoDroid – легкий в использовании софт. Проводит редактирование, компилирование и загрузку кодов в плату с мобильного устройства или планшета. Так же рекомендуется проводить редактирование шифра или заливать готовый, если программа забанена..
Итоговый результат
Если код вы записали правильно, с правильным паролем и именем от вашего wifi, который исправно работает, то в монитор порта будет отправлена ссылка, которую необходимо вставить в адресную строку браузера. Изображение должно выглядеть так
А теперь вы можете подключить ардуино к источнику питания и убрать провод подключения ардуино — компьютер. И узнавать температуру в вашем доме, находясь на другом конце города. Все зависит только от вашей фантазии.
В следующий раз попробуем разобрать еще один проект, который поможет больше раскрыть все возможности интернет модуля. В дальнейшем попробуем создать свой сервер и сайт, а также поговорим о соединении с соцсетями. Увеличить возможности сделать ваш дом умным.
RemoteXY: Arduino Control
Данная программа управления Ардуино, позволяет создать персональную панель. Дистанционное управление происходит через:
- Инет;
- Вай-Фай;
- Ик-порт;
- Блютуз.
На странице https://remotexy.com можно найти и скачать много интересных инструкций. К примеру, как создавать оригинальные клавиши и переключатели. Функционал адаптирован под новичка и не создаст проблем в использовании.
Управление ардуино с компьютера, а именно RemoteXY, возможно через облако. Это превозносит его перед аналогичными русскими софтами Arduino.
Принципиальная схема
Подключим Ethernet shield к материнской плате Ардуино. А электромагнитное реле уже к плате расширения. Используем питание 5 вольт и землю. А для управление реле возьмем 7 цифровой пин.
Принципиальная схема подключения Ethernet shield и реле
Приложение Blynk
Этакий разработчик идей, имеющий открытый вход к запуску на платформе Ардуино. Главное требование в использовании – наличие интернета: Wi-Fi или мобильный трафик. Только в этом случае Blynk будет готов к выполнению. Начать использование можно спустя несколько минут, после окончания настроек. Программой поддерживается АО по выбору пользователя.
Основные функции приложения Blynk заключаются в управлении устройствами при помощи удаления и добавления протоколов HTTP, а также запросов GET и POST. Значения параметров можно обновлять и получать. Запросы обновляются в самом приложении.
Вариативность – важная точка программы. Имея связь с работающими платформами, можно соединиться с сервером любым удобным способом. Данный инстинктивный портал обладает простотой в использовании над проектом. Библиотека постоянно обновляется для всех приложений Arduino Blynk.
Клиентов, желающих включать кофе машинку со своего смартфона, заинтересует это приложение. Это, пожалуй, единственный сервис с подобными возможностями. И не смотря на, то, что он практически безлимитный, является трудным Openhab. В сравнении с другими сервисами обладает быстрой скоростью при запуске.
ОСОБЕННОСТИ КИТАЙСКОЙ ТОРГОВЛИ
Будьте внимательны, у продавцов на Aliexpress есть очень нехорошая привычка писать в названии продукта что-то вроде 2pcs, что как бы намекает, что это две штуки наименования за указанную цену. Но это немного не так, и сделано для стимуляции импульсивных покупок.
Например, в описании платы Arduino Uno написано, что «UNO R3 MEGA328P ATMEGA16U2 + USB Cable (1UNO R3 + 1 cables) Best prices & Free shiping !!!», указана цена $9.98 и добавлено, что это lot (2 pieces/lot).
На первый взгляд кажется, что это ДВЕ (profit!!!) платы Arduino Uno. Но по факту за 2 pieces/lot скрывается именно то, что написано в названии и, чуть ниже в описании (к чести китайцев — огромными буквами). Именно:
— Arduino Uno — 1 штука — USB-кабель — 1 штука Итого: ДВЕ штуки
Т.е. в данном случае один лот — это плата + кабель. Извиняет продавца разве что то, что цена средняя по рынку.
Что еще мне не понравилось в этом заказе. Из комплекта двух реле пришел лишь один блок. Продавец отвечает вяло, долго, но в конце концов согласился выслать второй блок.
В остальном все терпимо. Доставка заняла примерно месяц, упаковка — довольно жесткая картонная коробка, обмотанная скотчем. Внутри все в антистатических пакетиках, плата Ethernet-шилда наколота на полипропиленовые (?) подушечки, чтобы не гнулись контакты.
Доехало все в лучшем виде. Но с учетом какой-то заторможенности продавца, да и еще реле этих, не думаю, что буду у него еще что-то покупать.
Bluino Loader – Arduino IDE
ПО для компиляции кода в файл и загрузки его на платформу Ардуино через смартфон и USB OTG. Громоздкие кнопки и запутанные провода значительно усложняют работу над проектами. Для упрощенного контроля удаленным администрированием предоставляется графический идентификатор Bluino Loader IDE. Разрабатывает проекты, доступные триггеру. Подключается к всемирной паутине с помощью: Wi-Fi, Ethernet или через накопитель ESP8266. Когда необходимые процедуры будут выполнены и произойдет начало работы, приложение даст сигнал.
Настройка софта для создания проектов займет не более 5 минут. Матобеспечение настраивается по выбору пользователя. Простой и удобной софт. Для проверки заливают скетч в микроконтроллер и убеждаются в том, что все работает как надо. Мигающий диод подаст сигнал о правильности выполняемых действий. Далее приступают к прошивкам.
Программа
Смысл проекта такой же как и с bluetooth. Плата должна получить от нас сигнал и установить реле в нужное состояние. Тогда подключенное к реле оборудование включится или выключится соответственно.
Используем пример из библиотеки Ethernet.
Откроем скетч из Меню File -> Examples -> Ethernet -> WebServer
Здесь используются библиотеки и
Вы можете задать mac адрес и ip адрес для вашей платы. Ip адрес должен подходить для вашей локальной сети. HTTP сервер будет работать на 80 порту как обычно. А реле подключим к 7 пину.
// Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 0, 177); EthernetServer server(80); int RelayPin = 7;
В функции setup() настраиваем все необходимые функции для работы через интернет. И раскомментируем строку Ethernet.init(10);
// You can use Ethernet.init(pin) to configure the CS pin Ethernet.init(10); // Most Arduino shields
Настроим пин для реле на вывод и выключим его.
// start the server server.begin(); Serial.print(«server is at «); Serial.println(Ethernet.localIP()); pinMode(RelayPin, OUTPUT); digitalWrite(RelayPin, 0);
Теперь разберемся с циклом loop(). Каждый раз, когда к серверу подключается новый клиент, мы должны передать ему веб страницу с необходимой информацией. Используем монитор последовательного порта для отладки программы. Информацию от клиента мы будем получать через http заголовки и для этого считаем всю информацию, которую мы можем получить при соединении к серверу.
void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println(«new client»); // an http request ends with a blank line boolean currentLineIsBlank = true; String readString = «»; while (client.connected()) { if (client.available()) { char c = client.read(); readString += c;
Таким образом мы получили строку, в которой будет вся имеющаяся информация. В том числе о хосте, рефферере и данных о браузере. Из-за того, что данные в рефферере и хосте будут дублироваться, а нам нужна только строка хоста, уберем лишнюю информацию.
//Serial.write(c); // if you’ve gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == ‘\n’ && currentLineIsBlank) { readString.replace(«https://192.168.0.177/LightOff?», «refferer»); readString.replace(«https://192.168.0.177/LightOn?», «refferer»); Serial.println(readString);
Теперь мы можемиспользовать информацию о состоянии реле и сформировать нужную веб страницу для пользователя.
// send a standard http response header client.println(«HTTP/1.1 200 OK»); client.println(«Content-Type: text/html»); client.println(«Connection: close»); // the connection will be closed after completion of the response client.println(); client.println(«»); client.println(«»); // output the value of each analog input pin if(readString.indexOf(«LightOn») > 0) { digitalWrite(RelayPin, 1); } else { digitalWrite(RelayPin, 0); } int Relay = digitalRead(RelayPin); String ButtonText = «»; String ButtonLink = «»; if( Relay ){ ButtonText = » LightOff «; ButtonLink = «/LightOff»; } else { ButtonText = » LightOn «; ButtonLink = «/LightOn»; } client.print(» «); client.print(» «); client.println(» «); break;
В итоге получим кнопку со ссылкой на включение реле, если реле выключено. И наоборот, на выключение, если свет включен в настоящий момент.
Arduino Bluetooth Control
Сокращенное название — ABC. Управляет и контролирует основные возможности API. Используется в мониторинге контактов через Bluetooth. Работает в автономном режиме. Приобщение к работе производит строго из Ардуино.
Инструменты, используемые в процессе:
- Metrics – передает показатели о сбоях и изменениях. Те, свою очередь, приходят на телефон в виде сообщения об остановке работы. Это подобие функции, где встряхнув гаджет можно отправить данные.
- Клавиши с указателями – служат для отправки информации.
- Терминал – варьирует информацией с временными показателями по назначению.
- Accelerometer – управление жестами. Смартфон превращается в механизм для регулирования машины.
- Голос – создает речевые команды. Доступно голосовое общение с роботом.
- Кнопки – функционируют 6 штук в горизонтальном положении. Используются для доставки информации на Arduino.
Управление проектами в дистанционном и удаленном виде стало частой необходимостью. ABC подходит для этих целей на 100%. UART (Serial) предназначается для беспроводного соединения Ардуино и PC. Данное подключение не нуждается в библиотеках и схемах.
МАЛЕНЬКИЕ ХИТРОСТИ
Для пунктов 5 и 6 ТЗ я воспользовался блоком реле, а не беспроводными розетками, поскольку модем, камера и Arduino можно расположить друг рядом с другом.
А чтобы не резать провода штатных сетевых адаптеров, подключил питание модема и камеры через разъемы, коммутируемые реле. Всего получилось две пары разъемов, при этом с разъема камеры (5В) я беру питание для блока реле, передатчика и приемника, а с разъема модема (9В) — для Arduino. Это позволяет минимизировать количество сетевых адаптеров, иначе ниша для всякого такого оборудования рискует превратиться в что-то с блекджеком и, да, вы поняли.
В итоге коробочка с Arduino выглядит вот таким образом. Передатчик просто замотал изолентой, чтобы он там чего не закоротил ненароком. Мне это показалось более разумным, чем заливать термоклеем. В финальной версии рядом лежит и приемник, точно так же замотанный изолентой.
BT Voice Control for Arduino
Главное предназначение данного софта – передача ультразвуковых сигналов сквозь преобразователи. Они соединены с платформой Arduino андроид благодаря Bluetooth порту. Главный модуль в работе — HC-05. Он передает интервал между объектами. Данные отображаются в смартфоне и на Hub диске портала, через это приложение.
BT Voice Control – это голосовое управление Ардуино. Владеет функцией распознавания команд: forward, back, left, right. Чувствительные датчики переадресовывают расстояние в объект Arduino. Далее при помощи модуля Bluetooth HC-05 направляет его в приложение. Программа сэкономит время, тратящееся на набор команд вручную.
Полный текст программы
#include #include // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 0, 177); // Initialize the Ethernet server library // with the IP address and port you want to use // (port 80 is default for HTTP): EthernetServer server(80); int RelayPin = 7; void setup() { // You can use Ethernet.init(pin) to configure the CS pin Ethernet.init(10); // Most Arduino shields //Ethernet.init(5); // MKR ETH shield //Ethernet.init(0); // Teensy 2.0 //Ethernet.init(20); // Teensy++ 2.0 //Ethernet.init(15); // ESP8266 with Adafruit Featherwing Ethernet //Ethernet.init(33); // ESP32 with Adafruit Featherwing Ethernet // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println(«Ethernet WebServer Example»); // start the Ethernet connection and the server: Ethernet.begin(mac, ip); // Check for Ethernet hardware present if (Ethernet.hardwareStatus() == EthernetNoHardware) { Serial.println(«Ethernet shield was not found. Sorry, can’t run without hardware. :(«); while (true) { delay(1); // do nothing, no point running without Ethernet hardware } } if (Ethernet.linkStatus() == LinkOFF) { Serial.println(«Ethernet cable is not connected.»); } // start the server server.begin(); Serial.print(«server is at «); Serial.println(Ethernet.localIP()); pinMode(RelayPin, OUTPUT); digitalWrite(RelayPin, 0); } void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println(«new client»); // an http request ends with a blank line boolean currentLineIsBlank = true; String readString = «»; while (client.connected()) { if (client.available()) { char c = client.read(); readString += c; //Serial.write(c); // if you’ve gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == ‘\n’ && currentLineIsBlank) { readString.replace(«https://192.168.0.177/LightOff?», «refferer»); readString.replace(«https://192.168.0.177/LightOn?», «refferer»); Serial.println(readString); // send a standard http response header client.println(«HTTP/1.1 200 OK»); client.println(«Content-Type: text/html»); client.println(«Connection: close»); // the connection will be closed after completion of the response client.println(); client.println(«»); client.println(«»); // output the value of each analog input pin if(readString.indexOf(«LightOn») > 0) { digitalWrite(RelayPin, 1); } else { digitalWrite(RelayPin, 0); } int Relay = digitalRead(RelayPin); String ButtonText = «»; String ButtonLink = «»; if( Relay ){ ButtonText = » LightOff «; ButtonLink = «/LightOff»; } else { ButtonText = » LightOn «; ButtonLink = «/LightOn»; } client.print(«
«); client.print(«
«); client.println(» «); break; } if (c == ‘\n’) { // you’re starting a new line currentLineIsBlank = true; } else if (c != ‘\r’) { // you’ve gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); Serial.println(«client disconnected»); } }
Если все настроено правильно, то зайдя по адресу указанному в настройках IPAddress ip(192, 168, 0, 177) мы увидим веб страницу.
И нажав на кнопку мы сможем управлять реле, соединенным с платой Ардуино.
Web страница на Ардуино
Управление светом через интернет на Ардуино
Virtuino
Программа для Андроид, предназначенная для мониторинга сенсора. Управляет электро устройствами через Bluetooth, Wi-Fi или Интернет.
При помощи Виртуино создаются:
светодиоды;
кнопки;
переключатели;
дисплеи задач;
инструменты;
регуляторы.
Приложение способно совмещать несколько проектов в один. Управляет отличными платформами единовременно через Bluetooth и Wi-fi. Бесплатно в использовании. Относится к подкатегории System Maintenance. Есть возможность проектировать внутреннее оформление с разной визуализацией.
К ним относятся:
- светодиоды;
- переключатели;
- диаграммы;
- счетчики;
- аналоговые приборы.
Обучаться Virtuino можно по учебным пособиям и видео урокам с библиотечной поддержкой. Пока приложение работает в режиме английского языка.
СПАСИБО КИТАЙСКИМ СИГНАЛИЗАЦИЯМ
По секрету: это фрагмент текста относится уже к третьему, так сказать, поколению функционала моей коробочки. Первое — управление радиорозетками. Второе — неожиданная возможность управления радиовыключателями.
А это поколение относится к удивительному открытию. Оказывается, дешевые китайские беспроводные сигнализации комплектуются датчиками, которые с точки зрения уже известной нам библиотеки RC-Switch ничем не отличаются от пультов ДУ с одной кнопкой. Т.е. внутри датчика стоит кодирующая микросхема, которая выдает уникальную последовательность нулей и единиц, и передатчик, который все это счастье выплевывает в эфир.
Не спорю, вероятно, есть и другие варианты, но у меня подозрение, что эта технология — основная.
По этому поводу я купил пару разных датчиков (открытия двери и протечки), чтобы сравнить их внутренности и попробовать подключить к Arduino. После вскрытия выяснилось, что внутренности совершенно идентичны, а после экспериментов с контроллером — что RC-Switch великолепно принимает их сигналы.
Слева датчик протечки, справа — датчик открытия двери.
Настолько похожи, что из одного можно сделать другой:
Еще одним не менее удивительным открытием стало то, что беспроводные дверные звонки работают по этому же принципу. А это значит, что Arduino сможет предупреждать о том, что кто-то звонит в дверь. Полезно, кстати, во многих случаях: во-первых, просто статистика; во-вторых, удобно если дома громкая музыка или просто сели батарейки во внутреннем блоке звонка.
Звонок я, если честно, даже не открывал. Просто считал код в RC-Switch, и добавил его контроль к функционалу коробки.
Если будете использовать подобные датчики, помните о некоторых важных особенностях. Во-первых, сигнал передается однократно. Во-вторых, обратной связи нет, поэтому датчик не знает, был ли принят его сигнал. Поэтому «разработчики» датчиков подстраховались следующим образом: датчик выдает исключительно длинную «трель» — около 2 секунд. В принципе, это гарантирует прием сигнала, но имеет свои недостатки:
1) В исключительно редких (помним про закон подлости) ситуациях, когда одновременно срабатывает несколько датчиков, кто-то потеряется;
2) Длительная передача может стать помехой для других беспроводных систем;
3) Та же длительная передача накладывает ограничения на скорость обработки событий Arduino. Например, чтобы избежать двойного срабатывания от одного и того же датчика, приходится на пару секунд приостанавливать прием сигналов от внешних датчиков.
По итогам два имеющихся датчика используются следующим образом: датчик протечки — под раковиной на кухне, датчик открытия двери контролирует открытие раздвижных дверей гардероба, а по его сигналу Arduino включает/выключает свет внутри.
Сейчас планирую заказать еще датчиков и расширить таким образом их сеть. При этом, разумеется, понимаю, что это не настоящая охранно-пожарная сигнализация, а, скорее, информационный комплекс. Кстати, чтобы это было больше похоже на ОПС, для критически важных датчиков необходимо выделить собственный контроллер, у которого будет двусторонняя связь с базовым блоком, обрабатывающим события.
Таким образом считаю, что пункты ТЗ 7 и 8 по большей части закрыты.
Bluetooth Controller 8 Lamp
Платформа Arduino была создана в 2003 году. Всеобщего внимания она достигла, благодаря низкой цене, а также многомилионному сообществу, направленного на углубленное изучение программирования. Микропроцессоры и микроконтроллеры поставляются с платами. Самыми популярными считаются Arduino. Итальянские модели имеет много функций по расширению и исследованию встроенных Pro систем.
Bluetooth Controller 8 Lamp создан для регулировки функций Ардуино 8 канальным контроллером. Работает при помощи модулей Bluetooth HC-05, HC-06 и HC-07. 8 кнопочный интерфейс соответствует каждой лампочке.
Метод активен только в пределах видимости. В сравнении с другими беспроводными способами — этот самый дешевый. Комплектующие платы стоят менее 1 доллара. Для работы подходят даже подержанные варианты. Статичные девайсы, используя инфракрасный контроллер в потолочных светодиодных лентах, решают легко проблемы, возникшие в процессе.
Описание ESP8266
ESP8266 – микроконтроллер с интерфейсом WiFi, который имеет возможность исполнять программы из флеш-памяти. Устройство было выпущено в 2014 году китайской фирмой Espressif и практически сразу же стало популярным.
Контроллер недорогой, обладает небольшим количеством внешних элементов и имеет следующие технические параметры:
- Поддерживает Wi-Fi протоколы 802.11 b/g/n с WEP, WPA, WPA2;
- Обладает 14 портами ввода и вывода, SPI, I2C, UART, 10-бит АЦП;
- Поддерживает внешнюю память до 16 МБ;
- Необходимое питание от 2,2 до 3,6 В, потребляемый ток до 300 мА в зависимости от выбранного режима.
Важной особенностью является отсутствие пользовательской энергонезависимой памяти на кристалле. Программа выполняется от внешней SPI ПЗУ при помощи динамической загрузки необходимых элементов программы. Доступ к внутренней периферии можно получить не из документации, а из API набора библиотек. Производителем указывается приблизительное количество ОЗУ – 50 кБ.
Особенности платы ESP8266:
- Удобное подключение к компьютеру – через USB кабель, питание от него же;
- Наличие встроенного преобразователя напряжения 3,3В;
- Наличие 4 Мб флеш-памяти;
- Встроенные кнопки для перезагрузки и перепрошивки;
- Все порты выведены на плату на две гребенки с шагом 2,5 мм.
Сферы применения модуля ESP8266
- Автоматизация;
- Различные системы для умного дома: Беспроводное управление, беспроводные розетки, управление температурой, дополнение к сигнализационным системам;
- Мобильная электроника;
- >Распиновка esp8266
Существует огромное количество разновидностей модуля ESP8266. На рисунке представлены некоторые из них. Наиболее популярным вариантом является ESP 01.
Исполнение программы требуется задавать состоянием портов GPIO0, GPIO2 и GPIO15, когда заканчивается подача питания. Можно выделить 2 важных режима – когда код исполняется из UART (GPIO0 = 0, GPIO2 = 1 и GPIO15 = 0) для перепрошивки флеш-карты и когда исполняется из внешней ПЗУ (GPIO0 = 1, GPIO2 = 1 и GPIO15 = 0) в штатном режиме.
Распиновка для ESP01 изображена на картинке.
- 1 – земля, 8 – питание. По документации напряжение подается до 3,6 В – это важно учесть при работе с Ардуино, на которую обычно подают 5 В.
- 6 – RST, нужна для перезагрузки микроконтроллера при подаче на него низкого логического уровня.
- 4 – CP_PD, также используется для перевода устройства в энергосберегающий режим.
- 7 и 0 – RXD0 и TXD0, это аппаратный UART, необходимый для перепрошивки модуля.
- 2 – TXD0, к этому контакту подключается светодиод, который загорается при низком логическом уровне на GPIO1 и при передаче данных по UART.
- 5 – GPIO0, порт ввода и вывода, также позволяет перевести устройство в режим программирования (при подключении порта к низкому логическому уровню и подачи напряжения) .
- 3 – GPIO2, порт ввода и вывода.
Основные отличия Ардуино от ESP8266
- ESP8266 имеет больший объем флеш-памяти, при этом у ESP8266 отсутствует энергонезависимая память;
- Процессор ESP8266 быстрее, чем у Ардуино;
- Наличие Wi-Fi у ESP8266;
- ESP8266 потребляеn больше тока, чем для Ардуино;
Описание ESP8266
ESP8266 – микроконтроллер с интерфейсом WiFi, который имеет возможность исполнять программы из флеш-памяти. Устройство было выпущено в 2014 году китайской фирмой Espressif и практически сразу же стало популярным.
Контроллер недорогой, обладает небольшим количеством внешних элементов и имеет следующие технические параметры:
- Поддерживает Wi-Fi протоколы 802.11 b/g/n с WEP, WPA, WPA2;
- Обладает 14 портами ввода и вывода, SPI, I2C, UART, 10-бит АЦП;
- Поддерживает внешнюю память до 16 МБ;
- Необходимое питание от 2,2 до 3,6 В, потребляемый ток до 300 мА в зависимости от выбранного режима.
Важной особенностью является отсутствие пользовательской энергонезависимой памяти на кристалле. Программа выполняется от внешней SPI ПЗУ при помощи динамической загрузки необходимых элементов программы. Доступ к внутренней периферии можно получить не из документации, а из API набора библиотек. Производителем указывается приблизительное количество ОЗУ – 50 кБ.
Особенности платы ESP8266:
- Удобное подключение к компьютеру – через USB кабель, питание от него же;
- Наличие встроенного преобразователя напряжения 3,3В;
- Наличие 4 Мб флеш-памяти;
- Встроенные кнопки для перезагрузки и перепрошивки;
- Все порты выведены на плату на две гребенки с шагом 2,5 мм.
Сферы применения модуля ESP8266
- Автоматизация;
- Различные системы для умного дома: Беспроводное управление, беспроводные розетки, управление температурой, дополнение к сигнализационным системам;
- Мобильная электроника;
- >Распиновка esp8266
Существует огромное количество разновидностей модуля ESP8266. На рисунке представлены некоторые из них. Наиболее популярным вариантом является ESP 01.
Исполнение программы требуется задавать состоянием портов GPIO0, GPIO2 и GPIO15, когда заканчивается подача питания. Можно выделить 2 важных режима – когда код исполняется из UART (GPIO0 = 0, GPIO2 = 1 и GPIO15 = 0) для перепрошивки флеш-карты и когда исполняется из внешней ПЗУ (GPIO0 = 1, GPIO2 = 1 и GPIO15 = 0) в штатном режиме.
Распиновка для ESP01 изображена на картинке.
- 1 – земля, 8 – питание. По документации напряжение подается до 3,6 В – это важно учесть при работе с Ардуино, на которую обычно подают 5 В.
- 6 – RST, нужна для перезагрузки микроконтроллера при подаче на него низкого логического уровня.
- 4 – CP_PD, также используется для перевода устройства в энергосберегающий режим.
- 7 и 0 – RXD0 и TXD0, это аппаратный UART, необходимый для перепрошивки модуля.
- 2 – TXD0, к этому контакту подключается светодиод, который загорается при низком логическом уровне на GPIO1 и при передаче данных по UART.
- 5 – GPIO0, порт ввода и вывода, также позволяет перевести устройство в режим программирования (при подключении порта к низкому логическому уровню и подачи напряжения) .
- 3 – GPIO2, порт ввода и вывода.