Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Электронные проекты на основе ESP8266 и ESP32: Создание приложений и устройств с поддержкой Wi-Fi

Покупка
Артикул: 817222.01.99
Микроконтроллеры ESP8266 и ESP32 необычайно популярны во всем мире как основа для построения интернета вещей и систем умного дома. Они сочетают простоту применения и дешевизну с достаточно высокими возможностями, характерными для 32-разрядных платформ. Популярность их в значительной мере обусловлена наличием легкодоступного и бесплатного ПО, совместимого с уже ставшей стандартом в любительских кругах средой разработки Arduino IDE. В книге делается акцент на практических проектах — начиная от создания мобильных приложений для удаленного управления устройствами с распознаванием речи до GPS-трекинга с использованием Google Maps. Книга адресована всем любителям DIY, умеющим работать с Arduino и заинтересованным в создании настоящих IoT-устройств и интеграции их в систему умного дома.
Кэмерон, Н. Электронные проекты на основе ESP8266 и ESP32: Создание приложений и устройств с поддержкой Wi-Fi : практическое руководство / Н. Кэмерон ; пер. с англ. Ю. В. Ревича. - Москва : ДМК Пресс, 2022. - 456 с. - ISBN 978-5-93700-141-2. - Текст : электронный. - URL: https://znanium.com/catalog/product/2109500 (дата обращения: 27.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Нил Кэмерон

Электронные проекты  
на основе 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 сети, чтобы подключиться к ней. – Прим. перев.