КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 713023 томов
Объем библиотеки - 1403 Гб.
Всего авторов - 274606
Пользователей - 125091

Новое на форуме

Новое в блогах

Впечатления

Влад и мир про Шенгальц: Черные ножи (Альтернативная история)

Читать не интересно. Стиль написания - тягомотина и небывальщина. Как вы представляете 16 летнего пацана за 180, худого, болезненного, с больным сердцем, недоедающего, работающего по 12 часов в цеху по сборке танков, при этом имеющий силы вставать пораньше и заниматься спортом и тренировкой. Тут и здоровый человек сдохнет. Как всегда автор пишет о чём не имеет представление. Я лично общался с рабочим на заводе Свердлова, производившего

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
Влад и мир про Владимиров: Ирландец 2 (Альтернативная история)

Написано хорошо. Но сама тема не моя. Становление мафиози! Не люблю ворьё. Вор на воре сидит и вором погоняет и о ворах книжки сочиняет! Любой вор всегда себя считает жертвой обстоятельств, мол не сам, а жизнь такая! А жизнь кругом такая, потому, что сам ты такой! С арифметикой у автора тоже всё печально, как и у ГГ. Простая задачка. Есть игроки, сдающие определённую сумму для участия в игре и получающие определённое количество фишек. Если в

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).
DXBCKT про Дамиров: Курсант: Назад в СССР (Детективная фантастика)

Месяца 3-4 назад прочел (а вернее прослушал в аудиоверсии) данную книгу - а руки (прокомментировать ее) все никак не доходили)) Ну а вот на выходных, появилось время - за сим, я наконец-таки сподобился это сделать))

С одной стороны - казалось бы вполне «знакомая и местами изьезженная» тема (чуть не сказал - пластинка)) С другой же, именно нюансы порой позволяют отличить очередной «шаблон», от действительно интересной вещи...

В начале

  подробнее ...

Рейтинг: +2 ( 2 за, 0 против).
DXBCKT про Стариков: Геополитика: Как это делается (Политика и дипломатия)

Вообще-то если честно, то я даже не собирался брать эту книгу... Однако - отсутствие иного выбора и низкая цена (после 3 или 4-го захода в книжный) все таки "сделали свое черное дело" и книга была куплена))

Не собирался же ее брать изначально поскольку (давным давно до этого) после прочтения одной "явно неудавшейся" книги автора, навсегда зарекся это делать... Но потом до меня все-таки дошло что (это все же) не "очередная злободневная" (читай

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
DXBCKT про Москаленко: Малой. Книга 3 (Боевая фантастика)

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

В общем герою (лишь формально вникающему в разные железки и нейросети)

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).

Новые возможности Arduino, ESP, Raspberry Pi в проектах loT [Виктор А. Петин] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Новые возможности

Arduino, ESP,
Raspberry Pi
в проектах loT

• исходные коды скетчей Arduino и ESP из книrи
• исходные коды библиотек Arduino
• исходные коды руtЬоn-скриnтов для проектов
с Raspberry Pi

Виктор Петин

Новые возможности

Arduino, ESP,
Raspberry Pi
в проектах loT

Санкт-Петербург
« БХВ-Петербург»

2022

УДК 004.4
ББК 32.973.26-018.2
П29
П29

ПетинВ.А.
Новые возможности Arduino, ESP, Raspberry Pi в проектах loT. - СПб.:
БХВ-Петербург, 2022. - 320 с.: ил. - (Электроника)
ISBN 978-5-9775-6755-8
Рассмотрено создание простых устройств в рамках концепции Интернета ве­
щей (IoT) на базе традиционных (Arduino Uno) и новых плат Arduino (МКR, Nano 33),
плат ESP и микрокомпьютера Raspbeпy Pi. Приведены примеры подключения плат
с помощью технологий Ethemet, WiFi, GPRS, BLE, LoRa к сети Интернет и другим
устройств�. Описаны протоколы НТТР и MQTT. Рассмотрен обмен данными
с облачными платформами Arduino IoT Cloud, Narodmon, ThingSpeak, Blynk и ()Т­
крытой LoRaWAN-ceтью Тhе Things Network (ТТN).
Большая часть книги посвящена созданию практических проектов: собствен­
ный МQТТ-сервер, табло на матрице для отображения биржевых котировок в ре­
альном времени, GРS-трекер и онлайн-сервис поиска стоянок с использованием
Ян.деке.Карт, сканер штрих-кода с отправкой результатов в облако, IоТ-принтер
для печати курсов валют, бесконтактный измеритель температуры с отправкой
данных в облако, предсказатель погоды на основе данных, поступающих в сервис
ThingSpeak, проекты с элементами машинного обучения на платформе TinyML
и др.
На сайте издательства размещен архив с исходными кодами программ и биб­
лиотек.
Для интересующихся современной электроникой

УДКОО4.4
ББК 32.973.26-018.2

Группа подготовки издания:
Руководитель проекта
Евгений Рыбаков
Зав. редакцией
Людмила Гауль
Редактор
ГригорийДобин
Компьютерная верстка
Ольги Сергиенко
Дизайн обложки
Карины Соловьевой

П�писано в печать 06.07.21.
Формат 70х100 1, 6• Печать офсетная. Усл. печ. л. 25,8.
Тираж 1200 экз. Заказ № 1725.
"БХВ-Петербург". 191036, Санкт-Петербург, Гончарная ул., 20.
Отпечатано с готового оригинал-макета
ООО "Принт-М", 142300, М.О., г. Чехов, ул. Полиrрафистов, д. 1

ISBN 978-5-9775-6755-8

© ООО "БХВ", 2022
Оформление. ООО "БХВ-Петербурr", 2022

Оглавление
Глава 1. Вместо введения: что такое Интернет вещей? .......................................... 7
.Глава 2. Аппаратные платформы для создания устройств
Интернета вещей .......� ................................................................................................... 1О

2.1. Arduino Uno - традиционная плата для моделирования ................................................... 1 О
2.2. Семейство плат Arduino МКR ...............................................................................................12
2.2.1. Arduino МКR1ООО - с поддержкой Wi-Fi .................................................................13
2.2.2. Arduino МКR1010 - с поддержкой Wi-Fi и Bluetooth .............................................16
2.2.3. Arduino МКR GSM 1400 - с поддержкой GSМ-связи ............................................. 19
2.3. Семейство плат Arduino Nano 33...........................................................................................21
2.3.1. Arduino Nano 33 loT - с поддержкой Wi-Fi и Bluetooth BLE ................................. 22
2.3.2. Arduino Nano-33 BLE, Arduino Nano 33 BLE Sence - для создания носимых
устройств с минимальным электропотреблением ...............................................................25
2.4. ESP32 - серия недорогих микроконтроллеров с интегрированными модулями
Wi-Fi и Bluetooth .................................................................................................................... 27
2.5. Raspberry Pi Zero W -полноценный микрокомпьютер с добавлением поддержки
Wi-Fi и Bluetooth ....................................................................................................................30

Глава 3. Организация связи для устройств Интернета вещей ............................ 34

3.1. Подключение к Интернету платы Arduino Uno ....................................................................34
3.1.1. Подключение к Интернету по сетевому кабелю ........................................................34
3.1.2. Подключение к Интернету по Wi-Fi ...........................................................................41
3.2. Подключение по Wi-Fi плат Arduino МКR и Nano 33 loT .................................................. 51
3.2.1. Подключение по Wi-Fi платы Arduino МКRlООО WiFi ............................................51
3.2.2. Подключение по Wi-Fi платы Arduino Nano 33 loT ..................................................55
3.3. Использование сотовой связи для доступа в Интернет устройств на Arduino .................. 58
3.3.1. Arduino Uno и GSМ/GPRS Shield SIM900 ..................................................................59
3.3.2. Подключение к Интернету платы Arduino МКR GSM 1400.....................................63
3.4. Подключение по Wi-Fi платы ESP32 ....................................................................................65
3.5. Подключение к Интернету микрокомпьютера Raspberry Pi Zero W .................................. 70
3.5.1. Установка операционной системы Raspblan .............................................................. 70
3.5.2. Подключение Raspberry Pi Zero W к сети ..................................................................72

4

Оглавление

3.6. Подюпочение устройств Bluetooth Low Energy (BLE) ........................................................ 74
3.6.1. Bluetooth Low Energy (BLE) ........................................................................................ 74
3.6.2. Подюпочение платы Arduino Nano 33 BLE Sence ..................................................... 75
3.6.3. Отправка по BLE данных с датчиков платы Arduino Nano 33 BLE Sence...............77
3.7. ВLЕ-связь Arduino Nano 33 BLE Sence и Raspberry Pi Zero W............................................ 81

Глава 4. Протоколы Интернета вещей ..................................................................... 85

