Читать онлайн Устройства умного дома и Интернета вещей на основе плат семейства ESP32 бесплатно

Устройства умного дома и Интернета вещей на основе плат семейства ESP32

© Евгений Рычков, 2024

ISBN 978-5-0062-7225-5

Создано в интеллектуальной издательской системе Ridero

Предисловие

Я, Евгений Николаевич Рычков, родился в городе Красноярск, Сибирь, Россия, окончил Сибирский Федеральный университет по технической специальности «Радиотехника»‎. После специалитета сразу же поступил в аспирантуру. В это же время мне подвернулась возможность вести сравнительно крупный клуб робототехники в г. Красноярск, доставшийся мне от программиста, переехавшего в Санкт Петербург и нашедшего, таким образом, преемника в моем лице. В то время, а это был 2012 год, робототехника только-только внедрялась в систему дополнительного образования России, на это выделялись средства, образовательные программы и методики стоили на вес золота и создавались действительно профессионалами своего дела, своей специальности.

В кружке до робототехники занимались авиамоделированием и моделированием судов, сама лаборатория оказалась современной, развитие шло при поддержке правительства и администрации города Красноярск. Это было время интересных командировок и встреч специалистов-робототехников, что финансово и материально активно поддерживалось правительством нашего города. Например, мою лабораторию финансировал красноярский центр путешественников, но корни уходили в министерство образования и науки и в правительство Российской Федерации. Меня отправили на Селигер, полностью оплатив все расходы. Мы встречались на курсах для руководителей кружков в Красноярске, например, так я прошел курс программирования Arduino на LabView.

В 2014 году мною был выигран грант «Eranet Mundus»‎ на полгода оплачиваемой стажировки во Франции, г. Ангулем, в лаборатории XLIM, с большой на то время стипендией 1500 евро. В 2015 году получил государственную премию за вклад в развитие экономики и науки Красноярского края. В 2016 году выигран другой грант, и также поехал на полгода в Испанию в лабораторию Cacytmar. По приезду в Россию приглашен в качестве Главного специалиста по робототехнике в первый в России Кванториум «Мосгормаш»‎, где удостоен многих благодарностей, грамот и дипломов за подготовку лауреатов конкурсов, например, получил благодарность от правительства Москвы за подготовку победителей Всероссийского конкурса «Шустрик»‎. Я также инженер 1 категории (работал на Красноярском радиотехническом заводе, в Акустическом институте им. ак. Н. Н. Андреева), основатель крупного Всероссийского сообщества разработчиков с международным участием «Технофея»‎, автор 28 научных работ, в том числе большинство публикаций входят в РИНЦ, а 4 работы входят в Scopus.

Данная книга написана с целью упорядочить подход инженеров и разработчиков к созданию умных устройств. Несмотря на наличие на рынке множества умных розеток, умных пылесосов, веб-камер для Умного дома, актуален вопрос быстрого и простого создания новых устройств данного рода. Использование чужих решений типа Blynk – это удобно, но до тех пор, пока не вводятся санкции на нашу страну. Тогда понимаешь, что любая система может в сложной «жизненной»‎ ситуации приостановить или ограничить свою деятельность, и важно как иметь наши, отечественные, русские решения, так и в принципе иметь свою голову на плечах и не зависеть от коммерческой тайны чужих организаций и объединений, а понять суть. Разумеется, можно взять исходник на гитхаб и запустить сервер Blynk у себя, на телефон с Андроид установить сохраненное APK-приложение. И это хорошее решение. Но когда сам всю систему полностью держишь под контролем и можешь ее совершенствовать, как охота тебе – такой расклад все-равно интереснее, такой путь безопаснее..

Суть того, в данном случае, как создавать свои умные устройства с использованием микроконтроллерных плат с WiFi-трансивером, таких как ESP32. Веб-сервер для устройств умного дома мы в сообществе развиваем, кстати говоря, с 2017 года.

