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

Интернет вещей для начинающих. Визуальное программирование микроконтроллеров семейства ESP8266

Покупка
Основная коллекция
Артикул: 811707.02.99
Представлены азы создания «умных вещей» и «умного дома». На примерах показано, как создаются устройства, позволяющие собирать информацию с датчиков, управлять исполнительными механизмами и создавать алгоритмы работы умных вещей. Все практические примеры не требуют глубоких знаний по программированию и электронике. Даются пояснения из области электроники, информатики, физики и других необходимых для понимания материала областей знания. Для широкого круга читателей, интересующихся созданием «умных» вещей.
Шамин, А. А. Интернет вещей для начинающих. Визуальное программирование микроконтроллеров семейства ESP8266 : учебное пособие / А. А. Шамин. - Москва ; Вологда : Инфра-Инженерия, 2023. - 120 с. - ISBN 978-5-9729-1167-7. - Текст : электронный. - URL: https://znanium.com/catalog/product/2094388 (дата обращения: 18.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
А. А. Шамин







                ИНТЕРНЕТ ВЕЩЕЙ




ДЛЯ НАЧИНАЮЩИХ

Визуальное программирование микроконтроллеров семейства ESP8266











Москва Вологда «Инфра-Инженерия» 2023

УДК 004.42
ББК 32.973
     Ш19

Рецензенты:
зам. директора по развитию ИШИТР ТПУ, к. т. н., доцент, доцент ОИТ ИШИТР ТПУ Дёмин Антон Юрьевич;
к. т. н., доцент ОИТ ИШИТР ТПУ Погребной Александр Владимирович





     Шамин, А. А.
Ш19 Интернет вещей для начинающих. Визуальное программирование микроконтроллеров семейства ESP8266 / А. А. Шамин. - Москва ; Вологда : ИнфраИнженерия, 2023. - 120 с. : ил., табл.
          ISBN 978-5-9729-1167-7

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

УДК 004.42
ББК 32.973















ISBN 978-5-9729-1167-7

© Шамин А. А.,2023
     © Издательство «Инфра-Инженерия», 2023
                              © Оформление. Издательство «Инфра-Инженерия», 2023

            ОГЛАВЛЕНИЕ



Введение...............................................................5
   О чём эта книга.....................................................5
   Чего нет в этой книге...............................................8

1.  Микроконтроллеры семействаЕ8Р8266 и модули ESP-XX.................10
2.  Контроллер ShloTiny...............................................19
3.  Что нужно для работы?.............................................21
4.  Как попасть на страницу контроллера ShloTiny......................24
5.  Мы попали на страницу ShloTiny....................................28
6.  Первая программа..................................................29
7.  Усложняем задачу..................................................32
8.  Монитор...........................................................34
9.  Наигрались? Теперь давайте по порядку.............................35
   9.1. Узлы, связи и события.........................................35
   9.2. Какие бывают входы и выходы?..................................36
   9.3. События: что это такое и с чем их подают к столу..............37
10. Описание узлов (нод)..............................................41
   10.1. Просто комментарий...........................................41
   10.2. Базовая логика (Basic logic).................................41
   10.3. Бинарные входы и выходы для управления внешними устройствами.43
     10.3.1. Сказ про «сухие контакты»................................43
     10.3.2. Сказание о реле..........................................46
   10.4. Аналого-цифровой преобразователь.............................53
   10.5. Технология MQTT..............................................59
     10.5.1. Настройкаподключения MQTT-брокеру........................61
     10.5.2. Префикс MQTT-параметров..................................63
     10.5.3. Безопасность (SSL).......................................63
     10.5.4. Пример работы по протоколу MQTT..........................64
   10.6. Технология и протокол Rlink UDP..............................68
   10.7. Датчики температуры и влажности..............................72
   10.8. Математические функции.......................................75
   10.9. Функции отсчёта времени......................................77
   10.10. Функции управления прохождением событий.....................82
   10.11. Функции сетевого сервиса....................................83
   10.12. Функции сохранения параметров в энергонезависимую память....83
   10.13. Функции работы с календарём и синхронизации времени.........85
   10.14. Системные функции...........................................87
   10.15. Шина12С.....................................................87
   10.16. Модуль индикации на базе микросхемы TM1637..................91
