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

Arduino Uno и Raspberry Pi 4: от схемотехники к интернету вещей

Покупка
Новинка
Артикул: 856464.01.99
Доступ онлайн
1 049 ₽
В корзину
Книга состоит из двух частей, содержащих как теоретические, так и практические сведения о работе с платами Arduino Uno и Raspberry Pi 3 или 4. Первая часть посвящена теории и решению 23 практических заданий для Arduino Uno в среде Arduino IDE с большинством датчиков, модулей и других компонентов соответствующего набора с RFID-модулем, и предназначена для изучения как этих компонентов, так и основ схемотехники, по принципу от простого к сложному. Вторая часть книги содержит 8 проектов для Raspberry Pi 3 или 4 и предназначена для ознакомления с базовой теорией и практикой интернета вещей, включая необходимые протоколы, сервисы (aREST, MQTT Mosquitto) и некоторые облачные IoT-платформы (Firebase, MATLAB ThingSpeak). Как правило, в проектах разрабатывается приложение на Python для Raspberry Pi в IDE Thonny, а также приложение на Java под Android для мобильных устройств в IDE Android Studio.
Макаров, С. Л. Arduino Uno и Raspberry Pi 4: от схемотехники к интернету вещей : практическое руководство / С. Л. Макаров. – 2-е изд., перераб. и доп. - Москва : ДМК Пресс, 2024. - 242 с. – ISBN 978-5-93700-272-3. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2205061 (дата обращения: 16.04.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
С. Л. Макаров
Arduino Uno и Raspberry Pi 4: 
от схемотехники  
к интернету вещей
Второе издание, переработанное 
и дополненное
Москва, 2024


УДК 004.738, 004.62
ББК  32.973
М15
Макаров С. Л.
М15	 Arduino Uno и Raspberry Pi 4: от схемотехники к интернету вещей / 
2-е изд., перераб. и доп. – М.: ДМК Пресс, 2024. – 240 с.: ил.
ISBN 978-5-93700-272-3
Книга состоит из двух частей, содержащих как теоретические, так и практические сведения о работе с платами Arduino Uno и Raspberry Pi 3 или 4. Первая 
часть посвящена теории и решению 23 практических заданий для Arduino Uno в 
среде Arduino IDE с большинством датчиков, модулей и других компонентов соответствующего набора с RFID-модулем и предназначена для изучения как этих 
компонентов, так и основ схемотехники по принципу от простого к сложному. 
Вторая часть книги содержит 8 проектов для Raspberry Pi 3 или 4 и предназначена для ознакомления с базовой теорией и практикой интернета вещей, включая 
необходимые протоколы, сервисы (aREST, MQTT Mosquitto) и некоторые облачные IoT-платформы (Firebase, MATLAB ThingSpeak). Как правило, в проектах 
разрабатывается приложение на Python для Raspberry Pi в IDE Thonny, а также 
приложение на Java под Android для мобильных устройств в IDE Android Studio.
УДК 004.738, 004.62
ББК 32.973
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой 
бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.
©  Макаров С. Л., 2023 
© Оформление, издание, ДМК Пресс, 2024
ISBN 978-5-93700-272-3


Содержание
Введение............................................................................................... 5
Часть 1. Практика на базе набора Arduino Uno R3  
с RFID-модулем.................................................................................... 9
Введение ............................................................................................................10
Состав комплекта..............................................................................................12
Немного о макетной плате, резисторах и безопасности................................17
Практическое занятие 1. Hello, world!..............................................................23
Практическое занятие 2. Эксперимент с мигающим светодиодом...............25
Практическое занятие 3. Эксперимент с контролируемой  
потенциометром  яркостью свечения светодиода через порт PWM.............26
Практическое занятие 4. Светофорный эксперимент....................................27
Практическое занятие 5. Эксперимент с пищалкой.......................................29
Практическое занятие 6. Эксперимент с датчиком наклона.........................30
Практическое занятие 7. Эксперимент с чистым входным сигналом...........32
Практическое занятие 8. Эксперимент по управлению звуком и светом.....33
Практическое занятие 9. Эксперимент с вольтметром..................................35
Практическое занятие 10. Разноцветный термостат......................................36
Практическое занятие 11. Эксперимент с четырехразрядным  
цифровым светодиодным индикатором.........................................................38
Практическое занятие 12. Эксперимент со светодиодной матрицей............43
Практическое занятие 13. Эксперимент с трехцветным светодиодом.........48
Практическое занятие 14. Эксперимент с модулем 74HC595.........................50
Практическое занятие 15. Часы реального времени DS1307..........................52
Практическое занятие 16. Эксперимент с датчиком уровня воды................54
Практическое занятие 17. Эксперимент с сенсором температуры  
и влажности DHT11...........................................................................................56
Практическое занятие 18. Эксперимент с релейным модулем......................57
Практическое занятие 19. Эксперимент с жидкокристаллическим  
монитором LCD1602A.......................................................................................59
Практическое занятие 20. Эксперимент с серводвигателем..........................60
Практическое занятие 21. Эксперимент с инфракрасным пультом  
дистанционного управления............................................................................62
Практическое занятие 22. Эксперимент с RFID-модулем RC522...................66
Практическое занятие 23. Эксперимент с системой контроля доступа .......69
Часть 2. Практика на Raspberry Pi 3 или 4 .................................... 71
Введение.............................................................................................................72
Подготовка.........................................................................................................75


Первый проект – трехцветный светодиод.......................................................80
Второй проект – шпионский глаз.....................................................................85
Третий проект – система мониторинга окружающей среды.........................98
Четвертый проект – система для управления освещением.........................105
Пятый проект – удаленная метеостанция.....................................................138
Шестой проект – работа с облачной платформой интернета вещей...........156
Седьмой проект – система обнаружения проникновения в дом ................180
Восьмой проект – голосовое управление умным домом..............................218
Заключение.......................................................................................232
Список использованных источников............................................234
4    Содержание


Введение
Интернет вещей  – активно развивающееся направление, несмотря на отсутствие единых стандартов и разнообразие платформ и самих интернет-вещей, 
предлагающихся различными компаниями в виде готовых решений со своим 
дизайном. Существует огромное количество определений этого термина, однако в большинстве случаев под интернетом вещей понимается сбор и обмен данными между различными физическими устройствами (также называемыми умными устройствами, подключенными устройствами, интернет-вещами и т. д.) на 
основе определенной сети (здесь иногда добавляют фразу «там, где раньше это 
было невозможно»). Физическими устройствами могут быть автомобили, здания, камеры, бытовая техника, компьютерная техника и любые другие устройства, оснащенные электроникой, программным обеспечением, сенсорами, двигателями и модулями для подключения к сети Интернет, даже города. Данные, 
получаемые с физических устройств, как правило, собираются в определенном 
сетевом хранилище – дата-центре, облаке, сервере, репозитории и т. д., которые 
затем могут быть подвержены анализу методами data mining, machine learning, 
cloud computing и др. с целью решения тех или иных задач, стоящих перед разработчиками. Для хранения, обработки и визуализации этих данных, а также для 
предоставления различных сервисов для управления интернет-вещами и анализа данных существуют различные облачные платформы для интернета вещей. 
Если взглянуть на кривую компании Гартнер (Gartner) по появляющимся 
технологиям (emerging technologies), то можно увидеть интернет вещей на 
пике в 2014–2015 годах, исчезновение IoT (Internet of Things, интернета вещей) в 2016–2017 годах, но замену его в этот период новой технологией – платформой интернета вещей (IoT Platform) – и затем перемещение платформы 
интернета вещей на кривой в 2018 году ближе к области спада и разочарования. Однако, как известно, реальные надежные технологии (второй версии) 
появляются только после прохождения через эту впадину избавления от иллюзий. Несмотря на исчезновение интернета вещей из области хайпа на кривой 
Гартнер в 2019 и последующих годах, область IoT активно развивается, о чем 
свидетельствуют статьи в открытом доступе той же компании Гартнер, например [1], и основанные на них статьи других авторов, например [2]. Согласно [2], 
например, к 2030 году прогнозируется количество IoT-устройств в мире в районе 29 млрд. Согласно цитате в этой статье от Forbes, любая современная промышленность сегодня – это промышленность с интернетом вещей. Поэтому 
знать основы этой технологии и уметь применять различные подходы к построению систем интернета вещей для различных задач должен уметь каждый 
уважающий себя программист или IT-специалист.  
С интернетом вещей вплотную я познакомился в 2016 году. До этого я, конечно, слышал об этом направлении, или области, – ведь один из студентов, 
руководителем которого был Восков Л. С., еще в МИЭМе (ныне в составе НИУ 


ВШЭ) показывал мне свой проект по умной розетке, которая контролировалась 
удаленно через веб-интерфейс и зажигала включенную в нее настольную лампу. На слуху были разнообразные умные вещи – умный дом, умный автомобиль, 
умный холодильник, умная подставка для яиц в холодильнике и т. д. Безусловно, 
тогда это все было непросто – датчики и сенсоры, платы и прочее оборудование 
стоили немало. Но потом появилась потребность подготовить курс «Экосистемы интерента вещей», и… началось. Прежде всего было непонятно, что делать 
с практическими занятиями по этому курсу – что давать студентам? «Железок» 
никаких не было и в помине, в то же время очень хотелось, чтобы студенты 
работали на реальном оборудовании. Но на каком? Как построить практику? 
Времени оставалось все меньше, и тогда я решил попробовать купить комплект 
с Raspberry Pi 3 – тогда, в 2017 году, несмотря на то что операционная система 
Android Things была еще без официального релиза первой версии, по ней были 
довольно интересные примеры и проекты на официальном сайте разработчиков под Android Things, и не только там. Однако, начав разбираться с системой, 
я понял, что начинать надо не с этого, а с самых основ, с физики, схемотехники, которых у студентов-программистов, для кого предназначался курс, конечно же, не было. Поэтому вторым шагом была покупка комплекта с платой 
Arduino Uno – такого, в котором было бы максимально возможное количество 
«железок». Этот комплект заставил вспомнить основы физики, научиться терпению при определении ошибки в проекте – в схеме она, или в компонентах, 
или в коде, или в методичке, или где? – и многому другому, в том числе пришлось пропустить через себя методичку с огромным количеством ошибок на 
ломаном английском языке, которая была на сайте магазина, продававшего 
комплект. Так появилась первая часть этой книги. Тогда же, когда в моем распоряжении оказались Raspberry Pi 3, HDMI-мини-монитор и Android Things, на 
книжной полке внезапно появилась и книга Android-разработчика Франческо 
Эззолы «Android Things Projects», которую пришлось печатать на заказ – недешевое удовольствие. И, несмотря на устаревший на 1 год код, английский язык 
и некоторые ошибки в заданиях или просто иногда пропуск некоторых важных 
деталей кода в книге, в 2018 году выросла вторая часть этой книги, посвященная нескольким проектам под Android Things на плате Raspberry Pi 3. Они были 
приведены к реалиям существующей на тот момент 1-й версии этой операционной системы и переработаны с целью добавления пользовательского интерфейса, которого в оригинале в некоторых заданиях просто нет. Осваивая книгу 
и пропуская задания через себя, я понимал, что вот оно – как это просто сделать, 
оказывается: контроль и полив растения удаленно через смартфон, контроль за 
удаленной квартирой с помощью ИК-датчика и камеры, пока ты находишься 
в отпуске, или получать всю информации о погоде за окном на твоем мониторе 
в комнате в виде Android Things-приложения, включая прогноз погоды.
Однако шло время, и программный код, библиотеки и даже операционная 
система начали устаревать. К сожалению, данное учебное пособие относится 
к  очень быстроразвивающейся отрасли из области IT (Information Technologies, информационных технологий), в  которой все устаревает с  невероятной 
скоростью. Сегодня ты написал код в Android Studio Flamingo, а завтра уже вышла Android Studio Giraffe, где этот код не работает, и надо разбираться почему. 
Сначала, в мае 2019 года, компания Samsung объявила о закрытии облака Artik 
6   
Введение


Cloud, на котором был основан один из проектов второй части учебного пособия, для Raspberry Pi. Затем стали появляться некоторые нововведения, относящиеся к коду в Android Studio, который надо было писать для приложений под 
операционную систему Android Things. Новые версии Android Studio выходят 
дважды в год, и в следующий учебный год код, написанный и протестированный в предыдущем учебном году, конечно же, переставал работать, не говоря 
уже о поддержке нужных шаблонов для приложений интернета вещей. Затем 
в январе 2021 года случилось непоправимое – операционная система Android 
Things, на которой были основаны все проекты второй части учебного пособия, перестала поддерживаться, а позже – и существовать. И, несмотря на то 
что можно было по-прежнему разрабатывать проекты под эту ОС, так как существовал образ на SD-карте, последнее обновление этого образа было от 2019 
года, когда был анонсирован переход платформы Android Things на коммерческие рельсы, и он больше не обновлялся – нельзя было скачать новую версию 
Android Things. Из Android Studio исчез шаблон приложения для интернета вещей. Позже появилась действительно серьезная проблема: в 2022–2023 учебном году у студентов в аудитории платы Raspberry Pi с установленной Android 
Things начали самопроизвольно перезагружаться из-за недостатка энергии, 
вызванного встроенным Wi-Fi-модулем. К сожалению, причину этой проблемы 
найти удалось уже ближе к завершению курса… и стало понятно, что пора уже 
переходить на новую операционную систему, которой незнакомы подобные 
проблемы. В качестве новой ОС была выбрана специально разработанная для 
Raspberry Pi ОС, которая теперь так и называется – Rapsberry Pi (бывшая Raspbian OS). Но все приложения для Android Things пришлось, во-первых, переписать с Java на Python, одновременно изучив и выбрав некоторые библиотеки; 
а во-вторых, пришлось создавать с нуля интерфейс для этих приложений, также изучая и выбирая необходимые библиотеки, самой подходящей из которых 
оказалась PySimpleGUI. Таким образом, в новой версии учебного пособия, которую вы читаете, полностью переработаны все проекты для Raspberry Pi, а также 
добавлены еще три проекта, и все они написаны на связке Arduino IDE + Thonny 
(IDE в Raspberry Pi OS для программирования на Python) + Android Studio (Java) 
для мобильных приложений, где это необходимо, и работают под управлением 
свежих версий операционных систем Raspberry Pi и Android.        
Первая часть этой книги предназначена для того, чтобы читатели (студенты) освоили или вспомнили основы схемотехники. Да-да, именно в этом и заключается предназначение комплекта модулей, датчиков, проводов, экранов, 
двигателей, джойстиков, индикаторов, карт и ключей, резисторов и светодиодов с кнопками, вместе с макетной платой и платой Arduino Uno – для того 
чтобы читатели освоили прежде всего схемы подключения, схемотехническую 
базу и вспомнили основы физики в части тока и напряжения, а также номиналы резисторов и как их посчитать, – на реальных устройствах, которые могут 
выйти из строя или работать неправильно при неправильном подключении. 
Задача же второй части данного учебного пособия – перейти от схемотехники 
к реальным проектам для интернета вещей с их типовой архитектурой, передачей данных от сенсоров к плате, от платы в облако, из облака в мобильное 
приложение-компаньон, позволяющее осуществить управление платой удаленно или визуализировать и проанализировать полученные данные и, главВведение    7


ное, – воплотить в жизнь реальную архитектуру приложений для интернета 
вещей. В  новой версии учебного пособия количество заданий первой части 
сокращено с 34 до 23, так как от читателя не требуется настолько подробно 
изучать схемотехнику, по моему мнению, и лучше сделать основной упор на 
вторую часть, посвященную именно проектам интернета вещей.  
Практические эксперименты первой части учебного пособия построены по 
определенной схеме. Сначала перечисляются компоненты, необходимые для 
выполнения задания. Затем приводится описание задания – та часть, которую 
все обычно пропускают (особенно студенты). После этого приводится цветная 
схема с макетной платой, объясняющая, как соединить все компоненты заданий друг с другом. Принципиальные электрические схемы соединения компонентов я решил в этой новой версии учебного пособия не приводить, все равно 
большинство смотрит именно на вторую схему с макетной платой, так как она 
проще для восприятия, цветная и более интересная, чем принципиальная схема. Затем идет код программы (иногда их несколько), который необходимо 
скопировать в Arduino IDE и запустить.
Проекты из второй части построены немного по-другому – сначала идет 
небольшое введение, потом – перечень компонентов и их свойства и изображения. После этого приводится схема подключения компонентов с макетной 
платой. А затем идут этапы выполнения задания, в которых присутствуют как 
исходный код для копирования в Android Studio или Thonny, так и  пояснения к этому коду, а также, при необходимости, – скриншоты различных ресурсов и платформ интернета вещей, используемых для выполнения задания, 
и скриншоты работающих в результате выполнения проектов приложений.
Отдельно хочется выразить слова благодарности студентам 3-го курса 2017–
2018 и последующих учебных лет вплоть до текущего 2023–2024 учебного года 
образовательной программы «Программная инженерия» департамента программной инженерии факультета компьютерных наук Национального исследовательского университета «Высшая школа экономики», на которых проходила 
апробация всех заданий из этого пособия. Они не только находили и исправляли 
ошибки и неточности в некоторых заданиях, но и предлагали разумные вещи для 
улучшения методических указаний, послуживших основой для этой книги. И конечно, нельзя не сказать эти слова бывшему руководителю упомянутого департамента – Авдошину С. М., который в свое время ошарашил меня курсом «Экосистемы интернета вещей», без которого не было бы никакого учебного пособия. 
Для выполнения заданий из этого учебного пособия необходимо приобрести как минимум 2 комплекта, например такие, как в [3] (Arduino Uno R3) 
и [4] (Raspberry Pi 3 или 4). Также отдельно могут понадобиться дополнительные модули и датчики для выполнения заданий из 2-й части учебного пособия, а именно кардридер для чтения/записи microSD-карт, модуль с Raspberry 
Pi камерой v 2.1, PIR-сенсор, модуль Troyka Wi-Fi, датчик давления, влажности и температуры BME280 или BMP280, GPIO-адаптер для Raspberry Pi 3 или 4 
(с ним удобнее) и модуль аналогового датчика света (освещенности). И конечно же, понадобится второй монитор для Raspberry Pi 3 или 4, и этот монитор 
должен быть с HDMI-входом.
При подготовке данного учебного пособия не только ни одна плата, но и ни 
один светодиод, модуль или датчик не пострадали. 
8   
Введение


Часть 1
Практика на базе набора 
Arduino Uno R3  
с RFID-модулем


Введение 
Arduino – наиболее популярная платформа для разработки как простых, так 
и достаточно сложных проектов для интернета вещей. Популярность этой платформы обусловлена не только ее низкой ценой, но и огромным количеством 
обучающих материалов, примеров проектов в сети, в том числе и на таких ресурсах, как YouTube, различных форумах разработчиков, а также – хорошим 
официальным сайтом [5, 6], на котором Arduino Team постоянно предлагает 
ознакомиться с новыми проектами на базе одной из плат Arduino. Существует 
множество разновидностей плат Arduino, например: Uno, Leonardo, 101, Mega, 
Zero, Ethernet, Gemma, MKR FOX 1200 и т. д. Все платы на официальном сайте 
разделены на категории: начальный уровень (для обучения, к нему относится 
Uno), платы с расширенными функциями, платы для интернета вещей, платы 
для носимых устройств (в основном в тандеме с Lillypad, например для умной одежды). Несмотря на простоту среды Arduino IDE и ее недостатки, в ней 
можно разрабатывать интересные и сложные проекты; кроме того, существует 
официальный онлайн-аналог среды и  многочисленные библиотеки, способные нарастить ее небольшой функционал. Именно поэтому для данного учебного пособия выбрана эта платформа, а именно Arduino Uno версии R3, и наиболее богатый и разнообразный в отношении количества различных модулей, 
сенсоров, датчиков и других компонентов комплект с этой платой – набор для 
начинающих на базе Arduino Uno версии R3 с RFID-модулем [3]. 
Arduino Uno Rev. 3 – лучшая плата для начинающих. Согласно официальному сайту эта плата является наиболее используемой и обладает наибольшим 
количеством документации из всех плат семейства Arduino. Arduino Uno – это 
плата на основе 8-битного микроконтроллера ATmega328P, см. рис. 1 – самая 
большая черная деталь на плате. Таким образом, по сути плата Arduino Uno 
является платой расширения или платой разработчика (developer board), сердцем которой является ATmega328P.
Рис. 1  Лицевая сторона оригинальной платы Arduino Uno
10    Практика на базе набора Arduino Uno R3 с RFID-модулем


Похожие

Доступ онлайн
1 049 ₽
В корзину