Электронные проекты на основе ESP8266 и ESP32: Создание приложений и устройств с поддержкой Wi-Fi
Покупка
Тематика:
Микроэлектроника. Наноэлектроника
Издательство:
ДМК Пресс
Автор:
Кэмерон Нил
Перевод:
Ревич Юрий Всеволодович
Год издания: 2022
Кол-во страниц: 456
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-93700-141-2
Артикул: 817222.01.99
Микроконтроллеры ESP8266 и ESP32 необычайно популярны во всем мире как основа для построения интернета вещей и систем умного дома. Они сочетают простоту применения и дешевизну с достаточно высокими возможностями, характерными для 32-разрядных платформ. Популярность их в значительной мере обусловлена наличием легкодоступного и бесплатного ПО, совместимого с уже ставшей стандартом в любительских кругах средой разработки Arduino IDE. В книге делается акцент на практических проектах — начиная от создания мобильных приложений для удаленного управления устройствами с распознаванием речи до GPS-трекинга с использованием Google Maps.
Книга адресована всем любителям DIY, умеющим работать с Arduino и заинтересованным в создании настоящих IoT-устройств и интеграции их в систему умного дома.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.02: Фундаментальная информатика и информационные технологии
- 11.03.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Нил Кэмерон Электронные проекты на основе ESP8266 и ESP32 Создание приложений и устройств с поддержкой Wi-Fi
Electronics Projects with the ESP8266 and ESP32 Building Web Pages, Applications, and WiFi Enabled Devices Neil Cameron
Электронные проекты на основе ESP8266 и ESP32 Создание приложений и устройств с поддержкой Wi-Fi Нил Кэмерон Москва, 2022
УДК 621.3 ББК 32.85 К98 Нил Кэмерон К98 Электронные проекты на основе ESP8266 и ESP32: Создание приложений и устройств с поддержкой Wi-Fi / пер. с англ. Ю. В. Ревича. – М.: ДМК Пресс, 2022. – 456 с.: ил. ISBN 978-5-93700-141-2 Микроконтроллеры ESP8266 и ESP32 необычайно популярны во всем мире как основа для построения интернета вещей и систем умного дома. Они сочетают простоту применения и дешевизну с достаточно высокими возможностями, характерными для 32-разрядных платформ. Популярность их в значительной мере обусловлена наличием легкодоступного и бесплатного ПО, совместимого с уже ставшей стандартом в любительских кругах средой разработки Arduino IDE. В книге делается акцент на практических проектах – начиная от создания мобильных приложений для удаленного управления устройствами с распознаванием речи до GPS-трекинга с использованием Google Maps. Книга адресована всем любителям DIY, умеющим работать с Arduino и заинтересованным в создании настоящих IoT-устройств и интеграции их в систему умного дома. Дизайн обложки разработан с использованием ресурса freepik.com. УДК 621.3 ББК 32.85 Copyright First published in English under the title Electronics Projects with the ESP8266 and ESP32. This edition has been translated and published under licence from APress Media, LLC, part of Springer Nature. APress Media, LLC, part of Springer Nature takes no responsibility and shall not be made liable for the accuracy of the translation. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. © Neil Cameron, 2021 © Оформление, издание, перевод, ДМК Пресс, 2022 ISBN (анг.) 978-1-48426-335-8 ISBN (рус.) 978-5-93700-141-2
Оглавление Предисловие от издательства ........................................................ 10 Об авторе ........................................................................................... 11 О техническом рецензенте ............................................................. 12 Предисловие ...................................................................................... 13 Глава 1. Интернет-радио .................................................................. 15 Выбор и отображение станции ........................................................................20 Простейшее интернет-радио ...........................................................................28 Итоги ................................................................................................................29 Перечень компонентов ....................................................................................29 Глава 2. Сетевая фотокамера .......................................................... 30 Загрузка изображений на веб-страницу .........................................................36 Потоковая передача изображений на веб-страницу .....................................39 Потоковая передача изображений на веб-страницу по сигналу PIR-датчика ....................................................................................41 Итоги ................................................................................................................45 Перечень компонентов ....................................................................................45 Глава 3. Международная метеостанция ....................................... 46 Сенсорный дисплей ILI9341 SPI TFT LCD .......................................................46 Калибровка сенсорного экрана .......................................................................49 Рисование на экране ........................................................................................51 Особенности ESP8266 при калибровке сенсорного экрана и рисовании .....52 Данные о погоде для различных городов .......................................................56 Итоги ................................................................................................................65 Перечень компонентов ....................................................................................65 Глава 4. Интернет-часы .................................................................... 66 Светодиодная RGB-лента WS2812, управляемая звуком ...............................69 ESP8266 и мультиплексор ................................................................................72 Часы на светодиодных кольцах ......................................................................75 Протокол NTP (Network Time Protocol) ...........................................................79 Интернет-часы и ESP32 ...................................................................................81 Итоги ................................................................................................................82 Перечень компонентов ....................................................................................82 Глава 5. MP3-плеер ........................................................................... 83 Команды управления для MP3-плеера ...........................................................84 Управление MP3-плеером с помощью микроконтроллера ...........................85
Инфракрасный пульт дистанционного управления MP3-плеером ....................................................................................................91 Создание треков и две системы сигнализации ..............................................94 Сигнализация с обнаружением перемещения ...............................................98 Говорящие часы ..............................................................................................100 Диктофон ........................................................................................................104 Итоги ...............................................................................................................106 Перечень компонентов ..................................................................................106 Глава 6. Bluetooth-динамик ...........................................................107 Итоги ...............................................................................................................111 Перечень компонентов ..................................................................................111 Глава 7. Беспроводная локальная сеть ........................................112 HTTP-запрос ...................................................................................................114 HTML-код ........................................................................................................118 XML HTTP-запросы, JavaScript и AJAX ..........................................................120 Итоги ...............................................................................................................125 Перечень компонентов ..................................................................................125 Глава 8. Обновление веб-страницы .............................................126 XML HTTP-запросы, JavaScript и AJAX ..........................................................130 JSON .................................................................................................................132 Доступ к данным WWW ..................................................................................135 MQTT-брокер и IFTTT .....................................................................................139 Парсинг текста ................................................................................................148 Ведение логов консоли ...................................................................................149 Подключение к Wi-Fi ......................................................................................150 Файл с информацией о доступе .....................................................................151 Итоги ...............................................................................................................152 Перечень компонентов ..................................................................................152 Глава 9. WebSocket ..........................................................................153 Дистанционное управление и связь через WebSocket .................................156 WebSocket и AJAX ............................................................................................161 Доступ к изображениям, времени и показаниям датчиков через интернет ................................................................................................165 Итоги ...............................................................................................................173 Перечень компонентов ..................................................................................173 Глава 10. Создаем мобильное приложение ...............................174 Приложение для управления с обратной связью .........................................175 Установка приложения ...................................................................................184 Приложение для управления сервороботом ................................................185 Приложение для распознавания речи ..........................................................191 Итоги ...............................................................................................................195 Перечень компонентов ..................................................................................195 6 Оглавление
Глава 11. Приложение базы данных и Google Maps .................196 База данных MIT App Inventor ......................................................................196 MIT App Inventor и Google Maps ....................................................................201 Итоги ...............................................................................................................207 Перечень компонентов ..................................................................................207 Глава 12. Приложение для GPS-трекинга с использованием Google Maps ....................................................208 Передача GPS-данных о местоположении ...................................................215 Получение GPS-данных о местоположении ................................................219 Проверка передачи GPS-данных о местоположении ..................................220 Улучшение GPS-сигнала .................................................................................227 Итоги ...............................................................................................................232 Перечень компонентов ..................................................................................233 Глава 13. Связь через USB OTG .....................................................234 Приложение для приема данных ..................................................................235 Приложение для передачи данных ...............................................................239 Приложение для приема и передачи данных ...............................................243 Итоги ...............................................................................................................244 Перечень компонентов ..................................................................................245 Глава 14. Обмен данными через ESP-NOW и LoRa ..............................................................................246 ESP-NOW .........................................................................................................246 LoRa .................................................................................................................256 Итоги ...............................................................................................................265 Перечень компонентов ..................................................................................265 Глава 15. Радиочастотная связь....................................................266 Передача и прием текста ...............................................................................269 Декодирование сигналов дистанционного управления ..............................273 Управление сервоприводами поворота и наклона с помощью RF-связи ...... 277 Управление реле по RF-связи ........................................................................282 Реле ..................................................................................................................285 Твердотельное реле ........................................................................................288 Итоги ...............................................................................................................289 Перечень компонентов ..................................................................................290 Глава 16. Генерация сигналов .......................................................291 Генерация колебаний .....................................................................................294 Цифроаналоговый преобразователь .............................................................296 Генерация колебаний ....................................................................................300 8-разрядный ЦАП ESP32 ................................................................................305 12-разрядный ЦАП .........................................................................................305 Оглавление 7
Итоги ..............................................................................................................309 Перечень компонентов ..................................................................................310 Глава 17. Генерация сигнала с помощью микросхемы таймера 555 .............................................................311 Микросхема таймера 555 ...............................................................................311 Моностабильный режим ................................................................................314 Бистабильный режим .....................................................................................316 Режим генерации ............................................................................................317 Переменный коэффициент заполнения .......................................................320 50%-ный коэффициент заполнения..............................................................322 Режим ШИМ ....................................................................................................325 Функциональный генератор ..........................................................................326 Преобразование прямоугольного колебания в синусоидальное ................330 Биполярный транзистор в качестве ключа ...................................................332 Приложение с MP3-плеером и PIR-датчиком...............................................334 Итоги ...............................................................................................................337 Перечень компонентов ..................................................................................338 Глава 18. Электрические измерения............................................339 Делитель напряжения ....................................................................................339 Аналого-цифровой преобразователь ............................................................341 Измеритель напряжения ................................................................................342 Измеритель напряжения с нагрузкой ...........................................................345 Измеритель сопротивления (омметр) ...........................................................348 Измеритель емкости ......................................................................................350 Измеритель тока (амперметр) .......................................................................353 Датчик тока .....................................................................................................358 Датчик тока и напряжения ............................................................................360 Измеритель для солнечной панели с аккумулятором .................................362 Измеритель индуктивности ...........................................................................369 Итоги ...............................................................................................................373 Перечень компонентов ..................................................................................373 Глава 19. Поворотный энкодер ....................................................375 Устранение дребезга контактов.....................................................................378 Прерывания ....................................................................................................378 Подсчет состояний ..........................................................................................380 Переключение состояний ..............................................................................385 Увеличение значения .....................................................................................386 Итоги ...............................................................................................................389 Перечень компонентов ..................................................................................390 Глава 20. OTA и сохранение данных в EEPROM, SPIFFS и Microsoft Excel ..............................................................................391 OTA-обновление .............................................................................................391 Сохранение данных ........................................................................................394 8 Оглавление
Сохранение в EEPROM ....................................................................................395 Сохранение в SPIFFS .......................................................................................398 Загрузка файлов из SPIFFS .............................................................................402 Сохранение данных в Excel ............................................................................404 Итоги ...............................................................................................................407 Перечень компонентов ..................................................................................407 Глава 21. Микроконтроллеры .......................................................408 Arduino Uno .....................................................................................................412 Arduino Nano ...................................................................................................412 Arduino Pro Micro ............................................................................................413 Модули ESP8266 .............................................................................................414 Аналоговый вход ESP8266 ..............................................................................417 Прерывания ESP8266 .....................................................................................417 Сторожевой таймер ESP8266 .........................................................................419 Модули ESP32 ..................................................................................................419 Цифровой вход ESP32 .....................................................................................422 Аналоговый вход ESP32 .................................................................................422 Широтно-импульсная модуляция в ESP32 ....................................................423 Вход последовательного порта ESP32 ...........................................................424 Связь по Wi-Fi и веб-сервер ...........................................................................424 Прерывания ESP8266 и ESP32 ........................................................................425 ESP8266, ESP32 и OLED-экран ........................................................................425 ESP32 и сервопривод ......................................................................................425 Итоги ...............................................................................................................426 Перечень компонентов ..................................................................................426 Глава 22. Особенности микроконтроллера ESP32 ....................427 Процессор и память .......................................................................................427 Ядра ESP32 ......................................................................................................428 Связь по Bluetooth ..........................................................................................434 Связь Bluetooth Low Energy ............................................................................436 Таймеры ..........................................................................................................445 RTC и спящий режим .....................................................................................447 Цифроаналоговый преобразователь .............................................................449 Емкостный сенсорный датчик .......................................................................449 Датчик Холла ...................................................................................................450 Итоги ...............................................................................................................451 Перечень компонентов ..................................................................................451 Приложение .....................................................................................452 Оглавление 9
Предисловие от издательства Отзывы и пОжелания Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об этой книге – что понравилось или, может быть, не понравилось. Отзывы важны для нас, чтобы выпускать книги, которые будут для вас максимально полезны. Вы можете написать отзыв на нашем сайте www.dmkpress.com, зайдя на страницу книги и оставив комментарий в разделе «Отзывы и рецензии». Также можно послать письмо главному редактору по адресу dmkpress@gmail.com; при этом укажите название книги в теме письма. Если вы являетесь экспертом в какой-либо области и заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http://dmkpress.com/authors/publish_book/ или напишите в издательство по адресу dmkpress@gmail.com. СпиСОк ОпечатОк Хотя мы приняли все возможные меры для того, чтобы обеспечить высокое качество наших текстов, ошибки все равно случаются. Если вы найдете ошибку в одной из наших книг – возможно, ошибку в основном тексте или программном коде, – мы будем очень благодарны, если вы сообщите нам о ней. Сделав это, вы избавите других читателей от недопонимания и поможете нам улучшить последующие издания этой книги. Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них главному редактору по адресу dmkpress@gmail.com, и мы исправим это в следующих тиражах. нарушение автОрСких прав Пиратство в интернете по-прежнему остается насущной проблемой. Издательство « ДМК Пресс» очень серьезно относится к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконной публикацией какой-либо из наших книг, пожалуйста, пришлите нам ссылку на интернет-ресурс, чтобы мы могли применить санкции. Ссылку на подозрительные материалы можно прислать по адресу dmkpress@gmail.com. Мы высоко ценим любую помощь по защите наших авторов, благодаря которой мы можем предоставлять вам качественные материалы.
Об авторе Нил Кэмерон – опытный аналитик и программист с глубоким пониманием работы электронных устройств. Нил – автор книги Arduino Applied: Comprehen- sive Projects for Everyday Electronics (изд-во «Апресс»). Работал научным сотрудником и преподавал в Эдинбургском и Корнелльском университетах.
О техническом рецензенте Майк МакРобертс – автор книги Beginning Arduino (изд-во «Апресс»). Лауреат Pi Wars 2018 и член Medway Makers. Энтузиаст Arduino и Raspberry Pi. C/C++, Arduino, Python, Processing, JS, Node-Red, NodeJS, Lua.
Предисловие Никогда еще не было так просто получать доступ к информации через интернет: разрабатывать веб-страницы для обновления информации с датчиков, создавать мобильные приложения для удаленного управления устройствами с распознаванием речи или интегрировать Google Maps в приложение для GPS- трекинга. Сочетание беспроводного доступа по Wi-Fi, высокой вычислительной мощности и низкой стоимости микроконтроллеров ESP8266 и ESP32 расширяет спектр возможностей. Связь с устройствами и доступ к информации через интернет с помощью микроконтроллеров ESP8266 и ESP32 – в центре внимания книги «Электронные проекты на основе ESP8266 и ESP32». Главы с 1 по 6 демонстрируют мощь и легкость использования микроконтроллеров ESP8266 и ESP32 для получения и отображения интернет-информации. Представленные проекты включают в себя создание интернет-радио, интернет- часов и международной погодной станции, а также проект с камерой ESP32-CAM для загрузки фотографий на веб-страницы. Главы с 7 по 9 посвящены проектам дизайна и обновления в режиме реального времени веб-страниц с информацией от датчиков, представленной в графической форме, или проектам управления удаленным устройством через веб- страницу. Вы узнаете об AJAX (асинхронный JavaScript и XML), который сочетает в себе расширяемый язык разметки XML и протокол передачи гипертекста HTTP, о запросах на обновление веб-страницы с помощью JavaScript, запросах JSON1 для объединения информации, передаваемой сервером клиенту, о двухсторон- ней быстрой связи через протокол WebSocket, MQTT-брокеры и IFTTT2 для связи между устройствами в разных сетях. Практические проекты включают в себя загрузку информации в интернет и управление устройствами из любой точки мира с помощью микроконтроллеров ESP8266 и ESP32. Мобильные приложения теперь повсеместны, что делает представленные в главах с 10 по 13 проекты очень актуальными. Приложение для управления дистанционно расположенными сервоприводами, подключенными к плате с ESP8266 или ESP32, имитирует робототехнику, используемую в автомобильной промышленности; приложение с распознаванием речи управляет устройствами; приложение для GPS-трекинга, включающее Google Maps, отображает текущую позицию и информацию о маршруте. Каждый проект с микроконтроллерами ESP8266 и ESP32 полностью описан, причем от читателя не требуется предыдущего опыта проектирования и сборки мобильных приложений. 1 JSON (JavaScript Object Notation) – текстовый формат обмена данными, основанный на JavaScript. Позволяет сократить объем кода и выполнять запросы быстрее, чем обычные XML HTTP-запросы. – Прим. перев. 2 Расшифровывается как If This, Then That – если это, то то-то; подробнее см. главу 8. – Прим. перев.
Связь между микроконтроллерами ESP8266 и ESP32 описана главах с 14 по 18. Встроенная система связи ESP-NOW, связь LoRa (дальнего радиуса действия) и радиочастотная RF-связь применяются для управления удаленно расположенными устройствами с помощью информации, обновляемой на веб-странице микроконтроллерами ESP8266 и ESP32. Коммуникационные протоколы расширены для приложений генерации сигналов с помощью ESP8266 и ESP32, передающих теперь не только буквенно-цифровой текст, но и звуковые музыкальные сигналы. Генерация сигналов без микроконтроллеров показана на примерах проектов электронного пианино, управления сервоприводом и системы сигнализации, включающей MP3-плеер и детектор движения. Эти главы охватывают встроенный протокол связи микроконтроллеров ESP8266 и ESP32 с применением базовой электроники. Глава об электрических измерениях с помощью микроконтроллеров ESP8266 или ESP32, применяемых в проекте солнечной панели, распространяет электронную тему на измерения, чтобы понять методологию, лежащую в основе построения различных датчиков. Более производительный, чем ESP8266, микроконтроллер ESP32 среди прочего включает связь Bluetooth и ее специальный вариант с низким энергопотреблением Bluetooth Low Energy (BLE). Главы 21 и 22 – о практических различиях между микроконтроллерами ESP8266 и ESP32 и отдельных особенностях ESP32. На протяжении всей книги описаны все различия в библиотеках или инструкциях для микроконтроллеров ESP8266 и ESP32, так что каждый проект совместим с обоими микроконтроллерами. Все главы книги являются самостоятельными, поэтому вы можете углубиться в любую главу, а не начинать с начала. Несколько глав основываются на информации из предыдущих глав. Например, глава 12 («Приложение для GPS- трекинга с использованием Google Maps») включает в себя дизайн мобильного приложения, связь Bluetooth, получение информации из интернета и обновление страницы в интернете. Предполагается некоторый опыт программирования в среде Arduino IDE, хотя все скетчи описаны полностью и исчерпывающе прокомментированы. Для знакомства с микроконтроллерами, начиная от мигания светодиода и заканчивая созданием автомобиля-робота, рекомендуется книга Arduino Applied: Comprehensive Projects for Everyday Electronics3. Принципиальные схемы4 были созданы с помощью программного обеспечения Fritzing (www.fritzing. org) с акцентом на максимальной наглядности размещения компонентов и минимизации пересекающихся соединений. Авторы библиотек, использованных в книге, указаны в каждой главе, а сведения о библиотеках включены в приложение. Все скетчи Arduino IDE и исходный код MIT App Inventor для приложений доступны для загрузки на GitHub (github.com/Apress/ESP8266-and-ESP32). Среда программирования Arduino и библиотеки постоянно обновляются, поэтому информация о последних обновлениях также доступна на сайте GitHub. 3 Для русскоязычных читателей можно порекомендовать такие книги: Ревич Ю. Азбука электроники. Изучаем Arduino. М.: ACT, 2017; Петин В. В., Биняковский А. А. Практическая энциклопедия Arduino. 2-е изд. М.: ДМК Пресс, 2019. – Прим. перев. 4 Строго говоря, представленные в книге схемы соединений компонентов принципиальными схемами не являются; принципиальные схемы представлены только в отдельных случаях для лучшей иллюстрации отдельных положений. – Прим. перев. 14 Предисловие
Глава 1 Интернет-радио Интернет-радио – это непрерывная потоковая передача цифрового аудио через интернет. Цифровой звук в формате MP3 принимается микроконтроллером ESP8266 или ESP32 через соединение Wi-Fi. Микроконтроллер ESP8266 или ESP32 взаимодействует с аудиодекодером VS1053 с помощью SPI5, принятые данные декодируются 18-разрядным цифроаналоговым преобразователем (ЦАП) и превращаются опять в аудиосигнал, который усиливается для вывода на динамик. Микроконтроллеры ESP8266 и ESP32 оборудованы интерфейсом Wi-Fi и имеют достаточную скорость работы процессора для интернет-радио. Для подключения к беспроводной локальной сети (WLAN) требуется SSID6 сети Wi-Fi и пароль. громкость станция Рисунок 1-1. Интернет-радио с переключателями громкости и станций на основе платы LOLIN (WeMos) D1 mini 5 SPI (Serial Peripheral Interface, последовательный периферийный интерфейс) – стандарт последовательной синхронной передачи данных для высокоскоростного соединения микроконтроллеров и периферии в масштабах устройства. – Прим. перев. 6 SSID (Service Set Identifier, идентификатор набора услуг) – символьное наименование сети Wi-Fi, связанной с конкретной точкой доступа. Обычно точки доступа непрерывно передают в эфир наименование своей SSID, благодаря чему воспринимающее устройство «видит» все доступные сети в данном месте и может выбрать какую-либо из них для подключения. Существует и скрытый режим, при котором воспринимающее устройство обязано заранее «знать» SSID сети, чтобы подключиться к ней. – Прим. перев.