11. Примеры устройств.................................................94
   11.1. Простая комнатная метеостанция...............................94
   11.2. Комнатная метеостанция посложнее.............................96
   11.3. Система управления освещением................................98

3

Заключение.........................................................105

Полезные ссылки....................................................106

Приложение А. Страница состояния ShloTiny (ShloTiny info page).....107
Приложение Б. Вкладка настройки сети и режимов работы
ShloTiny (Networking)..............................................109
Приложение В. Работа с редактором ElDraw...........................111
Приложение Г. Установка программного обеспечения ShloTiny..........115

            ВВЕДЕНИЕ
            О чём эта книга


    Словосочетания «умные вещи», «умный дом» и «интернет вещей» сейчас встречаются буквально на каждом шагу.
    Но что же стоит за этими красивыми словами? Как это работает? И можно ли самому реализовать свои идеи по управлению какими-то домашними делами?
    Об этом и рассказывает эта книга на простых примерах, доступных даже начинающим.
    Разумеется, окружающее нас изобилие «умных вещей» и возможность объединения их в «интернет вещей» появилось не сразу. Поэтому позволим себе небольшой обзорный экскурс в историю автоматизации, концепций «умных вещей», «умного дома» и «интернета вещей».
    Есть такая избитая фраза - «лень - двигатель прогресса». И это во многом правда.
    С давних пор человек стремится избавить себя от рутинной работы. Ветряная и водяная мельница - это пример того, как человек приспособил силы природы, чтобы не крутить самому тяжёлые жернова. С тех пор прошли века. И человек придумывал всё новые и новые способы облегчить себе жизнь. Были придуманы паровое и водяное отопление, ткацкие станки и автомобили, трактора и самолёты и многое другое. Впрочем, по истории техники уже написаны толстые книги, которые читатель может найти и прочитать самостоятельно.
    Одно из свойств прогресса состоит в том, что по мере усложнения технических устройств всё большее значение приобретало развитие такого направления человеческой мысли, как автоматизация технологических процессов. То есть, переводя с научной терминологии на язык начальной школы - «как сделать так, чтобы оно само работало?».
    Автоматизация технологических процессов началась задолго до появления электроники. Например, та же паровая машина, по сути, является автоматической системой с обратной связью. Ткацкий станок, который использовал перфокарты ещё в XIX веке - это фактически машина с программным управлением.
    Бурное развитие автоматизации технологических процессов началось с появлением электротехники и электроники.
    Изобретение даже таких несложных устройств, как электромагнитные реле дало толчок к появлению простых и эффективных систем автоматизации станков, автомобилей, телефонных станций и других механизмов, машин и некоторых производств.