4.1. Использование протокола НТТР для связи устройств loT ................................................. 85
4.2. MQTT - протокол для сетей с низкой пропускной способностью................................... 87
4.2.1. Отправка данных по протоколу MQTT ...................................................................... 88
4.2.2. Получение данных по протоколу MQTT....................................................................92

Глава·s. Облачные платформы для устройств Интернета вещей ...................... 97

5.1. Arduino IoT Cloud ................................... :..............................................................................�97
5.1.1. Регистрация и подюпочение устройств к Arduino loT Cloud.................................... 97
5.1.2. Отправка данных с устройства в Arduino IoT Cloud ............................................... 101
5.1.3. Отправка данных из Arduino IoT Cloud на устройство ........................................... 108
5.2. Сервис «Народный мониторинг» ........................................................................................ 111
5.2.1. Подготовка платы Arduino+WiFi .............................................................................. 111
5.2.2. Подюпочение устройства к сервису «Народный мониторинг» .............................. 113
52.3. Отправка данных датчиков домашней метеостанции на сервис
«Народный мониторинг» ..................................................................................................... 119
5.2.4. Прием на устройстве команд, отправленных из сервиса
«Народный мониторинг» ..................................................................................................... 123
5.2.5. Обработка и исполнение команд, полученных от сервиса
«Народный мониторинг» .....................................................................................................127
5.3. Сервис ThingSpeak ........................................................................................................:....... 13 I
5.3.1. Подготовка устройства loT на плате Arduino Nano 33 loT для подюпочения
к сервису ThingSpeak...................................................................... :..................................... 134
5.3.2. Отправка данных в сервис ThingSpeak по протоколам НТТР GET и POST ......... 138
5.3.3. Отправка данных в сервис ThingSpeak по протоколу MQTT ................................. 141
5.3.4. Добавление виджетов в канал ThingSpeak ............................................................... 144
5.3.5. Преобразование и визуализация данных, поступившщ в ThingSpeak ..................147
5.3.6. Визуализация данных: МАТLАВ Visualization ........................................................ 150
5.3.7. Чтение данных из канала ThingSpeak ....................................................................... 152
5.3.8. Отображение даннь�х из канала ThingSpeak на дисплее
светодиодной матрицы .........................................................................................................156
5.4. Проект Blynk: управление с планшета ................................................................................ lбtl
5.4.1. Начало работы ............................................................................................................ 161
5.4.2. Создание интерфейса на планшете. Добавление виджетов .................................... 163
Виджет Button............................................................................................................. 164
Виджеты Slider и Vertical Slider................................................................................ 165
Виджет Value Display................................................................................................. 166
Виджет Gauge............................................................................................................. 167
Виджет Timer .............................................................................................................. 168
Виджет Eventor........................................................................................................... 169
Виджет Webhook ........................................................................................................169
Виджет SuperChart..................................................................................................... 172
5.4.3. Создание скетчей на Arduino для устройства loT Blynk ......................................... 173

