© Евгений Рычков, 2024
ISBN 978-5-0062-7225-5
Создано в интеллектуальной издательской системе Ridero
Предисловие
Рынок Интернета вещей сегодня развивается быстрыми темпами. Взять то же исследование 2023 года от АНО «Цифровая экономика» показывает, что рост рынка составляет 20—30 процентов в год, к сети подключается нереально огромный скоп устройств. Начиная от различных датчиков газа, температуры и влажности, продолжая, метеостанциями, роботами-пылесосами, умными колонками, заканчивая дронами и псевдоспутниками из дронов где-то в вершинах космоса.
Развитие технологий связи, в частности, обширное введение стандарта 5G, позволило еще дальше помечтать о том, какие устройства будущего нас ждут. В таком мире просто необходимо знать особенности использования устройств из области Интернета вещей, а желательно уметь создавать свои системы или кастомизировать существующие решения, улучшать их и использовать под свои конкретные задачи дома, в бизнесе, на работе, где бы то еще ни было.
Еще задолго до появления рынка IoT, который на моих глазах начал зарождаться в 2017 году в Москве (конференция на ВДНХ, появление первых домашних устройств), я, Евгений Николаевич Рычков, родился в городе Красноярск, Сибирь, Россия, окончил Сибирский Федеральный университет по технической специальности «Радиотехника». После специалитета сразу же поступил в аспирантуру. В это же время мне подвернулась возможность вести сравнительно крупный клуб робототехники в г. Красноярск, доставшийся мне от программиста, переехавшего в Санкт Петербург и нашедшего, таким образом, преемника в моем лице. В то время, а это был 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-х классов, также оставив право профессионалам использовать данные знания, как шпаргалку или эдакий конспект преподавателя робототехники, без совсем детского сада.
Даже сегодня, на момент завершения книги, несмотря на множество MQTT-серверов, появления Яндекс, Сбер облаков, куда подключаются умные гаджеты и устройства, актуальна проблема автономной работы роя устройств в каком-либо умном доме, на умной огороде, в умной теплице, на умном рабочем месте. Уже лет 5 идет этот тренд «Умности» в России, но до реального его окончательного закрепления в наших жизнях нужно еще попотеть.
Это как когда приезжаешь в Москву и видишь такой современный урбанистический город, не похожий на регионы России. Красочная выставка, где представлены БПЛА (беспилотные летательные аппараты) со всей страны. Современная просторная поликлинника, оснащенная передовым оборудованием. Умные фонари на улицах повсеместно. За каждым таким проектом стоит реальный человек, вложивший немало сил в узконаправленное дело, благодаря чему мы можем видеть красоты современного города. Несмотря на то, что устройствами IoT уже никого не удивишь, только начинается масшабное внедрение таких устройств на рынки экономики как страны, так и Мира. Это перспективное направление, которое должно оправдать вложения в него как минимум на протяжении дальнейших 5—10 лет.
Хочется отметить, что сейчас у меня есть мечта скинуться всем сообществом разработчиков на участок в 5 км от МКАД в Москве и поставить там умный дом сообщества, распечатать его на 3D-принтере. Там можно будет располагать самодельные устройства умного дома, добавлять новый функционал, а разработчики смогут оставаться там на несколько недель бесплатно, взамен работая над проектами сообщества. Если Вам тоже это интересно, просто свяжитесь со мной любым удобным способом.
После прочтения книги Вы будете понимать, как создавать устройства на ESP32 собственной разработки, которые будут обмениваться данными через сеть Интернет. То есть, фактически, научитесь создавать первые устройства умного дома и интернета вещей. Поехали!
Кому адресована данная книга
Часто в чатах сообщества разработчиков «Технофея» я вижу заинтересованных радиолюбителей, школьников, специалистов, которые хотят собрать для умного дома что-то самостоятельно, с использованием платы ESP32. Они, обычно, задают одни и те же вопросы, пытаются искать информацию в Интернете, и что-то находят, а что-то понять не могут.
В книге я решил обобщить основную информацию, которой владею по умному дому, чтобы можно было ее использовать в качестве определенного пособия-мануала. Например, если Вы уже хорошо программируете платы ESP32, вы можете пропустить несколько разделов книги, все-равно, повторить, например, основы робототехники и рассмотреть, как работать с платой ESP32 в качестве веб-клиента, подключаемого к веб-серверу.
Для новичков я решил не «разжевывать» все до фанатизма, ведь много информации, дополняющей книгу, полно в Интернете, и это лишние усилия описывать каждую мелочь в данном произведении. Но книга максимально четко описывает всю вашу возможную фактическую деятельность для того, чтобы «подружиться» с микроконтроллерами семейства ESP32, понять их особенности и научиться создавать первые устройства умного дома самостоятельно.
Книгу я старался больше ориентировать на профессиональные вещи, то есть не чтобы в игрушки поиграться, а чтобы помочь собирать реальные устройства, которые, затем, можно выводить на рынок или использовать действительно для улучшения своей бытовой жизни. Здесь явно не песочница. Но я постарался весь материал дать «на пальцах», не пренебрегая при этом теорией, чтобы профессионалу было, что повторить, а новичку – все было относительно понятно, если он включит воображение и серьезно подойдет к прочтению данной книги.
Для использования данного ресурса максимально эффективно Вам нужно либо иметь опыт работы хотя бы с платой Arduino UNO, либо перед прочтением немного с ней потренироваться, это сделает данный материал намного более понятным. Однако, наоборот, книга написана так, что если знаний по Arduino Uno у Вас немного, но охота сразу приступить к изучению ESP32, то с помощью данной книги Вы можете это сделать.
В современной действительности многие легко находят любую необходимую информацию в Интернете, и возникает логичный вопрос: зачем нужна книга по программированию, если проще искать в Интернете необходимую информацию? Ответ кроется в том, что в книге можно почитать то, что аккумулировано и содержится в десятках разных статей, с одной стороны. Материал объединен и переработан автором, является объектом его личного опыта. С другой стороны, что еще важнее, печатные книги, все-таки, менее опасны для глаз. Читать их можно, не имея под рукой компьютера. Это очень удобно, когда куда-то берешь с собой книгу и разбираешься с каждой главой, а когда что-то непонятно – дополняешь усвоенные знания практическим программированием за компьютером. Таким образом, адресую данную книгу тем, кто действительно хочет разобраться в тонкостях создания умного дома и Интернета вещей.
Введение в устройства и системы умного дома
Понятие «Умный дом» связано с высокотехнологичной системой, позволяющей объединить все коммуникации в одну и поставить итоговое решение под управление искусственного интеллекта, программируемого и настраиваемого под все потребности и пожелания хозяина. Никого не удивишь автоматическим выключением света с голосовым управлением. Также, как и никого не удивишь тем, что если отключен свет или произошел сбой интернета, система все равно работать не будет.
В Умном доме важны многие факторы: количество взаимосвязанных между собой устройств, автономность, наличие удаленных вычислений для оперативного принятия решений домашними устройствами (нейросети, сторонние библиотеки, такие как Speech API для распознавания речи, переводчики текста в голос и так далее).
Если рассматривать рисунок ниже, видно, что умный дом – это функция умного окна (Smart Windows на изображении), системы слежения за утечкой газа (Gas leak Sensor), за курильщиками (Smoke Sensor), камеры для ночного слежения, где также может быть реализована функция распознавания образов (Camera IR или InfraRed), при этом, есть и обычные камеры дневного видения (Camera). Множество розеток и разъемов по всему дому, к которым удобно подключаться (Sockets, например, нужны для проводного подключения Ethernet по всей территории дома, для удобства розеток без необходимости использовать удлинители и иметь лишние провода на Вашем паркете).
Рисунок 1 – Устройства и системы для умного дома
Весь свет управляется не только с помощью кнопок включения-выключения света, но за счет датчиков движения (Mov. Sensor на изображении) и голоса, за счет системы распознавания речи, умных переключателей (Light Switch). Автоматизировать можно и кондиционирование воздуха, используя показания с датчиков (например, измеряя уровень углекислого газа CO2). Если начинается дождь, то сенсоры ветра и дождя (Wind & Rain sensors) помогут вовремя закрыть окна для непопадания в квартиру влаги или шаровой молнии. А могут, наоборот, открыть окна для естественной свежести в доме после дождя. Например, в магазинах бытовой электроники все чаще встречаются «умные» кондиционеры, но с помощью ESP32 можно и самому имитировать работу IR-пульта, управляя им через веб-сервер, это позволяет создавать свои удобные интерфейсы и совершенствовать алгоритмы работы разных устройств и их взаимодействие меду собой каждый день.
Так, даже с развитием Android-телефонов появилась другая ветка Apple-смартфонов с операционной системой iOS (еще есть macOS). Суть в удобстве и премиум-функционалу для пользователя. Если в Вас есть силы разрабатывать для себя премиум-функционал, а не просто пользоваться покупными кондиционерами с умным управлением, то плата ESP32 – это очень переспективное решение для Вас сегодня. Плата ESP32 компактная, ее уже распаяли и проверили, в ней находится не только микроконтроллер, но и необходимая для работы и интерфейса (подключение к компютеру для программирования) оснастка, остается только полключать к ней датчики и писать для нее программы.
Телевизором в умном доме можно управлять много с чего: с помощью пульта, с помощью голосового помощника, движениями рук (жестами). В доме есть разные вспомогательные кнопки, например, вызвать полицию или службу спасения можно не по телефону, а нажав на кнопку SOS.
Умные панели, в которых основной элемент – это сенсорный дисплей, помогают также управлять домом, но в них еще можно встраивать показания: температура, влажность, скорость ветра, причем визуализировать подобную информацию можно как с датчиков, размещенных в доме, так и с использованием Интернет-данных. Это значит, что можно на дисплеи в разных комнатах дома выводить тематические анекдоты и новости дня, предлагать список задач к выполнению как в доме, так и на работе. В умном доме есть собственный локальный сервер, который домом управляет. Открытие и закрытие всех дверей мониторится с помощью датчиков открытия дверей (Door Sensor), замок может открывать дверь далеко не только ключом, но RFID-метками, через интерфейс умного дома или же с помощью ввода пароля от дома (Door Entry).
Умный дом – это не только устройства внутри дома, но и системы для полива сада и газонов, для включения уличных фонарей.
Даже если у Вас умная квартира, она также подходит под понятие умного дома. Например, умный дом Яндекса – это именно квартира. Когда дом становится умным, это означает, что жилье человека перестает быть просто несколькими комнатами, состоящими из четырех стен, где расположены телевизор с пультом управления, пара шкафов и комодов, диван и двухместный матрас для здорового сна.
Умный дом, таким образом, предполагает установку множества умных устройств, сенсоров, которые автоматизируют вашу жизнь внутри этого Вашего места жительства. Телевизор действительно очень удобно включать с помощью голосовых команд, подаваемых на домашнего ассистента (например, на Гугл-станцию или на Яндекс-станцию), особенно когда не охота все время класть пульт управления на место или вообще не охота его использовать. Вместо картин и фоторамок повсюду стоят «смарт-панели», в основе которых сенсорный экран. Они показывают погоду, выдают данные, найденные в Интернете именно под сегодняшний день Вашей жизни. Датчики дождя позволяют принудительно закрывать окна во время сильного ливня, все переключатели в доме также умные и отличные от обычных кнопочных «включателей»-»выключателей» света. При отсутствии движения в комнате свет в ней автоматически выключается.
Несмотря на наличия на рынке множества датчиков, сенсоров, систем и решений умного дома, актуально разрабатывать кастомные приборы. Например, можно управлять кондиционером не с помощью пульта, а с помощью умного пульта, но покупать и настраивать такой пульт неинтересно, охота устройство установить в собственный корпус. Жалюзи могут автоматически открываться и закрываться с помощью установленного в их конструкцию моторчика. Но программу, бывает, проще написать собственную, именно подходящую под габариты и условия Вашего окна.
Рисунок 2 – Области развития Интернета вещей
Умные устройства в будущем будут окружать нас повсеместно. Это не только дома, но медицина, системы безопасности, сельское хозяйство, портативные и носимые устройства, транспорт и так далее. Эти устройства должны иметь возможность взаимного обмена информацией для принятия решений без необходимости тратить на это время человека. Например, если человек заболел, то ему нельзя дома находиться на сквозняке или под работающем кондиционером. Системе с использованием искусственного интеллекта целесообразнее решать, прикрыть ли сейчас окно или включить ли кондиционер.
В умном доме актуальна как автоматизация монотонных задач, когда можно определенную последовательность задач делегировать «умным помощникам», так и полная роботизация процессов. При роботизации характерно самостоятельное принятие решений домом. Например, сведения анализируются искусственным интеллектом, а на основании полученных данных система самостоятельно выбирает, во сколько сегодня запустить уборку роботами-пылесосами, а во сколько приготовить из крупы с молоком кашу в мультиварке. Система сама принимает решения, какие фильмы посмотреть пользователю на основе уже просмотренных и пропущенных им изданий кинематографа.
Умный дом – это синергетическое обозначение среды, в которой человек проводит много своего времени. В умном доме могут работать даже сотрудники организации будущего или команда стартапа. Благодаря тому, что большинство перечисленных выше датчиков перестали стоить дорого, умный дом эконом-класса стал доступен вообще любому человеку, а создавать его можно постепенно, все больше совершенствуя функционал.
Функционал умного дома не ограничивается перечисленными выше функциями, а для лучшего понимания работы каждой подсистемы в доме многим интересно разрабатывать свои устройства на базе набравших популярность микроконтроллерных платформ семейств Arduino (с использованием WiFi-модуля) и ESP32.
Так, например, очень удобно изготавливать подсветку в доме с использованием светодиодных лент. Ленты могут переливаться разными цветами. Розовый цвет, например, в одной комнате может создавать особый контраст с голубым цветом в другой, за дверью. А сочетание света от ленты с естественным освещением свечами – это просто очень завораживающая романтика. Казалось бы, зачем это все, но если сосредоточить внимание на мелочах, то здесь наблюдается атмосфера гораздо красивее, чем при использовании обычных ламп.
Играют роль и интенсивность разных цветов в доме, и их местоположение. Ведь мощный свет оставляет тени, и это на любителя. Если для освещения дома наиболее популярны адресные светодиодные ленты с RGB-светодиодами (Red Green Blue или Красный Зеленый Синий, то есть в лентах используется 3 разных светодиода, светящиеся данными цветами), то для выращивания растений дома актуальны специальные фитодиодные ленты, источники инфракрасного излучения и даже ультрафиолетовые светодиодные ленты. Ультрафиолет, кстати, актуален и для освещения дома, ведь при малой мощности ленты он оказывает несущественное влияние на здоровье глаз и кожи человека, но в нем предметы начинают отражать свет совсем по другому, что показано на рисунке ниже.
Декоративная подсветка ультрафиолетовой лентой
Ультрафиолет мы, кстати, все-равно не видим, но видим фиолетовое излучение. И стоит отметить, что фиолетовый свет, который излучает ультрафиолетовая лампа, и фиолетовый световой поток от RGB-ленты – это совершенно разные вещи.
В ультрафиолетовом свете лучи, которые видит глаз, вызывают свечение специальных чернил, которые не видно при другом типе освещения
Говорят, что в ультрафиолетовых лучах вещи становятся более четкими, многие приобретают особый контраст. Это действительно так потому, что привычный нам свет находится в диапазоне длин волн от 380—760 нм. Но RGB-ленты имеют в своем составе только 3 светодиода. Когда мы генерируем на них фиолетовый свет, то это – не фиолетовый свет, нам лишь кажется это. Да. ведь это – обман зрения. При этом мы смирились с этим и решили называть этот свет фиолетовым. Но его длина волны – это не около 400 нм, как должно быть в случае с истинно-фиолетовым цветом.
Мы сталкиваемся с интерференцией (наложением) 3 разных длин волн разной интенсивности: красного цвета, зеленого и синего цветов. Как живым организмам нам необходимо получать в том числе и свет в диапазоне длин волн 380—410 нм, ведь за счет воздействия на организм этих длин волн генерируется витамин D, улучшаются процессы окисления в организме, ткани активнее поглощают кислород и выделяют продукты распада. Быстрее происходит обмен углеводами и белками, что важно для развития организма, роста мышц и так далее. Но RGB-ленты ультрафиолет, и даже фиолетовое свечение, не генерируют, а фиолетовый цвет от них создается из-за иллюзии после наложения цветов внутри нашего глаза. Растениям, аналогично, необходимы ультрафиолет и инфракрасное излучение, хотя достаточно и просто синего и красного цветов.
На рисунке ниже, например, показано освещение растений на ситиферме с использованием фитоламп. Фитолампы обеспечивают специальный спектр света, в котором больше всего длин волн синего и красного цветов.
Вследствие подобных нюансов, даже в вопросах освещения комнат в квартире умный дом может оказаться для многих не просто интересным проектом, но и делом, в корне изменившим мировоззрение и понимание принципов и возможностей жизни. Правильное проектирование умного дома в месте, где мы проводим большую часть своей жизни, способно сделать человека стройным и красивым, выработать в нем только лучшие привычки без необходимости решать рутинные и ненужные задачи изжившего себя прошлого. А неправильное такое проектирование может даже нанести Вам существенный вред, но для этого надо постараться. В целом умный дом существенно упрощает нашу жизнь и делает ее интереснее и разнообразнее.
Умный дом часто строят с позиции взгляда специалиста по электронике. Но это не совсем правильно, ведь решения в данном случае – автоматизирующие и робототизирующие наши повседневные жизненные процессы. При правильном подходе к умному дому необходимо подходить к его созданию и с позиции программиста, и с позиций электроника и механика. Актуальны вопросы такой науки, как «Робототехника».
При рассмотрении устройств умного дома нельзя не учитывать применение искусственного интеллекта для принятия решений устройствами без человека. Так, чтобы просто включить свет, когда темно, достаточно проанализировать с помощью датчика освещенности, насколько сейчас светло или темно… И, затем, принять решение по пороговому значению. То есть если датчик выдал, например, число больше 500 в диапазоне от 0 до 1023, то свет нужно включить.
Но решения, включать ли кондиционер, имея данные о температуре человека, о его физическом состоянии, полученном с помощью умных часов, о температуре и влажности в квартире, содержания в ней кислорода и углекислого газа, принимать уже немного посложнее.
Можно также использовать жесткое решение по условию, выставив пороги уже не по одному значению, но по нескольким. Но если важно отслеживать изменение параметров и вынести решения на основе графиков, то здесь удобнее передавать все данные на отдельную нейросеть, которая будет принимать решения.
Введение в робототехнику
Впервые слово «Робот» появилось в чешском от слова robota, что означает подневольный труд. В нашем мире существует множество автоматизированных устройств, но не все можно назвать роботами. Ниже приведены изображения, но не на всех из них можно увидеть робота.
Рисунок 3 – Роботы и автоматы
Разница между роботом и так называемым автоматом очень относительна. Во многих школах робототехники собирают автоматические устройства, но называют это роботами. И, наоборот, кажется устройство умеет самостоятельно принимать решение, обладает пусть простейшим, но интеллектом, а его все равно могут отнести к автоматизированным средствам. Так, 3D-принтер можно отнести скорее к автоматам, ему нужен g-code (последовательность команд в текстовом файле), в соответствии с инструкциями в этом файле, состоящем из набора команд, он перемещает экструдер, из которого льется пластик, в нужные точки для «печати» изделия. Он не думает и не принимает решения, лишь четко следует командам. По аналогии, многих из нас нельзя назвать биологическими роботами, среди нас полно био-автоматов.
Рисунок 4 – 3D-принтер
Но можно ли отнести 3д-принтеры, станки ЧПУ к роботам? Да, можно, но если они смогут что-то выполнять не по жестко заданной программе, а алгоритмам, которые зависят от комплекса внешних факторов – погоды, расстояния до ближайших стен в доме, уровню шума.
Автома́т – машина, самостоятельно действующее устройство (или совокупность устройств), выполняющее по жестко заданной программе, без непосредственного участия человека, процессы получения, преобразования, передачи и использования энергии, материала и информации. Автоматы применяются для обеспечения комфортных условий жизни человека, повышения производительности, облегчения и обеспечения безопасности его труда.
Ро́бот (чеш. robot, от robota – «подневольный труд») – автоматическое устройство, предназначенное для осуществления различного рода механических операций, которое действует по заранее заложенной программе.
Даже «робот-кот» может быть автоматом, если это – совсем бездушное существо, которое просто двигается по заранее предложенной программе. Поэтому грань между роботами и автоматами действительно очень тонкая, ведь кажется, что устройство, которое похоже на кота – это именно робот-кот! А не автоматический кот.
Рисунок 5 – Робот-кот, изготовленный в сообществе разработчиков Технофея
Робот не обязательно имеет какой-то физически существующий корпус. Это может быть программа, написанная на каком-либо языке программирования. Например, бот, написанный на Питоне с использованием Tensor Flow, подключаемое через интерфейс API к социальной сети «Вконтакте». То есть мы видим фотографию робота, видим, что он нам отвечает в процессе переписки с ним, видим, что он не просто перебирает 2 фразы, а даже в ответ на наше заевшее «Привет, как дела?» отвечает каждый раз по-разному. Да, мы разговариваем с бездушным устройством, но ответы оно подбирает уже случайным образом, либо с помощью обученной нейросети, поэтому мы разговариваем, пожалуй, с роботом, а не с автоматом.
Рисунок 6 – Бот от сообщества разработчиков Технофея, который использовался в 2017—2018 годах
Таким образом, робот может не иметь механической части, но когда мы увидим какую-нибудь отладочную плату, например, Arduino UNO или Wemos ESP32, к которой подключены датчики и в которой происходит самостоятельное принятие решения (без заранее подготовленных сценариев от разработчика этого устройства), мы по аналогии с Интернет-ботами можем говорить о том, что эта плата с некоторой модульной «обвязкой» – робот.
Робототехника базируется на 3-х более фундаментальных дисциплинах, переплетается с ними: c электроникой, механикой и программированием, рассмотрим их далее.
Электроника
Робот может состоять из платы управления, к которой подключаются датчики. модули, сенсоры, устройства. Можно помигать светодиодом, и даже сделать целую систему передачи информации, мигая им с помощью Азбуки Морзе, например. Можно анализировать содержание углекислого или угарного газов в квартире и на дисплей выводить одно из двух сообщений: «Зона слабой мозговой активности» или «Угроза пожара». Собранное по электрической схеме устройство – это наработка из области электроники. Внизу приведена схема, где к Arduino Uno подключен датчик температуры и влажности DHT11 и жидкокристаллический дисплей (или LCD – liquid crystal display c английского).
Рисунок 7 – Схема подключения к Ардуино жидкокристаллического дисплея и датчика температуры и влажности, созданная в среде Fritzing
Кстати, существуют действительно семисегментные жидкокристаллические дисплеи – крайне простой индикатор информаций, доступный еще в 90-х годах и ранее, известных как в зарубежной, так и в советской электронике. Но семисегментные дисплеи имею всего лишь 6 сегментов для отображения числа и один сегмент для визуализации разделителя – точки или запятой. В дисплеях на рисунке выше больше сегментов.
Рисунок 8 – Семисегментные индикаторы на модуле
Теперь представьте, Вы даже не показываете вашу разработку где-то на Всероссийском конкурсе, таком как «Шустрик». Но вы переезжаете на новый адрес своего жительства, Вам нужно сложить устройство в пакет, перевезти, потом заново запустить в новой квартире. Приехав в новое жилье, Вы замечаете, что 2 провода у Вас «отвалилось», и не понятно, куда их теперь вставлять, а схему Вы уже подзабыли… Вообще в электронике все четко, и такой ситуации быть не должно. Ведь вы сначала делаете прототип с использованием макетирования – на макетной плате собираете устройство. Макетная плата с ручной работой по трассировке с использованием паяльника показана на рис. ниже.
Рисунок 9 – Распаянные на макетной плате соединения
На рисунке ниже приведен альтернативный, другой вариант макетирования для будущего устройства. Видно, что компоненты соединяются друг с другом отдельными проводами, которые залужены (покрыты оловом или припоем другого состава) и припаяны в нужных местах.
Рисунок 10 – Результат прототипирования на макетной плате
Перед такой пайкой целесообразнее сначала собрать схему на беспаечной плате, например, как на рисунке ниже. Здесь процесс макетирования проходит намного быстрее, ведь уже купленные в интернет-магазине провода нужно просто воткнуть в плавильные ячейки, соединив их с электронными компонентами или модулями.
Рисунок 11 – Прототипирование на беспаечной макетной плате
Наконец, развитие электроники нам сейчас позволяет после макетирования перейти к PCB-платам, которые изготовлены на заводе с соблюдением всех необходимых технологический процессов, имеют шелкографию, то есть надписи на плате, например, белого цвета. Сама печатная плата – это кусок текстолита определенной толщины и габаритов.
Рисунок 12 – Электронные компоненты и микросхемы на плате промышленного образца
Правильно, конечно, в своих начинаниях в области электроники прийти в итоге именно к грамотно спроектированной печатной плате, такой, как на рисунке выше. Но «электроника» может «лежать» и в виде множества устройств на рабочем или лабораторном столе, модулей соединенных проводами между собой, и это также нормально. Более того, часто несколько печатных плат, представленных выше, все равно соединяются между собой. В устройстве может быть несколько таких плат, модулей. Печатные платы можно проектировать в таких программных обеспечениях, как Altium Designer, Eagle, Sprint Layout и так далее. Все дороги могут быть разведены на одной стороне печатной плате, а могут – на двух. Существуют и более сложные решения, например, 3-х слойные печатные платы и даже… 16 слойные и так далее.
Применением простой платы Arduino хороший проект не построить. Данные нужно передавать. Существуют протоколы передачи данных, такие как TCP и UDP. Нужен либо WiFI-модуль, который будет подключен к Arduino, либо плата поинтереснее, такая как ESP32.
Устройства Интернета вещей предполагают, что для передачи данных WiFi (стандарт, например, 802.11g либо схожие) сеть вообще редко когда доступна. Вместо нее обычно применяют другие стандарты. Так, если подходить к разработке продукта максимально просто и правильно, использовать стоит Lora WAN.
Механика
Но даже если мы соберем очень функциональное устройство, управляющее всем умным домом, то под него все-равно необходим корпус. Поэтому нужно грамотно относиться к тому, на какие болты Вы будете прикручивать каждый электронный модуль, в каком месте корпуса оптимальнее расположить разные составляющие устройства. Тогда, даже если Вы не «посадите» провода на клей от клеевого пистолета и даже если Вы будете использовать не PCB-плату с шелкографией, изготовленную в Китае, а макетную плату с множеством плохо припаянных проводов, у Вас все-равно ничего не отвалится, по крайней мере, в ближайшее время. Ведь все жестко зафиксировано внутри корпуса, невозможно создать воздействие, из-за которого провод выпадет из гнезда или отвалится из-за плохой пайки.