5

    Прогресс в области автоматизации двигался по мере развития электроники, теории управления, автоматики, а затем информатики и компьютерных наук.
    С появлением дешёвой и доступной электроники различные приборы автоматизации начали всё шире проникать из «большой» промышленности в сферу домашнего быта.
    Первые «умные вещи» с электронной начинкой (то есть вещи, которые автоматизируют функции, для которых они предназначены) появились более полувека назад. Как пример можно привести автоматы включения освещения или различные устройства вентиляции и подогрева помещений. Из-за дороговизны электронной компонентной базы того времени и некоторых других причин, в быту подобные вещи тогда не получили большого распространения.
    Сейчас уже никого не удивишь автоматическим включением света в подъезде или комнате. Привычными стали бытовые системы кондиционирования воздуха и создания микроклимата в помещении.
    Даже такие простые бытовые вещи как печь или чайник обзавелись некоторым «интеллектом», позволяя их счастливому хозяину вскипятить воду к заданному времени или разогреть еду до желаемой температуры.
    Следующим этапом развития «умных вещей» стала возможность обмена данными между ними, что породило концепцию «умного дома». В данном случае, слово «дом» стоит понимать не как жилой дом или квартиру, а как «здание».
    «Умный дом» - это такое здание, все функции обеспечения жизнедеятельности которого имеют единый центр управления, из которого можно как видеть текущее состояние аппаратуры «умного дома» и управлять ей.
    Например, у вас есть жилой дом с несколькими комнатами, двором, гаражом и садом. В каждой комнате дома, в гараже и в саду есть датчики температуры, освещённости, влажности, движения и т. д., данные от которых постоянно передаются в некий центр управления, например, в персональный компьютер. В зависимости от заданных параметров, этот компьютер может включать в той или иной комнате вентиляцию или подогрев. Может включать и выключать освещение в зависимости от времени суток и освещённости в помещении. Может включать и отключать освещение в саду, которое может быть основным и дежурным. В общем, может делать то, что вы сделали бы сами в тех же условиях. Разумеется, что такие подходы можно применить не только к жилому дому, но и к офису или к магазину или иному зданию.
    И, наконец, широкое распространение глобальной сети Интернет позволило не только соединить «умные вещи» в пределах одного здания,

6

но и в пределах практически всего земного шара. Эта возможность и породила концепцию «интернета вещей».
    «Интернет вещей» предполагает обмен информацией между вещами в глобальном масштабе. То есть, подключение «умного дома» к интернету позволяет управлять своим домом из любой точки мира, где есть доступ в интернет, включать-выключать свет, температуру в комнате или установить «умную камеру» наблюдения, которая при обнаружении движения в заданном секторе произведёт съёмку и поместит видео в интернет и многое другое. Сейчас уже говорят об «умных холодильниках», которые сами определяют, каких продуктов не хватает и в соответствии со вкусами хозяина посылают заказ в магазин.
    На сегодняшний день на рынке имеется масса «умных вещей» -от простейших, вроде автомата управления освещением до сложных комплексных решений для управления жилыми домами и предприятиями. Казалось бы - покупай и используй. Но тяга к творчеству у многих людей неиссякаема, поэтому появляются всё новые и новые самоделки.
    Эта книга призвана помочь начинающим узнать на некоторых примерах азы создания «умных вещей», «умного дома» и «интернета вещей».
    Сегодня одна и та же «умная вещь» часто может использоваться сама по себе или в составе «умного дома» или подключаться к «интернету вещей».
    Поэтому все три концепции - «умных вещей», «умного дома» и «интернета вещей» - слились по сути в одну концепцию, которой хорошо подходит название «малая автоматизация». В дальнейшем мы будем использовать этот термин.
    В современном мире практически все электронные устройства, обладающие хоть сколько-нибудь развитым функционалом, содержат в своём составе управляющий элемент - микроконтроллер или микропроцессор, являющийся «мозгом устройства».
    Почти любое бытовое устройство можно снабдить «интеллектом», который позволит использовать его с большим комфортом для хозяина.
    Но даже если у вас есть идея, как улучшить то или иное устройство, то не всегда удаётся реализовать её на практике: недостаточные знания электроники и программирования служат непреодолимым барьером.
    Чтобы облегчить жизнь тем, у кого есть идеи, но не достаточно знаний в указанных областях, было разработано множество аппаратных и программных средств, позволяющих реализовать достаточно сложные функции без глубоких знаний в электронике и программировании.
    В этой книге описано одно из таких средств: система визуального программирования контроллеров ShloTiny. Эта система работает на популярных WiFi-микроконтроллерах семейства ESP8266 и не требует для своей работы ничего, кроме точки доступа WiFi и WEB-бразера.