В материалах данной книги я постарался сделать упор именно на логику работы устройств умного дома и на принципы, как вообще «на пальцах»‎ создаются такие устройства. То есть я ушел от пути «вот тебе волшебная библиотека или волшебный сервер». Приоритеты расставлены в сторону того, что «это работает так, вот так это устроено». Надеюсь, что благодаря этому книга долго не потеряет актуальность, так как появляются новые алгоритмы и способы, но базу надо знать, и здесь я говорю о базе и о базовой логике при проектировании систем Умного дома.

Умный дом начинается, с одной стороны, с мечты человека о том, что нужно автоматизировать или даже полностью роботизировать свою жизнь. Таким образом, актуально рассмотреть некоторые основы робототехники, от которых затем мы переходим непосредственно к вопросу создания устройств умного дома, подключаемых к веб-серверу.

Если у Вас уже идеально работающий умный дом, то вы можете управлять в нем разными способами любым устройством (голосом или через веб-интерфейс). пылесосы сами моют полы по расписанию, свет включается, как только Вы зашли в комнату, мультиварка мотивирует вас приходить на завтраки, обеды и ужины вовремя, так как у нее также есть расписание включения, которое, однако, можно легко переконфигурировать в случае нарушения плана на день. Многими приборами я лично в доме управляю через Алису и умный телевизор, причем начал заниматься этим еще до того, как появилась умная бытовая техника для рынков массового потребления.

Мало кого сегодня удивишь умными лампами, которые включаются или начинают гореть другим цветом и с другой яркостью с помощью голосовых команд. Но я работал с московским производителем таких не лампчек, а полноценных ламп, причем в тестовом режиме мы даже разработали функцию голосового управления.

Многие люди уже начали интересоваться выращиванием растений дома, чтобы их есть. В магазине продукция ничем не лучше, так как выращена также методом гидропоники. Бывает, хочется сделать кастомный светильник, не просто включать его и управлять его яркостью, но задавать ему собственные режимы работы (те множество режимов, доступных в WLED). Интересно создавать свои электронные фоторамки, которые выдают прогнозы погоды, количество подписчиков и просто, банально, анекдоты на случайную тему из Вашей профессиональной области. Бывает, надо управлять старым кондиционером через пульт управления по инфракрасному каналу. В таких случаях актуально создание для своего умного дома самодельных устройств, основанных на платах с беспроводным модулем связи, таких как Wemos ESP32.

К таким системам можно подключаться по WiFi, если они работают в режиме точки доступа. Внутри таких устройств создаются веб-интерфейсы, к которым можно подключаться с браузера, например, персонального компьютера. Но интереснее, когда для самодельных умных устройств все данные хранятся на веб-сервере во внешнем интернете. Ведь тогда к ним есть доступ из любой точки мира без каких-либо специальных сложных настроек системы умного дома. Микроконтроллер в устройстве получает значения с сервера, которые надо обновить в системе умного дома. И, наоборот, значения с датчиков, модулей, устройств отправляются на сервер и записываются. Мы можем создавать зависимости между разными устройствами умного дома. Например, при низкой освещенности необходимо включить лампу. При высоком содержании CO2 в комнате надо включить кондиционер. И так далее. Окунитесь в принципы и процессы создания таких устройств умного дома!

Я постарался не ориентировать книгу на какой-то конкретный возраст и на конкретную аудиторию, сделать материал максимально универсальным и популярным. Так, если Вы профессионал, Вы «запнетесь»‎ на обсуждении в тексте аналогово цифрового преобразователя, ведь для Вас эта тема, вероятно, для новичков в программировании микроконтроллеров. Но я добавил материал для повторения разрядности, конвертации чисел из десятичной системы счисления и наоборот.