Оглав(lенt.iе

5

5.5. The Things Network (ТТN)-открытая LoRaWAN сеть ................................................... 181
5.5.1. Шлюз The Things IndoorGateway...............................................................................181
Активащm ШJПОза .......................................................................................................182
Подключение к сервису The Things Network ...........................................................183
5.5.2. Регистращm устройства на основе платы The Things Uno в сервисе ТТN ............ 186
5.5.3. Отправка данных в сервис The Things Network .......................................................191

Глава 6. Проекты Интернета вещей ........................................................................ 192

6.1. Подключение устройств loT к серверу MQTT на Raspberry Pi ........................................ 192
6.1.1. Создание сервера MQTT на Raspberry Pi Zero W ....................................................192
6.1.2. Создание устройства IoT для отправки данных на МQТТ-сервер
на Raspberry Pi .................................................................................................... : ................. 195
6.1.3. Создание устройства IoT для получения данных от МQТТ-сервера
на Raspberry Pi ...................................................................................................... :............... 200
6.2. Табло на матрице 32х64 для отображения биржевых котировок
в реальном времени............................................................ : ....................... , ......................... 203
6.2.1. RGВ-матрица НUВ75 .................................................................................................203
6.2.2. Драйвер RGВ-матриц для Raspberry Pi..................................................................... 205
6.2.3. Установка на Raspberry Pi программного обеспечения для работы
с RGВ-матрицей ................................................................................................................... 206
. 6.2.4. Написание скрипта на языке Python ......................................................................... 207
,6.3. МQТТ-чат для нескольких устройств IoT ..........................................................................214
6.3.1. Создание IоТ-устройства на микроконтроллере ESP32 и дисплее Nextion ..........214
6.3.2. Создание интерфейса пользователя на дисплее Nextion ......................................... 214
6.3.3. Получение данных, поступающих с дисплея Nextion, и отправка данных
на дисплей ..... : .......................................................................................................................217
6.3.4. Отправка и получение данных с МQТТ-сервера ..................................................... 222
6.4. Получение и печать курса ватот на термопринтере в проекте IoT ................................. 424
6.5. GРS-трекер и онлайн-сервис поиска стоянок.....................................................................231
6.5.1. Подкmочение GРS-модуля к плате Arduino ............................................................. 231
6.5.2. Отправка данных по GPRS на сервер ....................................................................... 234
6.5.3. Создание веб-страницы с использованием API Яндекс.Карт ................................. 242
6.6. lоТ-сканер штрих-кодов с отправкой результатов в облако ............................................. 246
6.6.1. Сканер штрих-кодов GM65 ....................................................................................... 246
6.6.2. Подключение и настройка сканера штрих-кодов GM65 ..........................................247
6.6.3. Подкmочение дисплея Nextion .................................................................................. 250
6.6.4. Получение данных на сервере с занесением в базу данных ...................................258
6.7. Бесконтактное измерение температуры персонала с отправкой данных в облако
LoRaWAN .............................................................................................................................260
.6.7.1. Инфракрасный датчик MLX90614 ............................................................................ 261
6.7.2. Подкmочение к плате The Things Uno модуля считывателя RFШ RC522 ............. 263
6.7.3. Подключение к плате The Things Uno дисплея и реле ............... ; ............................267
6.7.4. Отправка данных из платы The Things Uno по сети LoRaWAN в службу
, , The Things Network и перенаправление их на сторонний сервер ..................................... 272
6.7.5. Создание базы данных сотрудников на сайте компании для сбора ежедневных
показаний температуры на входе ........................................................................................ 277
6.7.6. Страница для удаленного просмотра данных о температуре тела
сотрудников .......................................................................................................................... 279

б

Оглавление

6.8. «Умная гантеля» для автоматического подсчета числа упражнений
с использованием TinyML и Edge Impulse .........................................................................281
. 6.8.1. Установка программного обеспечения ..................................................................... 282
6.8.2. Сбор данных, тренировка и создание модели МL на платформе Edge Impulse ....... 285
Сбор данных ...... :........................................................................................................286
6.8.3. Создание скетча для отправки данных с платы Arduino Nano 33 BLE Sense
по BLE ................................................................................................................................... 293
6.8.4. Создание программы для смартфона............................................ :........................... 295
6.9. Предсказатель погоды на основе данных, поступающих в сервис ThingSpeak .............. 301
6.9.1. Отправка данных атмосферного давления в сервис ТhingSpeak ............................302
6.9.2. Преобразование данных в МАТLАВ ........................................................................306
6.9.3. Добавление виджета ...................................................................................................311

Заключение ................................................................................................................... 313
Приложение. Описание электронного архива .......................................................;.314
Предметный указатель .............................................................................................. 315

ГЛАВА

1

Вместо введения:
что такое Интернет вещей?
Интернет вещей - это следующий уровень развития устройств, которые могут
объединяться в сеть через Интернет с помощью беспроводных технологий. Они
обмениваются данными в режиме реального времени как напрямую, так и через
удаленные онлайн-серверы.
Эги устройства способны работать в автоматическом режиме, но пользователь мо­
жет управлять ими, в том числе дистанционно. Вот самое простое объяснение того,
что такое Интернет вещей, - это сеть, в которой общаются между собой не поль­
зователи, а устройства.
Если раньше к Интернету подключались компьютеры, ноутбуки, смартфоны и
планшеты, то теперь к нему можно подсоединить практически любое устройство:
смарт-часы, «умные» бытовые приборы, дата-центры и даже «умную» одежду вплоть до кроссовок и носков.
Впервые выражение «Интернет вещей» (lntemet of Things, или IoT) применил аме­
риканский исследователь Кевин Эштон. Выступая перед руководством компании
Procter&GamЬle, он рассказал о том, как изменятся логистические схемы внутри
компании после массового внедрения радиочастотных меток. Но прошло всего не­
сколько лет, и «Интернет вещей» из бизнес�концепции превратился в повседнев­
ную реальность, доступную каждому.
В конце 2000-х годов появилась организация IPSO Alliance. Она нацелена на разра­
ботку и внедрение решений, связанных с Интернетом вещей. В 2011 году иссле­
довательская компания Gartner включила IoT в список наиболее перспективных
развивающихся технологий. А в 2012 году об IoT заговорил весь мир.
Интернет вещей - это не только множество различных приборов и датчиков, объ­
единенных между собой проводными и беспроводными каналами связи и подклю­
ченных к сети Интернет, а тесная интеграция реального и виртуального миров,
в среде которой общение осуществляется между людьми и устройствами.
Решения на базе Интернета вещей становятся сейчас все более востребованными
именно потому, что дают поставщикам «умных» решений возможность получать
дополнительную прибьmь, - «умное» поведение может дать существенной при­
рост «полезности», потребительской стоимости устройства или системьt. Так, вен-

8

Глава 1

тилятор, который сам выключается по достижении нужной температуры, экономит
владельцу электроэнергию и поэтому может стоить для него дороже. А вентилятор,
который еще и видит, когда в помещении есть люди, а когда нет,- ценен еще
больше.
Но как техника может стать «умной»? Во-первых, за счет, собственно, своей конст­
рукции- эта.конструкция может быть такой, что поведение системы будет выгля­
деть разумным.
Во-вторых, за счет «интеллектуализации» - оснащения системы устройствами
сбора информации, ее обработки и принятия решений. Такой подход позволяет
обеспечить достаточно сложное и «разумное» поведение гораздо более простыми
способами, чем за счет создания соответствующей конструкции.
Наконец, третий путь- поведение системы становится «разумным» вследствие
того, что она взаимодействует с другими системами. Так, для экономии энерrии
системе отопления требуется краткосрочный прогноз погоды. Этот прогноз можно
получить, установив соответствующие датчики и систему обработки информации
с них, способную прогнозировать погоду (мини-метеостанцию), а можно просто
запросить погоду в Интернете. И в том и в другом случае поведение системы ото­
пления будет выглядеть разумным.
Важно, что в последнем примере, с точки зрения заказчика, система ведет себя
практически одинаково - соответственно, заказчик готов заплатить за эту функ­
циональность одну и ту же цену. Однако для поставщика такой системы организа­
ция подключения ее к Интернету будет стоить значительно дешевле, чем разработ­
ка и создание интеллектуальной метеостанции.
Благодаря интеллекту и коннективности у оборудования появляется новый набор
функций. Их можно разделить на четыре группы:
□ мониторинг;
□ управление;
□ оптимизация;
□ автономность.
Каждая функция, важная и сама по себе, оказывается своего рода ступенькой для
следующего уровня. Так, функция мониторинга служит основой для управления,
оптимизации и автономности техники. Компания может выбирать такой набор
функций, чтобы ее продукция была ма�симально полезной для потребителя, и тем самым укреплять свою конкурентную позицию.
Возьмем, к примеру, автоматическую теплицу, которая самостоятельно осуществ­
ляет полив, поддержание нужной температуры, уровня освещенности и пр. Такая
теплица окажется востребованной теми, кто не хочет тратить много времени на
уход за растениями, а также может не иметь для этого возможности в периоды дли­
тельного отсутствия: командировок, отпуска и т. п.
Какую проблему клиента решит функция мониторинга? Прежде всего- устранит
беспокойство насчет того, все ли в порядке с растениями во время его отсутствия:

Вместо введения: что такое Интернет вещей?

9

есть ли в системе вода, не выключалось ли электричество, может ли система венти­
ляции обеспечить нужную темпераrуру, если в помещении стало слишком жарко,
и др. Клиент наверняка заплатит больше, если предоставить ему возможность
в любой момент знать, каковы условия в его теплице. Таким образом, продажная
стоимость теплицы с функцией удаленного мониторинга параметров может возрас­
ти существенно, в то время как ее реализация для производителя будет достаточно
простой. В результате применение технологии Интернета вещей позволит произво­
дителю получить дополнительную прибыль.
Еще выше потребительская стоимость будет у той же теплицы, если добавить
функцию управления,- чтобы пользователь мог удаленно не только получать ин­
формацию об условиях в теплице, но и менять их по своему усмотрению.
Наверняка в теплице подогрев включается автоматически, если темпераrура падает
ниже заданного предела, но, возможно, не стоит его включать, если знать, что по
прогнозу погоды совсем скоро ожидается потепление? Таким образом, функция
оптимизации за счет использования дополнительной информации позволить сэко­
номить деньги на содержание теплицы и получить урожаи с меньшими за-rратами.
Наконец, средствами Интернета вещей несложно начать следить за количеством
расходуемых материалов- к примеру, удобрений,- и автоматизировать их заказ
либо контролировать состояние элементов, требующих замены или обслуживания:
насосов, вентиляторов, нагревающих элементов, организовав таким образом само­
диагностику и самообслуживание теплицы вплоть до полной ее автономности.
В четырех последующих главах этой книги мы познакомимся с принципами рабо­
ты, а также аппаратной и программной составляющими устройств для Интернета
вещей на базе популярных плат Arduino, ESP и микрокомпьютера Raspberry Pi.
Чтобы Arduino, ESP и Raspberry Pi стали полноценными устройствами для Интер­
нета вещей, их надо оснастить необходимыми датчиками и исполнительными уст­
ройствами и предоставить им доступ к сети Интернет. Соответственно, мы рас­
смотрим рабоrу Arduino, ESP и Raspberry Pi с такими датчиками и устройствами, а
также организацию досrупа их в Интернет с дальнейшей отправкой данных в из­
вестные облачные сервисы и получением их отrуда. А последняя, шестая глава
книги посвящена примерам создания различных полезных проектов Интернета
вещей: от табло для отображения биржевых котировок до предсказателя погоды,
использующего данные облачного сервиса ThingSpeak.
Книга сопровождается электронным архивом, содержащим исходный код боль­
шинства рассмотренных примеров и проектов,.используемые в проектах необходи­
мые библиотеки, а также техническую документацию на задействованные в проек­
тах устройства и датчики (см. приложение). Этот электронный архив можно ска­
чать с FТР-сервера издательства «БХВ» по ссылке ftp://ftp.bhv.ru/9785977567558.zip,
.а также со страницы книги на сайте https://bhv.ru.

ГЛАВА

2

Аппаратные платформы.
для создания устройств
Интернета вещей
В этой главе мы рассмотрим аппаратные средства, которые можно использовать
для создания устройств IoT, - доступные и популярные платформы Arduino, ESP
и Raspberry Pi.

2·.1. Arduino Uno - традиционная плата
для моделирования
Arduino - самая популярная платформа любительской и образовательной электро­
ники и робототехники. Скорость проектирования и разработки на Arduino намного
выше, чем это можно сделать на основе других микроконтроллеров, а обусловлено
это простой, но в то же время хорошо проработанной архитектурой этой платфор­
мы. Невысокая цена, легкость программирования, доступная новичкам, большое
количество плат расширения, а также программных наработок в виде библиотек
позволяют сосредоточиться не на написании громоздкого кода, а на творчестве и
фантазии.
Arduino Uno (рис. 2.1) - флагманская платформа семейства Arduino. Плата Arduino
Uno выполнена на микроконтроллере ATmega328P с тактовой частотой 16 МГц. На
плате предусмотрены 20 портов входа/выхода для подключения внешних уст­
ройств - например, плат расширения или датчиков.
В настоящее время внимание сообщества Arduino в большей степени направлено на
Интернет вещей. А для Интернета вещей необходим доступ микроконтроллера
к сетям на основе Wi-Fi, Bluetooth или Ethemet. Сама плата Arduino Uno такими
возможностями не обладает. Но можно использовать эту плату в связке с другими
платами или шw,дами (платами расширения Arduino). Кроме того, разработчики
создают и другие платы на основе и в форм-факторе Arduino Uno, добавляя в ·них
дополнительные возможности, позволяющие использовать плату в качестве уст­
ройства Интернета вещей. Примером такой разработки, пригодной для создания
проектов, требующих наличия в плате Arduino возможностей Wi-Fi, может служить

Аппаратные платформы для создания устройств Интернета вещей

11

плата Arduino+WiFi от компании RobotDyn (рис. 2.2), в которой интегрированы
плата Arduino Uno R3 и модуль Wi-Fi ESP8266. Оба эти компонента платы могут
работать вместе или каждый в отдельности.

Рис. 2.1. Плата Arduino Uno

Рис. 2.2. Плата Arduino+WiFi от компании RobotDyn

К9мпания Things Network предоставляет совместимые с экосистемой Arduino аппа­
Р�rные· средства, которые позволяют легко развертывать сети LoRaWAN (см. гла­
. ву 5). В настоящее время компания продвигает совместимую с Arduino плату The
Thiµgs Uno (рис. 2.3).

Глава 2

12

Рис. 2.3. Плата The Things Uno

Упомянутые здесь решения не единственные. И они показывают, что даже такую
простую плату, как Arduino Uno, вполне можно использовать при создании проек­
тов Интернета вещей.

2.2. Семейство плат Arduino MKR
Классический форм-фактор Arduino лег в основу всей экосистемы Arduino, но он
постепенно отмирает. Unо-подобные платы, которые стали стандартом де-факто
в мире любителей радиоэлектроники, медленно уходят на пенсию. Учитывая рост
интереса сообщества Arduino к Интернету вещей, производители современных плат
перешли к использованmо форм-фактора МКR. Серия плат МКR (рис. 2.4) предосArdulno MKR Fa.mily
MKRZero

Wi61010

(WiFi).

GSM 1400

(GSM)

WAN 1300

FOX 1200

(LoR;a)

(SigFoxJ

NB 1500

(NВ-loT)

Рис. 2.4. Платы Arduino серии MKR

13

Аппаратные платформы для создания устройств Интернета вещей

тавляет различные варианты подключения к сети и управления питанием, что по­
буждает людей использовать их в качестве единого стандартного формата для про­
ектов IoT. Платы МКR могут повысить уровень стандартизации процесса проекти­
рованйя, облегчая жизнь разработчика, собирающегося продавать свой конечный
продукт на рынке.
Как и для плат классического форм-фактора Arduino, для плат MKR также выпус­
кается множество шилдов (плат расширения), добавляющих к ним дополнительную
функциональность. Некоторые из них показаны на рис. 2.5.
Ml(RGPS
J.ltietd

MKRRGB.
iW td

j,.{fJJ
---�i �>.

.

..
�-

,

11

,

• 1"

-

,'\

'1

·' �1 t ! 1

�:

-

MKRTHERM
@&d

MКRENV
shill'td

Рис. 2.5. Шилды для плат Arduino серии MKR

2.2.1. Arduino MKR1000 - с поддержкой Wi-Fi
Плата Arduino МКRlООО WiFi (рис. 2.6) предназначена для тех, кому нужно прак­
тичное, компактное и недорогое решение, сочетающее в себе функционал Wi-Fi и
невысокие требования к знаниям в сетевых технологиях.
Плата основана на однокристальной системе (SoC) Atmel А TSAМW25, которая
является частью семейства SmartConnect беспроводных устройств Atmel, еоздан­
ных специально для проектов в области Интернета вещей. Чип А TSAMW25 состо­
ит из трех основных блоков:
□ 32-битноrо АRМ-микроконтроллера SAMD21 на ядре Cortex-M0+ с низким
энергопотреблением;
□ чипа Wi-Fi WINC1500 с диапазоном 2,5 ГГц, IEEE, 802.11 Ь/g/n и низким энергопотреблением;
□ крипто-чипа ЕСС508 (для защиты передаваемых данных).
В систему А TSAMW25 также встроена одна антенна, поддерживающая один канал
данных и выполненная в форме печатной платы. Кроме того, дизайн платы
МКRlООО предусматривает цепь, позволяющую заряжать плату от литий-ионной
батареи или заряжать эту батарею при подаче на плату напряжения от внешнего
5-вольтовоrо источника питания. Переключение с одного источника питания на

Глава 2

14

другой выполняется автоматически. Также ЩIЯ питания платы можно использовать
напряжение 5 вольт от USB-nopтa.
WiFi-модуль MКRI ООО поддерживает сертификатSНА-256.
Плата Arduino MКRIOOO WiFi представляет собой USВ-устройство, способное
быть USВ-хостом и работать в режиме full-speed.

Рис. 2.6. Плата Arduino MKR1000 WiFi
ВНИМАНИЕ/

В отличие от большинства плат Arduino/Genuino, MKR1000 работает на напряжении
3,3 вольта. То есть максимальное напряжение, к которому терпимы 1/0 контактъI
MKR1000, - это 3,3 вольта, и если его превысить, можно повредить плату. Хотя
MKR1000 может коммуницировать с 5-вольтовыми цифровыми устройствами, но для
такой двунаправленной коммуникации нужно правильно настроить переключение
вольтовой логики.

Назначение контактов платы Arduino МКRlООО WiFi показано на рис. 2.7.
Технические характеристики платы Arduino MКRlOOO WiFi представлены в
табл. 2.1.
Таблица 2.1. Технические характеристики платы Arduino MKR1000 WiFi
Микроконтроллер

ARM MCU SAMD21 Cortex-M0+, 32 бита,
низкое энергопотребление

WI-Fi

чип WINC1500 с диапазоном 2,5 ГГц,
IEEE, 802.11 Ыg/п и низким энергопотреблением

Питание платы (USBNIN), В

5

Подключение батареи

Li-lon 3, 7 В, минимальная емкость 700 мдч

Рабочее напряжение, В

3,3

Цифровые 1/0 контакrы

8

Аппаратные платформы для создания устройств Интернета вещей

15

Таблица 2.1 (окончание)
Цифровые 1/0 контакты
с поддержкой ШИМ

12 (О, 1, 2, 3, 4, 5, 6, 7, 8, 10, АЗ или 18, А4 или 19)

UART

1

SPI

1

с

1

1

2

Входные аналоrовые контакты

7 (АЦП 8/10/12 бит)

Выходные аналоrовь1е контакть1

1 (ЦАП 10 бит)

Внеwние прерывания

8 (0, 1, 4, 5, 6, 7, 8, А1 или 16, А2 или 17)

Максимальная сила тока
на один 1/0 контакт, мА

7

Flаsh-память, Кбайт

256

SRAM, Кбайт

32

EEPR0M

нет

Тактовая частота

32,768 КГц (RTC), 48 МГц

Встроенный светодиод (LED_BUILTIN)

Контакт 6

Размер, мм

61,51125

Вес, r

32

мс1наз11хзоЕN

M►ii·iM

:l·t+

..

СШ1

св

CDI
СИ1

1118Mtiti¼it
IШIM;titIO
M•ifMIIZDW1ЭMt1fD
Ш!IMФW¾Jt
ВDI.FB•l№I
ФМВШ1Мй8tW111
•: IШIIП4iiмt
•MIШI
•. 1Z'1Ж1

Рис. 2.7. Назначение контактов платы Arduino MKR1000 WiFi

16

Глава 2

Если вы хотите подключить к MKRl000 батарею, то вам понадобится батарея,
имеющая 2-контактный мама-коннектор типа JST РНR2. Li-Ion батареи заряжены
до 4,2 В при помощи тока, который составляет, как правило, половину от номи­
нальной емкости. В плату Arduino MКRl000 WiFi встроен специальный чип, кото­
рый уже заряжен на 350 мА. Это значит, что минимальная емкость Li-Ion батареи
должна быть 700 мАч. Батарейные элементы с меньшей емкостью могут перегреть­
ся, наполниться газами и взорваться, тем самым вызвав возгорание устройЪтва.
Батареи с большей емкостью будут дольше заряжаться, но не сломаются и не пере­
греются. Чип запрограммирован на 4-часовую зарядку, после чего он автоматиче­
ски переходит в р�жим ожидания.
Светодиод CНARGE_STAT управляется зарядным чипом, который отслеживает
ток, идущий от батареи при зарядке. Как правило, он загорается, когда плата пита­
ется от USB или VIN, а чип начинает заряжать Li-Ion батарею, подключенную
к коннектору JST.
Встроенный светодиод на плате Arduino MKRl000 WiFi подключен к цифровому
контак,у D6, а не к D13, как на других платах Arduino.

2.2.2. Arduino MKR1010c пс;»ддержкой Wi-Fi и Bluetooth
Плата Arduino МКR Wi-Fi 1010 (рис. 2.8)
MJ(R.1000, оснащенная модулем u-Ыох ESP32.

это усовершенствованная плата

Рис. 2.8. Плата Arduino MKR Wi-Fi 101 О

Мозгом платы Arduino МКR Wi-Fi 1010 является 32-разрядный микроконтроллер
фирмы Microchip (Atmel) - АTSAМD2lG18 с вычислительном ядром АRМ Cortex
МО. За беспроводную связь отвечает модуль u-Ыох NINA-Wl02 со встроенным
чипом ESP32 для обмена данными в диапазоне 2,4 ГГц по Wi-Fi и Bluetooth. Регу­
лировка выходной мощности обеспечивает оптимальное соотношение между даль-

Аппаратные платформы для создания устройств Интернета вещей

17

ностью связи, скоростью передачи данных и энергопотреблением. Коммуникаци­
онный чипсет платы Arduino МКR Wi-Fi 1010 может быть клиентом и хост-уст­
ройством Bluetooth и BLE.
Для защиты передаваемых данных используется криmо-чип ЕСС508.
Разъем micro-USB предназначен для прошивки платформы Arduino МО с помощью
компьютера. На плате расположен JST РН-разъем (2 pin) для подключения внеш­
них Li-Pol и Li-Ion аккумуляторов.
При одновременном питании платформы от USB и аккумулятора батарея заряжает­
ся через контролер заряда BQ24 l 95L до 4,2 В, светодиод индикации питания ON
горит, светодиод индикации заряда батареи CНRG горит.
Линейный понижающий регулятор напряжения АР7215-33 с выходом 3,3 В и мак­
симальным выходным током 600 мА обеспечивает питание микроконтроллера.
На платформе предусмотрен JST SН-разъем (5 pin) для подключения дополнитель­
ных модулей по интерфейсу РС.
Контакты 2(SСК/ВСLК), 3(WS/LRCLК/FS) и A6(SD/SDATA/SDIN/SDOUT) ис­
пользуются для передачи и приема цифрового звука с другими аудиоустройствами.
ВНИМАНИЕ!

в· отличие от большинства плат Arduino/Genuino, MKR1010 работает на напряжении
3,3 вольта. То есть максимальное напряжение, к которому терпимы 1/0 контакты
MKR1010- это 3,3 вольта, и если его превысить, можно повредить плату. Хотя
MKR1010 может коммуницировать с 5-вольтовыми цифровыми устройствами, но для
такой двунаправленной коммуникации нужно правильно настроить переключение
вольтовой логики.
Назначение контактов платы Arduino МКR Wi-Fi 1010 показано на рис. 2.9.
Технические характеристики платы Arduino МКR WiFi 1010 представлены
в табл. 2.2.
Таблица 2.2. Технические характеристики платы Arduino MKR Wi-Fi 1010
Микроконтроллер

ARM MCU SAMD21 Cor1ex-M0+, 32 бита,
низкое энергопотребление

Wi-Fi и Bluetooth

u-Ыох NINA-W102

Питание платы (USBNIN), В

5--6

Подключение батареи

Li-ion 3,7 В, минимальная емкость 1024 мАч

Рабочее напряжение, В

3,3

Цифровые 1/0 контакты

8

Цифровые 1/0 контакты
слоддержкой ШИМ

13 (О, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, АЗ или 18, А4 или 19)

UART

1

SPI

1

с

1

1

2

Глава 2

18

Таблица 2.2 (окончание)
Входные аналоrов1о1е контакт�.�

7 (АЦП 8/10/12 бит)

В1о1ходн1о1е аналоrов1о1е ,сонтакт1о1

1 (ЦАП 1О бит)

Внеwние прер1о1вания

8 (0, 1, 4, 5, 6, 7, 8, А1 ИЛИ 16, А2 ИЛИ 17)

Максимальная сила тока
на один 1/0 контакт,мА

7

Flаsh-память, Кбайт

256

SRAM, �байт

32

EEPROM

нет

Тактовая частота

32,768 КГц (RTC), 48 МГц

Встроенн1о1й светодиод
(LED_BUILTIN)

Контакт 6

USB

Полноскоростное USВ-устройство и встроенный хает

Размер, мм

61,51125

Вес,r

32



jtJ,


..

M+iiODM ·-�
.,

ав

СШ!1
CDDI

,,

Рис. 2.9. Назначение контактов платы Arduino MKR Wi-Fi 101О

Аппаратные платформы для создания устройств Интернета вещей

19

2.2.3. Arduino MKR GSM 1400 с подцержкой GSМ-связи
Плата Arduino МКR GSM 1400 (рис. 2.10) была разработана, чтобы предложить
практическое и экономически эффективное решение для конструкторов-любителей
с минимальным опытом работы в сети, желающих добавить GSМ-связь к своим
проектам.

Рис. 2.10. Плата Arduino MKR GSM 1400

Мозгом платы Arduino МКR GSM 1400 является 32-разрядный микроконтроллер
фирмы Microchip (Atmel)-ATSAМD21G18 с вычислительном ядром АRМ Cortex
МО. Модуль u-Ыох SARA-U201 обеспечивает сотовую связь 3G/2G с поддержкой
UMTS/НSPA и GSМ/GPRS. Поддержка стандарта ЗG обеспечивает входящую ско­
рость передачи данных до 7,2 Мбит/с и исходящую до 5,76 Мбит/с. Дпя пользова­
ния сотовой связью понадобится SIМ-карта формата Nano SIM, которая устанавли­
вается с обратной стороны платы. В зоне слабого приема нербходимо использовать
дополнительную антенну усиления GSМ-сигнала, которая поДI(JJЮчается через
разъем U.FL.
Разъем micro-USB предназначен для прошивки платформы Arduino МО с помощью
компьютера. На плате расположен JST РН-разъем (2 pin) для подключения внешних Li-Pol и Li-Ion аккумуляторов.
При одновременном питании платформы от USB и аккумулятора батарея заряжает­
ся через контроллер заряда BQ24195L до 4,2 В, светодиод индикации питания ON
горит, светодиод индикации заряда батареи CНRG горит.
Линейный понижающий регулятор напряжения АР7215-33 с выходом 3,3 В и мак­
симальным выходным током 600 мА обеспечивает питание микроконтроллера.

Глава 2

20

Во время сотовых передач максимальный ток, потребляемый платой, будет превы­
шать 500 мА. Эrо сверх того, что может быть получено с помощью стандартного
USВ-порта. Поэтому при питании платы от USB обязательно нужно подключить
к плате Li-Po батарею емкостью не менее 1500 мАч - ток, обеспечиваемый USВ­
портом, будет дополнен батареей. При питании платы с помощью VIN требуется
источник питания 5 В не менее 2 А.
На платформе предусмотрен JST SН-разъем (5 pin) для подключения дополнитель­
ных модулей по интерфейсу РС.
ВНИМАНИЕ/
В отличие от большинства плат Arduino/Genuino, MKR GSM 1400 работает на напря­
жении 3,3 вольта. То есть максимальное напряжение, к которому терпимы 1/0 контак­
ты MKR GSM 1400, - это 3,3 вольта, и если его превысить, можно повредить плату.
Хотя MKR GSM 1400 может коммуницировать с 5-вольтовыми цифровыми устройст­
вами, но для такой двунаправленной коммуникации нужно правильно настроить пере­
ключение вольтовой логики.

Назначение контактов платы Ar-С1'8

Рис. 2.11. Назначение контактов платы Arduino MKR GSM 1400

Аппаратные платформы для создания устройств Интернета вещей

21

Технические характеристики маты Arduino МКR GSM 1400 представлены в табл. 2.3.
Таблица 2.3. Технические характеристики платы Arduino MKR GSM 1400
Микроконтроллер

ARM MCU SAMD21 Cortex-M0+, 32 бита,
низкое энергопотребление

Модуль сотовой связи

u-Ыох SARA-U201

Размер SIМ-карты

Nano SIM

Стандарты связи

ЗG UMTS/HSPA и 2G GSM/GPRS

Несущие частоты, МГц

850/900/1800/1900/2100

Максимальная входящая скорость, Мбит/с

7,2

Максимальная исходящая скорость, Мбит/с

5,76

Питание платы (USBNIN),

в

5--6

Подключение батареи

Li-ion 3,7 В, минимальная емкость
1500 мАч

Рабочее напряжение, В

3,3

Цифровые 1/0 контакты

8

Цифровые 1/0 контакты с поддержкой ШИМ

13(0, 1,2,3,4,5,6, 7, 8,10,12,
АЗ или 18, А4 или 19)

UART

1

SPI

1.

с

1

I

2

Входные аналоговые контакты

7(АЦП 8/10/12 бит)

Выходные аналоговые контакты

1(ЦАП 10 бит)

Внешние прерывания

8(О, 1,4, 5,6, 7, 8,А1 или 16, А2 или 17)

Максимальная сила тока на один 1/0 контакт, мА

7

Flаsh-память, Кбайт

256

SRAM, Кбайт

32

EEPR0M

нет

Тактовая частота

32,768 КГц(RTC),48 МГц

Встроенный светодиод (LED_BUILTIN)

Контакт 6

Размер, мм

68х25

Вес;г

32

2.3. Семейство плат Arduino Nano 33
В 2019 году Arduino запустило серию мат Nano нового поколения. Платы имеют
тот же размер, что и оригинальные платы Nano, но оснащены новыми процессора­
ми и обладают более низким ;энергопотреблением. В семейство входят маты

22

Глава 2

Arduino Nano Every, Arduino Nano 33 IoT, Arduino Nano 33 BLE и Arduino Nano 33
BLE Sense (рис. 2.12).
Оригинальные платы Arduino Nano были меньше других плат Arduino, но не де­
шевле. С характеристиками, аналогичными платам Uno, платы Nano представляли
собой просто классические платы Uno с классическим форм-фактором. И хотя но­
вые платы занимают в схеме такое же место, что и оригинальные платы Nano, они
тем не менее от ор1:1гинальных плат немного отличаются, поскольку занимаемое
место и форм-фактор - это не одно и то же.

Рис. 2.12. Новое семейство Arduino Nano (слева направо):
Nano Every, Nano 33 loT, Nano 33 BLE и Nano 33 BLE Sense

Существенная разница здесь заключается в том, что, в отличие от оригинальных
плат Nano, новые платы Nano имеют форм-фактор с краевыми полуотверстиями,
что позволяет припаять их непосредственно к другой печатной плате. Так что пла­
ты нового семейства Nano на самом деле предназначены не столько для самостоятельной работы, сколько для поверхностного мо1Пажа в виде модулей.
Далее мы рассмотри� платы Arduino Nano 33, предназначенные для создания уст­
ройств IoT.

2.3.1. Arduino Nano 33 loTc подцержкой Wi-Fi и Bluetooth BLE
Плата Arduino Nano 33 loT (рис. 2.13) является простым и дешевым решением для
внедрения существующих, а также создания новых, устройств в системы IoT. Эта
небольшая, надежная и мощная плата имеет подключение Wi-Fi и_ Bluetooth,1 'чтo
в сочетании с архитектурой с низким энергопотреблением делает ее практичным:
и экономически эффективным решением для ваших проектов.

Аппаратные платформы для создания устройств Интернета вещей

23

Рис. 2.13. Плата Arduino Nano 33 loT

Мозгом платы Arduino Nano 33 loT является 32-разрядный микроконтроллер фир­
мьi Microchip (Atmel) - АTSAМD21G18 с вычислительном ядром АRМ Cortex МО.
За беспроводную связь отвечает модуль u-Ыох NINA-W102 со встроенным чипом
ESP32. Радиомодуль обеспечивает поддержку Wi-Fi 802.11Ыg/n в диапазоне ISM
2,4 ГГц и Bluetooth BLE 4.� (Bluetooth BR/EDR и Bluetooth с низким энергопотреб­
лением). Криmочип АТЕСС608А хранит криmографические ключи в аппаратном
обеспечении, гарантируя очень высокий уровень безопасности для этого класса
продуктов.
6-осевая система инерциальной ориентации (IМU) - блок инерциальных датчиков
LSM6DSL iNEMO фирмы STMicroelectronics с 3D акселерометром и 3D гироско­
пом и управлением через шину 12С.
Импульсный понижающий регулятор напряжения МРМ3610 обеспечивает питание
микроконтроллера и другой логики платы при подключении ее через пин VIN.
Диапазон входного напряжения от 5 до 21 В. Выходное напряжение 3,3 В с максимальным выходным током 1,2 А.
Плата может быть использована либо в макете.(при монтаже штыревых разъемов),
либо 1' качестве SМТ-модуля, будучи непосредственно припаянной через зубчатые
площадки.
ВНИМАНИЕ/
В отличие от большинства плат Arduino/Genuino, Arduino Nапо 33 loT работает на на­
пряжении 3,3 вольта. То есть максимальное напряжение, .к которому терпимы 1/0 кон­
такты Arduino Nano 33 loT, - это 3,3 вольта, и если его превысить, можно повредить
плату. Хотя Arduino Nano 33 loT может коммуницировать с 5-вольтовыми цифровыми
устройствами, но для такой двунаправленной коммуникации нужно правильно нартро­
ить переключение вольтовой логики.

Назн.ачение контактов платы Arduino Nano 33 IoT показано на рис. 2.14.
Технические характеристики платы Arduino Arduino Nano 33 IoT представлены
в табл. 2.4.

Глава 2

24

\iю�oko!

Рис. 2.14. Назначение контактов платы Arduino Nano 33 loT

Таблица 2.4. Технические характеристики платы Arduino Nano 33 /оТ
Микроконтроллер

ARM MCU SAMD21 Cortex-MO+, 32 бита,
_низкое энергопотребление

Модуль сотовой СВRЗИ

u-Ыох NINA-W102

nитание платы VIN, В

5-21

Рабочее напрнжение, В

3,3

Цифровые 1/0 контакты

14

Цифровые 1/0 контакты с поддержкой ШИМ

11 (2, 3, 5, 6, 9, 1О, 11, 12, 16 или А2,
17 или АЗ, 19 или А5)

UART

1

SPI

1

,2с

1

Входные аналоговые контакты

8 (АЦП 8/10/12 бит)

Выходные аналоговые контакты

1 (ЦАП 1О бит)

Внеwние прерывании

Все цифровые контакты

Макси·мальнан сила тока на один 1/0 контакт, мА

7

Flаsh-памнть, Кбайт

256

SRAM, Кбайт

32

Тактован частота

32,768 КГц (RTC), 48 МГц

IMU

LSM6DSЗ

Встроенный светодиод (LED_BUILTIN)

Контакт 13

Размер, мм

45к18

Вес, г

5

Аппаратные платформы для создания устройств Интернета вещей

25

2.3.2. Arduino Nano 33 BLE, Arduino Nano 33 BLE Sence для создания носимых устройств
с минимальным электропотреблением
Arduino Nano 33 BLE и Arduino Nano 33 BLE Sense (рис. 2.15) - компактные плат­
формы для разработки на чипе u-Ыох NINA-B306 .с микроконтроллером Nordic
nRF52840 и беспроводным модулем Bluetooth BLE. Основной процессор включает
в себя другие удивительные функции -такие, как сопряжение Bluetooth через NFC
и режимы сверхнизкого энергопотребления.
На плате также распаян IМU-модуль на 9 степеней свободы, который содержит
трехосевые сенсоры: акселерометр, гироскоп и магнитометр, что позволяет создать
на Arduino Nano BLE собственный фитнес-браслет, умные часы или другой мо­
бильный проект с беспроводной связью по Bluetooth.

Рис. 2.15. Платы Arduino Nano 33 BLE (верхняя) и Arduino Nano 33 BLE Sence

Импульсный понижающий регулятор напряжения МРМ3610 обеспечивает питание
микроконтроллера и другой логики платы при подключении ее через пин VIN.
Диапазон входного напряжения от 5 до 18 В. Выходное напряжение 3,3 В с макси­
мальным выходным током 1,2 А.
Отличие модуля Arduino Nario 33 BLE Sense от Arduino Nano 33 BLE заключается
в том, что он - в дополнение к 9-01.евой IMU - поставляется с гораздо большим
набором датчиков: датчиками давления, влажности, температуры и света, а также
датчиком жестов и встроенным микрофоном:
□ датчик HTS22 l определяет температуру и относительную влажность воздуха
в окружающем пространстве и выдает их значения в 16-битном формате;

Глава 2

26



датчик атмосферного давления LPS22HB служит альтиметром для носимого
гаджета или барометром для метеостанции;
□ датчик Avago APDS-9960 от Broadcom использует четыре фотодиода с ИК-излу­
чателями для измерениярасстояния и распознавания базовых жестов: взмаха
руки влево или вправо, вверх-вниз и вперед-назад. Также он умеет распознавать
цвета через интенсивность _каналов RGB и уровень освещенности;
□ встроенный цифровой микрофон MP34DT05 пригодится для распознавания коротких голосовых команд или записи звука.
Платы Arduino Nano 33 BLE и Arduino Nano 33 BLE Sense могут быть использова­
ны либо в макете (при монтаже штыревых разъемов), либо в качестве SМТ-модуля,
будучи непосредственно припаянными через зубчатые площадки.
ВНИМАНИЕ/
В отличие от большинства плат Arduino/Genuino, Arduino Nano 33 BLE работает на на­
пряжении 3,3 вольта. То есть максимальное напряжение, к которому терпимы 1/0 кон­
такты Arduino Nano 33 BLE, - это 3,3 вольта, и есs,и его. превысить, можно повредить
плату. Хотя Ar_duino Nano 33 BLE может коммуницировать с 5-вольтовыми цифровыми
устройствами, но дпя такой двунаправленной коммуникации нужно правильно настро­
ить переключение вольтовой логики.

Назначение контактов платы Arduino Nano 33 BLE Sence показано на рис. 2.16.
Технические характеристики платы Arduino Nano 33 BLE Sence представлены
в табл. 2.5.

:jiffili:M■Э•l■i�HEMI
Мдl•М

ARDUINO SYMBOL



t
Рис. 2.16. Назначение контактов платы Arduino Nano 33 BLE Sence

L EO_ BUIL TIN)

LED_ PWR

)

Аппаратные платформы для создания устройств Интернета вещей

27

Таблица 2.5. Технические характеристики платы Arduino Nano 33 BLE Sence
Микроконтроллер

nRF52840

Питание платы VIN, В

5-21

Рабо.чее напряжение, В

3,3

Цифровые 1/0 контакты

14

Цифровые 1/0 контакты с помержкой ШИМ

Все цифровые контакты

UART

1

SPI

1

12С

1

Входные аналоговые контакты

8 (АЦП 8/10/12 бит)

Выходные аналоговые _контакты

-

Внешние прерывания

Все цифровые контакты

Максимальная сила тока на один 1/0 контакт, мА

15

Flаsh-память, Мбайт

1

SRAM, Кбайт

256 (nRF52840)

Тактовая частота

32,768 КГц (RTC), 48 МГц

IMU

LSM9DS1

Встроенный светодиод (LED_BUILTIN)

Контакт 13

Размер, мм

451е18

Вес,г

5

2.4. ESP32 - серия недорогих микроконтроллеров
с интегрированными модулями Wi-Fi и Bluetooth
Модули Wi-Fi ESP8266 за время своего существования стали поистине народными
и получили широкое распространение в любительской разработке устройств Ин­
тернета вещей. Но жизнь не стоит на месте, и компания-разработчик Espressif
выпустила. новый микроконтроллер - ESP32. ESP32 получил по сравнению
с ESP8266 значительный прирост в производительности - его вычttслительная
мощность возросла в четыре раза. У ESP32 есть два ядра, каждое из которых рабо­
тает на частоте 160 МГц (ESP8266 имеет 1 ядро, работающее на частоте 80 МГц).
Контроллер несет на борту 520 Кбайт оперативной памяти и 448 Кбайт flаsh­
памяти. Поддерживает не только Wi-Fi (802.1 ln с максимальной скоростью
150 Мбит в секунду), но и Bluetooth 4.2 BR/EDR и Low Energy.
Основным недостатком плат ESP8266 было очень малое количество контактов в ESP32 этот недостаток устранен, выводов стало гораздо больше и они много­
функциональные. Блок ввода/вывода имеет специальный мультиплексор, который

Глава 2

28

позволяет назначать различные функции на один вывод микроконтроллера. Значи­
тельно увеличено количество аналоговых входов (.J 8 АЦП (12 бит) и 2 ЦАП
(8 би,:)), обеспечена поддержка PWM на всех контактах, l О портов могут работать
в режиме сенсорllых кнопок. ESP32 имеет три порта UART, два I2c, четыре SPI, два
12S. Также имеется инфракрасный контроллер (прием/передача), шина CAN 2.0.
Есть еще датчик температуры и датчик Холла. Для шифрования _при передаче дан­
ных по Wi-Fi в ESP32 имеются криптографические модули AES и SHA. Блок-схема
периферии ESP32 показана на рис. 2.17.
Для удобной работы с микроконтроллером ESP32 был выпущен модуль WROOM-32
(рис. 2.18). Назначение контактов модуля WROOM-32 показано на рис. 2.19.

(

t

12С
12S

J

'j
J

D1 0
_,J
f-....__s...
__ ·

81uetQoth
1/nk
/fНSJD2/fsd!2i!шRXD/ltiPio'JJffJ-fv�---.�
/s,,1',P !fНSJDЗJ/SDf)З/fщrxD! ',fjl1f}-1\,

�--��fti,CJSJ

{s,�Jhs1J!iilsoOOifiл.RТSJ

Рис. 2.19. Назначение контактов модуля WROOM-32

Рис. 2.20. Плата ЕSРЗ2 DEV Board

• ��
LНSJllfJ// s,,iiJ/

шС1$f�ЩнsiМ{,пса/

30

Глава 2

t-

! -·

---

i

,SPIMQSI

1

,WlreSCL

·-� ..............т..······...,..т..-·-·--·-

SVP

SVN '

Serial Т)(

o----+----�tSerlat RX

WlreSDA

DAC1:
ОАС2

!(pd)f

(pu)c...
'--

,!

·•--·J ______

!

i

Рис. 2.21. Назначение контактов платы ESP32 DEV Board

ESP32 не заменит ESP8266 с точки зрения простоты и цены, но он является ценным
членом семейства микроконтроллеров с подцержкой средств для IoT. Хотя он
и стоит дороже ESP8266, но его высокая производительность, богатая периферия
и возможности подключения по Wi-Fi и Bluetooth, позволят применять этот микро­
контроллер в требовательных к вычислительным ресурсам приложениях Интернета
вещей.

2.5. Raspberry Pi Zero W полноценный микрокомпьютер
с добавлением поддержки Wi-Fi и Bluetooth
Raspberry Pi Zero W (рис. 2.22) - это одноплатный компьютер на базе SoC Broad­
com ВСМ2835, включающий центральный процессор ARМ1176JZ-F с тактовой
частотой 1,5 ГГц, графический процессор VideoCore IV с тактовой частотой
400 МГц и 512 Мбайт оперативной памяти SDRAM LPDDR2.
Raspberry Pi Zero W - вторая модель миниатюрного одноплатного компьютера
линейки Raspberry Pi. По сравнению с Raspberry Pi Zero Version 1.3, Zero W (Wire­
less) не претерпел других изменений, кроме добавления чипа беспроводной связи
Cypress CYW43438, подцерживающего сети Wi-Fi стандарта 802.1 ln и Bluetooth 4.1
(Bluetooth Classic и LE), при этом антенна является частью макетной платы; Этот
чип используется и на Raspberry Pi 3 Model В. Другие характеристики Raspberry Pi
Zero W остались без изменений: SoC, ОЗУ, разъем mini-НDMI, слот для microSD,
два разъема micro-USB (один для питания, второй для подключения периферийных
устройств USB), интерфейс CSI (Camera Serial Interface) для подключения камеры
по интерфейсу МIPI, а также три нераспаянных разъема: 40-контактный разъем
расширенного ввода/вывода (GPIO), композитный видеовыход (ТV) и разъем
(RUN) для сброса· (рис. 2.23). Все электронные компоненты распаяны на верхней

31

Аппаратные платформы для создания устройств Интернета вещей

Ркс. 2.22. Микрокомпьютер Raspberry Pi Zero W
Reset

Wi-Fi 802.lln и Bluetooth 4.1

Реrулятор
напряжения

mini-HDMI

USВ-раэьем питания
Рис. 2.23. Микрокомпьютер Raspberry Pi Zero W

части платы. Необычное решение - модули процессора и оперативно.й памяти на­
паяны друг на друга. Снизу располагается SoC Broadcom ВСМ2835, а прямо над
ним сверху размещен модуль LPDDR2 памяти Elpida B4432BBPA-10-F емкостью
512 Мбайт.

Глава 2

32

Для подключения видеоустройств Raspberry Pi Zero имеет разъем mini-IШMI, ко­
торый способен воспроизводить видеофайлы со стабильной частотой в 60 FPS и
FulllШ-разрешением. Устройство поддерживает подключение камер благодаря
nopry CSI. Питание Raspberry Pi Zero W осуществляется от 5 В адаптера через
разъем micro-USB или пины питания. Рекоме_ндуется использовать источник пита­
ния с силой тока 2 А. 40-пиновый GРЮ-интерфейс Raspberry Pi Zero W (рис. 2.24)
идентичен GPIO на Raspberry Pi 3. То есть все платы расширения, продаваемые для
большой «малинки)), можно использовать и на Zero W, не опасаясь каких-либо
проблем с совместимостью.

Рис. i.24. GРIО-интерфейс Raspberry Pi Zero W

ВНИМАНИЕ!
В отличие от платформ с логическим напряжением 5 В, напряжение логических уров­
ней RaspЬerry Pi - 3,3 В. Выходы для логической единицы выдают 3,3 В, а в режиме
входа ожидают принимать не более 3,3 В. Более высокое напряжение может повре­
дить микрокомпьютер. Будьте внимательны при подключении периферии - убеди­
тесь, что она может корректно функционировать в этом диапазоне напряжений.

Технические характеристики Raspberry Pi Zero W представлены в табл. 2.6.
Таблица 2.6. Технические характеристики Raspbeny Pi Zero W
Система на кристалле (SoC)

Broadcom ВСМ2835 (CPU, GPU, DSP и SDRAM)

Процессор

32-битный 1-ядерный ARMvбZ ARM1176JZF-S с тактовой
частотой 1,5 ГГц, 16 Кбайт cache L 1 и 128 Кбайт cache L2
(семейство ARM11)

Графический процессор

Двухъядерный GPU VideoCore IV с тактовой частотой 250 МГц
поддерживает стандарты OpenGL ES 2.0, OpenVG, MPEG-2,
VC-1 и способен кодировать, декодировать и выводить Full
НD-видео (1080р, 30 FPS, Н.264 High-Profil)

Аппаратные платформы для создания устройств Интернета вещей

33

Таблица 2.6 (окончание)
ОЗУ

512 Майт SDRAM LPDDR2 400 МГц (совместно с GPU)

Хранилище

слот для карты памяти MicroSDHC

дата выхода

февраль 2017

Цена, USD

10

Wi-Fi/Bluetooth

Wi-Fi 802.11п и Bluetooth 4.1 (Bluetooth Classic и LE), обеспечиваемые микросхемой Cypress CYW43438

Видеовход
�идеовыход

,

1 "CSI для подключения камеры по интерфейсу MIPI
1 "HDMI через разъем mini НЩ/11 (1080р 60)
1 "композитное видео через два контакта на плате (помечены
как ТУ)

Аудиовход

Через 1 2S

Аудиовыход

HDMI

USВ-порты

1 порт Micro-USB 2.0 напрямую от ВСМ2835

Периферия

40 портов ввода/вывода общего назначения (GPIO),
UART (Serial), 12S, l2C/ТWI, SPI с селектором между двумя
устройствами; пины питания: 3,3 В, 5 В и «земля�

Питание·

5 В, 2 А через порт micro-USB или GPIO

Энергопотребление

100 мА (0,5 Вт) в среднем (в режиме ожидания), 350 мА
(1,75 Вт) максимум в условиях стресса (монитор, клавиатура
и мышь подключены)

Размеры, мм

67,6х3О,Ох5,О

Bec,r

9

ос

RaspЬian, Ubuntu, DeЬian, Fedora, Arch Linux, Gentoo, RISC OS,
Android, Firefox OS, NetBSD, FreeBSD, Slackware, Tiny Core
Linux

ГЛАВА

3

Организация связи для устройств
Интернета вещей
Чтобы устройство стало устройством Интернета вещей, необходимо подключить
его к сети Интернет. В этой главе мы рассмотрим варианты такого подключения.

3.1. Подключение к Интернету платы Arduino Uno
Подключение компьютеров к сети Интернет, как правило, осуществляется через
роутер. Точно так же предоставить доступ в Интернет через роутер можно и·плате
Arduino Uno. Однако напрямую плату Arduino Uno подключить к роутеру нельзя.
Для этого необходимы дополнительные платы: либо шилд (плата расширения)
Ethemet Shield, либо какой-либо вариант модуля ESP8266. Подключение платы
Arduino Uno к роутеру при этом осуществляется следующим образом:
□ по сетевому кабелю через один из входов роутера - с помощью шилда Ethemet
Shield;
□ по сети Wi-Fi - с помощью модуля ESP8266.

3.1.1. Подключение к Интернету по сетевому кабелю
Для подключения Arduino Uno к Интернету по сетевому кабелю мы воспользуемся
платой расширения Ethemet Shield (рис, 3 .1 ). Эта плата, прежде всего, позволяет
подключить плату Arduipo к сети Ethemet - плата Arduino становится полноправ­
ным сетевым устройством и может общаться со всеми устройствами сети, к ко­
торой она подключена: компьютерами, сетевыми принтерами, роутерами и др.
А через роутер она получает доступ к Интернету.
Итак, сначала соединяем плату Arduino с платой расширения Ethemet Shield. Об­
ращаем при этом внимание на нумерацию цифровых выводов на платах - они
должны совпадать. Затем подключаем плату расширения Ethemet Shield к сети, для
чего один конец сетевого кабеля подсоединяем к сетевому входу Ethernet Shield,
а второй его конец - к свободному сетевому входу роутера (рис. 3 .2).
Однако простого электрического соединения устройств недостаточно. Необходимо
создать программу для получения платой Arduino сетевого IР-адреса, обеспечи­
вающего ее подключение к сети.

Организация связи для устройств Интернета вещей

35

Рис. 3.1. Плата расширения Ethernet Shield W5100

Рис. 3.2. Подключение Ethemet Shield W5100 к nлate Arduino и к сети

Что ТАКОЕ /Р-АДРЕС?

Каждое устройство локальной сети должно иметь в этой сети свой уникальный ад­
рес. Его можно назначить вручную или получить автоматически от устройства (обычно
ЭТО роутер), на котором выполняется специальная программа - DНСР-сервер. с по­
мощью написанной нами программы плата Arduino может при подключении к сети об­
ратиться к ее DНСР-серверу и получить от него свободный уникальный IР-адрес.

Дпя создания такой программы подсоединяем плату· Arduino к компьютеру с по­
мощью USВ-кабеля и запускаем среду Arduino IDE. В меюо Инструменты I Плата
выбираем плату Arduino Uno (рис. 3.3). В меюо Инструменты I Порт выбираем
порт подключения платы Arduino (рис. 3.4) и заносим в ·поле кода среды Arduino
IDE скетч из листинга 3.1.

36

Глава З
ф sketchjun19Ь I дrduino 1.6.5

Boards Manager ...

Помощь
д етоФормаmропние

Ппвты Ardufno AVR

СЬf+Т

Ар�и11ироаать 3сКи3

ArduinoVUn


Arduino Uno

Испраsить кодировку и nерваГJ)У3mь.

Arduino ·ouemitгnove or Oiкimila

Монитор nосл.�оват�ыюго nopra

ArduinoNano

vo1d setup () {
// put уош:: se'

Пмт-11� "Arduino Uno"
Порr. "СОМ10 (дrduino Uno)"

Arduino Meg• or Mega 2560
• дrduino Mega ADK
Arduino Leonardo

чoid loop ()
J/ put your: ma4

Проrрамматор: "Arduino as ISP"
Заn.и-сать ЗаrРУ3ч:мк

Arduino Mi О)
ESP8266Serial.read();
// Отправка АТ-команды
ESP8266Serial.println(ATcoппnand);
х = О;
previous = millis();
// ждать необходимый ответ answer или лимит времени
do{
if(ESP8266Serial.availaЫe() != О)
{
// получать данные из ESP8266
response[x] =-ESP8266Serial.read();
//Serial.print(response[�]);
х++;
// сравнение полученных данных с необходимым ответом
if (strstr(response, expected_answer) != NULL)
answer = 1;

while ((answer == О) && ( (millis () - previous) < timeout));
Serial.println(response);
)]

return answer;

ЭЛЕКТРОННЫЙ АРХИВ

Скетч, соответствующий листинrу 3.4 (файл ATcommands.ino), можно найти в папке
вхатр/еs\ОЗ\ОЗ_:_04 сопровождающего книrу электронного архива (см. приложение).

48

Глава З

Функция senc!ATcoппnand() в качестве входных аргументов получает АТ-команду,
необходимый ответ на правильное выполнение команды и время ожидания ответа
в мсек.
Сначала функция очищает буфер входящих данных и считывает все пришедшие
данные из последовательного порта:
// Очистить буфер входящих данных
while(ESP8266Serial. available() > О)
ESP8266Serial.read()-;

Затем оmравляет по последовательному порту на ESP-01 АТ-команду:
// Отправка АТ команды
ESP8266Serial.println(ATcoппnand);

После чего приступает к ожиданmо и чтению данных из ESP-01 по последователь"
ному порту, постоянно проверяя время ожидания ответа. Получая побайтно данные
из ESP-01, функция сравнивает их с необходимым ответом и при совпадении воз­
вращает значение 1. При превышении времени - возвращает значение О.
do (
if(ESP8266Serial.availaЫe() != О)
// получать данные из ESP8266
response[x] = ESP8266Serial.read();
//Serial.print(response[x]);
х++;
// сравнение полученных данных с необходимым ответом
if (strstr(response, expe_cted_answer) != NULL)
answer = 1;

while((answer == О) && ( (millis() - previous) < timeout));

Теперь загружаем скетч в плату Arduino, открываем монитор последовательного
порта и отправляем АТ-команды на плату Arduino - ответы от ESP-01 также печа­
таются в монитор последовательного порта (рис. 3.17).
Если команды отправляются и ответ от ESP-01 приходит, пришло время написать
скетч для подключения платы Arduino к роутеру по Wi-Fi отправкой АТ-команд.
Создадим в Arduino IDE новый скетч arduino_esp8266_connectWiFi.ino и занесем в по­
ле кода содержимое листинга 3 .5.

// подключение библиотеки SoftwareSerial
#include

Организация связи для устройств Интернета вещей

49

// константы дnя Software Serial
#define PIN ТХ 7
#define PIN RX 6
// пин Arduino дnя подкmочения СН PD
#define PIN СН PD 5
// создание экземпляра SoftwareSerial
// 6 --> Тх (ESP8266)
// 7 --> Rx (ESP8266)
SoftwareSerial ESP8266Serial(PIN_RX, PIN_TX);
void setup() {
Serial.begin(9600);
ESP8266Serial.begin(l15200);
pinМode(PIN_CH_PD,OUTPUT);
// сигнал LOW на CH_PD
digitalWrite(PIN_CH_PD,LOW);
delay(l00);
// сигнал HIGH на CH_PD
digitalWrite (PIN_CH_PD,НIGH);
delay(l000);
// Отправка АТ-команд
// проверка - команда АТ
while(sendATcommand("AT","OK",1000)