7

    Для программирования в системе визуального программирования ShloTiny не требуется глубоко знать какие-то языки программирования: алгоритмы рисуются в виде схем.
    Контроллер семейства ESP8266 с установленной на него системой визуального программирования ShloTiny ниже будет называться сокращённо «контроллер ShloTiny» или просто «ShloTiny».


            Чего нет в этой книге


    Каждая книга имеет ограничения по объёму и количеству затрагиваемых вопросов. Не является исключением и эта книга.
    Предполагается, что читатель знаком с основами электротехники и в общих чертах представляет, что такое резистор, конденсатор, реле, светодиод, транзистор, а также умеет читать простые электронные схемы.
    Если это не так, то читателю рекомендуется обратиться к литературе, ставшей уже классикой изучения электротехники и электроники. Перечислим некоторые их этих бестселлеров.
    Во-первых, это многократно переизданная книга Свореня Рудольфа Анатольевича «Электроника шаг за шагом». На этой книге выросли уже несколько поколений радиолюбителей-самодельщиков, и её по праву можно считать «курсом электроники для самых маленьких». В ней вы найдёте ответы на вопросы, что такое электрическая цепь, как работает реле и транзистор, а также различные варианты практических схем.
    Во-вторых, это книга Отряшенкова Юрия Михайловича «Юный кибернетик», посвящённая автоматам и роботам. Книга издана ещё в 70-е годы XX века, но там есть большая часть, посвящённая истории возникновения автоматов (тогда не было ещё термина «умная вещь») и роботов. Кроме того, там показаны примеры практических схем на реле и транзисторах, которые могут быть собраны на современной элементной базе. Также там есть немало идей разных самодельных автоматов.
    В-третьих, это классический трёхтомник Пауля Хоровиц и Уинфилда Хилла «Искусство схемотехники», ставший библией начинающих инженеров. Он также многократно переиздавался на русском языке. В этом трёхтомнике читатель найдёт массу ответов на вопросы по работе аналоговых и цифровых схем, а также немало практических примеров схем и устройств.
    Замечу, что я назвал только те книги, которые стали классикой, широко доступной как в печатном, так и в электронном виде. На самом деле книг по электронике во много раз больше и вы, при необходимости, без труда найдёте их в сети Интернет.

8

     Кстати, о сети Интернет. Не стесняйтесь задавать вопросы поисковым системам. Особенно, если вопрос конкретный и практический. Например, если вам недостаточно приведённой информации по программированию модулей на базе ESP8266 с помощью утилиты esptool, то просто напишите в поисковой строке браузера «Как пользоваться esptool примеры» и тут же получите более 2000 результатов поиска, где найдёте инструкции и примеры на все случаи жизни. На запрос «Как подключить реле к esp8266» получено более 21 000 результатов поиска. По тексту автор будет отсылать к Интернету по мере необходимости.
     Не стесняйтесь учиться сами - тогда всё у вас получится!

            1. Микроконтроллеры семейства ESP8266 и модули ESP-XX


    Микроконтроллер - это «мозг» современной электроники, в том числе и «умных вещей». Микроконтроллер - это практически законченный компьютер, выполненный в виде одной микросхемы.
    В одном кристалле находятся микропроцессор, память программ, память данных, таймеры, интерфейсы и многое другое. Раньше вместо слова «микроконтроллер» использовался термин ОЭВМ - однокристал-льная электронно-вычислительная машина. Но этот термин очень долго выговаривать, поэтому сейчас чаще говорят просто «микроконтроллер».
    Действительно, на многие микроконтроллеры достаточно подать питание - и он готов к работе.
    Сам по себе микроконтроллер может не очень много. Чтобы его использовать, надо как-то ввести в него данные - например, с помощью кнопки и каким-то образом получить результат - например, с помощью светодиодов или реле. Но об этом ниже.
    Ассортимент микроконтроллеров, предлагаемых современной промышленностью просто огромен, как огромно и различие в цене и возможностях этих микроконтроллеров. Обзор всех особенностей выпускаемых микроконтроллеров выходит далеко за рамки этой книги.
    В качестве основы устройств в этой книге был выбран микроконтроллер семейства ESP8266.
    На базе этого очень дешёвого микроконтроллера выпускаются доступные и дешёвые модули ESP-07, ESP-12 и другие, которые отличаются, в основном, объёмом памяти программ.
    Почему именно это семейство микроконтроллеров было выбрано?
    Во-первых, модули на базе ESP8266 доступны почти в любом магазине радиодеталей, в любом интернет-магазине.
    Во-вторых, цена этих модулей составляет сотни рублей (а в популярном магазине AliExpress - менее 100 руб. за модуль ESP-07). Такая цена делает модули доступными любому желающему.
    В-третьих, для модуля на базе ESP8266 имеется ряд средств разработки, не требующих специальных знаний. Одна из таких бесплатных сред разработки простых «умных устройств» - ShloTiny - описана ниже и используется в наших примерах.
    В-четвёртых, несмотря на низкую цену, модули на базе ESP8266 имеют встроенный интерфейс беспроводной связи WiFi, позволяющий программировать их с помощью браузера (кроме начальной установки программного обеспечения). Позволяют объединять контроллеры в сети,