Таким образом, материал очень краткий, но интересный не только профессионалам, но и новичкам, так как сообразительные «начинающие программисты»‎ не должны долго «въезжать»‎ в тему, «на пальцах» я поясняю то, что некоторые вплоть до ВУЗА не связывают с реальной практикой, дескать с сопутствующим вопросом «а для чего это нужно? Вы не убедили меня!»‎…

И позже, в ВУЗе, может прийти откровение «так вот зачем это нужно!»‎. Если преподаватель даст правильные объяснения по теме. Таким образом, надеюсь, что я максимально четко презентовал в данной книге материал на широкую аудиторию, а если что-то непонятно – вы всегда можете зафиксировать вопросы в голове и сосредоточиться на главном, не уставая от мелочей… Вообще все проще – непонятные моменты можно поискать и в Интернете. Однако в книгу я вложил 5 лет своего преподавательского опыта по робототехнике для школьников 8-х классов, также оставив право профессионалам использовать данные знания, как шпаргалку или эдакий конспект преподавателя робототехники, без совсем детского сада.

Хочется отметить, что сейчас у меня есть мечта скинуться всем сообществом разработчиков на участок в 5 км от МКАД в Москве и поставить там умный дом сообщества, распечатать его на 3D-принтере. Там можно будет располагать самодельные устройства умного дома, добавлять новый функционал, а разработчики смогут оставаться там на несколько недель бесплатно, взамен работая над проектами сообщества.

После прочтения книги Вы будете понимать, как создавать устройства на ESP32 собственной разработки, которые будут обмениваться данными через сеть Интернет. То есть, фактически, научитесь создавать первые устройства умного дома и интернета вещей. Поехали!

Кому адресована данная книга

Часто в чатах сообщества разработчиков «Технофея»‎ я вижу заинтересованных радиолюбителей, школьников, специалистов, которые хотят собрать для умного дома что-то самостоятельно, с использованием платы ESP32. Они, обычно, задают одни и те же вопросы, пытаются искать информацию в Интернете, и что-то находят, а что-то понять не могут.

В книге я решил обобщить основную информацию, которой владею по умному дому, чтобы можно было ее использовать в качестве определенного пособия-мануала. Например, если Вы уже хорошо программируете платы ESP32, вы можете пропустить несколько разделов книги, все-равно, повторить, например, основы робототехники и рассмотреть, как работать с платой ESP32 в качестве веб-клиента, подключаемого к веб-серверу.

Для новичков я решил не «разжевывать»‎ все до фанатизма, ведь много информации, дополняющей книгу, полно в Интернете, и это лишние усилия описывать каждую мелочь в данном произведении. Но книга максимально четко описывает всю вашу возможную фактическую деятельность для того, чтобы «подружиться»‎ с микроконтроллерами семейства ESP32, понять их особенности и научиться создавать первые устройства умного дома самостоятельно.

Книгу я старался больше ориентировать на профессиональные вещи, то есть не чтобы в игрушки поиграться, а чтобы помочь собирать реальные устройства, которые, затем, можно выводить на рынок или использовать действительно для улучшения своей бытовой жизни. Здесь явно не песочница. Но я постарался весь материал дать «на пальцах»‎, не пренебрегая при этом теорией, чтобы профессионалу было, что повторить, а новичку – все было относительно понятно, если он включит воображение и серьезно подойдет к прочтению данной книги.

Для использования данного ресурса максимально эффективно Вам нужно либо иметь опыт работы хотя бы с платой Arduino UNO, либо перед прочтением немного с ней потренироваться, это сделает данный материал намного более понятным. Однако, наоборот, книга написана так, что если знаний по Arduino Uno у Вас немного, но охота сразу приступить к изучению ESP32, то с помощью данной книги Вы можете это сделать.

В современной действительности многие легко находят любую необходимую информацию в Интернете, и возникает логичный вопрос: зачем нужна книга по программированию, если проще искать в Интернете необходимую информацию? Ответ кроется в том, что в книге можно почитать то, что аккумулировано и содержится в десятках разных статей, с одной стороны. Материал объединен и переработан автором, является объектом его личного опыта. С другой стороны, что еще важнее, печатные книги, все-таки, менее опасны для глаз. Читать их можно, не имея под рукой компьютера. Это очень удобно, когда куда-то берешь с собой книгу и разбираешься с каждой главой, а когда что-то непонятно – дополняешь усвоенные знания практическим программированием за компьютером. Таким образом, адресую данную книгу тем, кто действительно хочет разобраться в тонкостях создания умного дома и Интернета вещей.

Введение в устройства и системы умного дома

Понятие «Умный дом»‎ связано с высокотехнологичной системой, позволяющей объединить все коммуникации в одну и поставить её под управление искусственного интеллекта, программируемого и настраиваемого под все потребности и пожелания хозяина. Если рассматривать рисунок ниже, видно, что умный дом – это функция умного окна (Smart Windows на изображении), системы слежения за утечкой газа (Gas leak Sensor), за курильщиками (Smoke Sensor), камеры для ночного слежения, где также может быть реализована функция распознавания образов (Camera IR или InfraRed), при этом, есть и обычные камеры дневного видения (Camera). Множество розеток и разъемов по всему дому, к которым удобно подключаться (Sockets, например, нужны для проводного подключения Ethernet по всей территории дома, для удобства розеток без необходимости использовать удлинители и иметь лишние провода на Вашем паркете).

Рис.0 Устройства умного дома и Интернета вещей на основе плат семейства ESP32

Рисунок 1 – Устройства и системы для умного дома

Весь свет управляется не только с помощью кнопок включения-выключения света, но за счет датчиков движения (Mov. Sensor на изображении) и голоса, за счет системы распознавания речи, умных переключателей (Light Switch). Автоматизировать можно и кондиционирование воздуха, используя показания с датчиков (например, измеряя уровень углекислого газа CO2). Если начинается дождь, то сенсоры ветра и дождя (Wind & Rain sensors) помогут вовремя закрыть окна для непопадания в квартиру влаги или шаровой молнии. А могут, наоборот, открыть окна для естественной свежести в доме после дождя. Например, в магазинах бытовой электроники все чаще встречаются «умные»‎ кондиционеры, но с помощью ESP32 можно и самому имитировать работу IR-пульта, управляя им через веб-сервер, это позволяет создавать свои удобные интерфейсы и совершенствовать алгоритмы работы разных устройств и их взаимодействие меду собой каждый день.

Так, даже с развитием Android-телефонов появилась другая ветка Apple-смартфонов с операционной системой iOS (еще есть macOS). Суть в удобстве и премиум-функционалу для пользователя. Если в Вас есть силы разрабатывать для себя премиум-функционал, а не просто пользоваться покупными кондиционерами с умным управлением, то плата ESP32 – это очень переспективное решение для Вас сегодня. Плата ESP32 компактная, ее уже распаяли и проверили, в ней находится не только микроконтроллер, но и необходимая для работы и интерфейса (подключение к компютеру для программирования) оснастка, остается только полключать к ней датчики и писать для нее программы.

Телевизором в умном доме можно управлять много с чего: с помощью пульта, с помощью голосового помощника, движениями рук (жестами). В доме есть разные вспомогательные кнопки, например, вызвать полицию или службу спасения можно не по телефону, а нажав на кнопку SOS.

Рис.1 Устройства умного дома и Интернета вещей на основе плат семейства ESP32

Умные панели, в которых основной элемент – это сенсорный дисплей, помогают также управлять домом, но в них еще можно встраивать показания: температура, влажность, скорость ветра, причем визуализировать подобную информацию можно как с датчиков, размещенных в доме, так и с использованием Интернет-данных. Это значит, что можно на дисплеи в разных комнатах дома выводить тематические анекдоты и новости дня, предлагать список задач к выполнению как в доме, так и на работе. В умном доме есть собственный локальный сервер, который домом управляет. Открытие и закрытие всех дверей мониторится с помощью датчиков открытия дверей (Door Sensor), замок может открывать дверь далеко не только ключом, но RFID-метками, через интерфейс умного дома или же с помощью ввода пароля от дома (Door Entry).