10

получать команды по локальной сети или сети Интернет, передавать данные другим устройствам (например, компьютерам) по той же локальной сети или сети Интернет. Для модуля, который стоит около 100 руб. - это очень серьёзные возможности.
    Итак, рассмотрим поближе модули на базе ESP8266, показанные на рисунке 1.


Рисунок 1. Модули на базе ESP8266

    Как видим, снаружи модули отличаются только количеством выводов. На самом деле, выводы 9-14 модуля ESP-12 и многих других подобных модулей соединены с встроенной FLASH-памятью и использоваться для ввода-вывода данных без особых ухищрений не могут. Поэтому в наших примерах эти выводы не используются и модули ESP-07, ESP-12 и другие из той же серии можно считать одинаковыми.
    Модули на базе микроконтроллера ESP8266 отличаются количеством встроенной FLASH-памяти. Но так как среда разработки ShloTiny, используемая в наших примерах, использует только 1 Мбайт FLASH-памяти, то эти отличия в наших примерах также не будут заметны. Отличия между модулями проявляются при начальной установке на них программного обеспечения - среди визуальной разработки ShloTiny. Об этом подробно рассказано в Приложении Г «Установка программного обеспечения ShloTiny».
    В дальнейшем модули на базе ESP8266 будут называться ESP-XX, чтобы не делать различий между ними там, где это не требуется.

    I Все модули семейства ESP-XX питаются напряжением от 3.0 до | 3.6 Вольта.

11

     Надо помнить и о том, что на выводы модуля нельзя подавать напряжение, превышающее напряжение питания. Иначе это приведёт к выходу модуля из строя.

    Чтобы модуль семейства ESP-XX включился и начал программу из встроенной FLASH-памяти, недостаточно просто подать на него питание. Также необходимо, чтобы при включении некоторые выводы были соединены с «землей», а на некоторые выводы подавалось напряжение питания. Ниже, на рисунке 2, приведена принципиальная схема, которая позволяет подключить модуль семейства ESP-XX в двух режимах: в режиме работы и режиме программирования.


Рисунок 2. Схема подключения модуля ESP-XX

    Режим работы - это основной режим, когда при включении модуль начинает выполнять программу пользователя из FLASH-памяти.
    Режим программирования - это режим, позволяющий загрузить новую программу пользователя во FLASH-память. Именно в этом режиме производится установка среды разработки ShloTiny на модуль ESP-XX, как это описано в Приложении Г «Установка программного обеспечения ShloTiny». Установка программного обеспечения ShloTiny, как правило, производится один раз, после чего вся работа идёт под управлением среды разработки ShloTiny посредством WEB-браузера.
    Рассмотрим схему на рисунке 2 подробно. Для того, чтобы при включении модуля ESP-XX он заработал и начал выполнять программу пользователя, необходимо, чтобы на выводы RST, EN и GPIOO подавалось напряжение питания Vcc, а вывод GPIO15 должен быть подключён к нулю (общему проводу). Именно такое состояние и показано на рисунке 2, когда не нажата ни одна из кнопок.


12