Умный дом – это не только устройства внутри дома, но и системы для полива сада и газонов, для включения уличных фонарей.

Рис.2 Устройства умного дома и Интернета вещей на основе плат семейства ESP32

Даже если у Вас умная квартира, она также подходит под понятие умного дома. Например, умный дом Яндекса – это именно квартира. Когда дом становится умным, это означает, что жилье человека перестает быть просто несколькими комнатами, состоящими из четырех стен, где расположены телевизор с пультом управления, пара шкафов и комодов, диван и двухместный матрас для здорового сна.

Рис.3 Устройства умного дома и Интернета вещей на основе плат семейства ESP32

Умный дом, таким образом, предполагает установку множества умных устройств, сенсоров, которые автоматизируют вашу жизнь внутри этого Вашего места жительства. Телевизор действительно очень удобно включать с помощью голосовых команд, подаваемых на домашнего ассистента (например, на Гугл-станцию или на Яндекс-станцию), особенно когда не охота все время класть пульт управления на место или вообще не охота его использовать. Вместо картин и фоторамок повсюду стоят «смарт-панели»‎, в основе которых сенсорный экран. Они показывают погоду, выдают данные, найденные в Интернете именно под сегодняшний день Вашей жизни. Датчики дождя позволяют принудительно закрывать окна во время сильного ливня, все переключатели в доме также умные и отличные от обычных кнопочных «включателей»‎-»‎выключателей»‎ света. При отсутствии движения в комнате свет в ней автоматически выключается.

Несмотря на наличия на рынке множества датчиков, сенсоров, систем и решений умного дома, актуально разрабатывать кастомные приборы. Например, можно управлять кондиционером не с помощью пульта, а с помощью умного пульта, но покупать и настраивать такой пульт неинтересно, охота устройство установить в собственный корпус. Жалюзи могут автоматически открываться и закрываться с помощью установленного в их конструкцию моторчика. Но программу, бывает, проще написать собственную, именно подходящую под габариты и условия Вашего окна.

Рис.4 Устройства умного дома и Интернета вещей на основе плат семейства ESP32

Рисунок 2 – Области развития Интернета вещей

Умные устройства в будущем будут окружать нас повсеместно. Это не только дома, но медицина, системы безопасности, сельское хозяйство, портативные и носимые устройства, транспорт и так далее. Эти устройства должны иметь возможность взаимного обмена информацией для принятия решений без необходимости тратить на это время человека. Например, если человек заболел, то ему нельзя дома находиться на сквозняке или под работающем кондиционером. Системе с использованием искусственного интеллекта целесообразнее решать, прикрыть ли сейчас окно или включить ли кондиционер.

В умном доме актуальна как автоматизация монотонных задач, когда можно определенную последовательность задач делегировать «умным помощникам»‎, так и полная роботизация процессов. При роботизации характерно самостоятельное принятие решений домом. Например, сведения анализируются искусственным интеллектом, а на основании полученных данных система самостоятельно выбирает, во сколько сегодня запустить уборку роботами-пылесосами, а во сколько приготовить из крупы с молоком кашу в мультиварке. Система сама принимает решения, какие фильмы посмотреть пользователю на основе уже просмотренных и пропущенных им изданий кинематографа.

Умный дом – это синергетическое обозначение среды, в которой человек проводит много своего времени. В умном доме могут работать даже сотрудники организации будущего или команда стартапа. Благодаря тому, что большинство перечисленных выше датчиков перестали стоить дорого, умный дом эконом-класса стал доступен вообще любому человеку, а создавать его можно постепенно, все больше совершенствуя функционал.

Функционал умного дома не ограничивается перечисленными выше функциями, а для лучшего понимания работы каждой подсистемы в доме многим интересно разрабатывать свои устройства на базе набравших популярность микроконтроллерных платформ семейств Arduino (с использованием WiFi-модуля) и ESP32.

Так, например, очень удобно изготавливать подсветку в доме с использованием светодиодных лент. Ленты могут переливаться разными цветами. Розовый цвет, например, в одной комнате может создавать особый контраст с голубым цветом в другой, за дверью. А сочетание света от ленты с естественным освещением свечами – это просто очень завораживающая романтика. Казалось бы, зачем это все, но если сосредоточить внимание на мелочах, то здесь наблюдается атмосфера гораздо красивее, чем при использовании обычных ламп.

Рис.5 Устройства умного дома и Интернета вещей на основе плат семейства ESP32

Играют роль и интенсивность разных цветов в доме, и их местоположение. Ведь мощный свет оставляет тени, и это на любителя. Если для освещения дома наиболее популярны адресные светодиодные ленты с RGB-светодиодами (Red Green Blue или Красный Зеленый Синий, то есть в лентах используется 3 разных светодиода, светящиеся данными цветами), то для выращивания растений дома актуальны специальные фитодиодные ленты, источники инфракрасного излучения и даже ультрафиолетовые светодиодные ленты. Ультрафиолет, кстати, актуален и для освещения дома, ведь при малой мощности ленты он оказывает несущественное влияние на здоровье глаз и кожи человека, но в нем предметы начинают отражать свет совсем по другому, что показано на рисунке ниже.

Рис.6 Устройства умного дома и Интернета вещей на основе плат семейства ESP32

Декоративная подсветка ультрафиолетовой лентой

Ультрафиолет мы, кстати, все-равно не видим, но видим фиолетовое излучение. И стоит отметить, что фиолетовый свет, который излучает ультрафиолетовая лампа, и фиолетовый световой поток от RGB-ленты – это совершенно разные вещи.

Рис.7 Устройства умного дома и Интернета вещей на основе плат семейства ESP32

В ультрафиолетовом свете лучи, которые видит глаз, вызывают свечение специальных чернил, которые не видно при другом типе освещения

Говорят, что в ультрафиолетовых лучах вещи становятся более четкими, многие приобретают особый контраст. Это действительно так потому, что привычный нам свет находится в диапазоне длин волн от 380—760 нм. Но RGB-ленты имеют в своем составе только 3 светодиода. Когда мы генерируем на них фиолетовый свет, то это – не фиолетовый свет, нам лишь кажется это. Да. ведь это – обман зрения. При этом мы смирились с этим и решили называть этот свет фиолетовым. Но его длина волны – это не около 400 нм, как должно быть в случае с истинно-фиолетовым цветом.

Рис.8 Устройства умного дома и Интернета вещей на основе плат семейства ESP32

Мы сталкиваемся с интерференцией (наложением) 3 разных длин волн разной интенсивности: красного цвета, зеленого и синего цветов. Как живым организмам нам необходимо получать в том числе и свет в диапазоне длин волн 380—410 нм, ведь за счет воздействия на организм этих длин волн генерируется витамин D, улучшаются процессы окисления в организме, ткани активнее поглощают кислород и выделяют продукты распада. Быстрее происходит обмен углеводами и белками, что важно для развития организма, роста мышц и так далее. Но RGB-ленты ультрафиолет, и даже фиолетовое свечение, не генерируют, а фиолетовый цвет от них создается из-за иллюзии после наложения цветов внутри нашего глаза. Растениям, аналогично, необходимы ультрафиолет и инфракрасное излучение, хотя достаточно и просто синего и красного цветов.

На рисунке ниже, например, показано освещение растений на ситиферме с использованием фитоламп. Фитолампы обеспечивают специальный спектр света, в котором больше всего длин волн синего и красного цветов.