
Книга содержит более 200 рецептов по работе с микрокомпьютером Raspberry Pi, рассматривающих как программные, так и аппаратные задачи. Показана установка и настройка операционной системы для Raspberry Pi, подключение датчиков и двигателей, способы интеграции Raspberry Pi в систему умного дома и сеть Интернета вещей. Рассмотрен язык Python в контексте программирования микроконтроллеров, разобраны продвинутые возможности Python, важные при создании сценариев и автоматизации процессов. В четвертом издании добавлены главы, рассказывающие о возможностях машинного обучения и о работе с уменьшенной версией платы – Raspberry Pi Pico.
Для специалистов по Raspberry Pi и программированию электроники
Перед вами четвертое издание признанного бестселлера о работе с Raspberry Pi, в котором предлагается более 200 практических рецептов с подробным кодом.
В них рассмотрено, как работать с этим крошечным дешёвым компьютером под Linux, программировать его на Python, подключать к нему датчики и двигатели, а также использовать для Интернета вещей (IoT). В четвертом издании содержатся новые главы о Raspberry Pi Pico и о машинном обучении с Raspberry Pi.
Автор книги излагает базовые принципы работы с платформой и рассказывает, как использовать различные новые технологии на Raspberry Pi.
Шаг за шагом вы узнаете, как:
- настроить компьютер Raspberry Pi и подключить его к сети;
- работать с Linux-подобной операционной системой Raspberry Pi OS;
- писать программы для Raspberry Pi на Python;
- сделать ваш Pi «зрячим» с помощью компьютерного зрения;
- распознавать звуки и объекты на видео, используя машинное обучение;
- управлять оборудованием с помощью разъема GPIO;
- использовать Raspberry Pi для управления различными двигателями и дисплеями;
- обращаться с переключателями, джойстиками и другими цифровыми устройствами ввода;
- использовать датчики для измерения температуры, освещенности и расстояния;
- подключаться к устройствам IoT различными способами и автоматизировать свой дом;
- работать с микроконтроллерной платой Raspberry Pi Pico.
Предисловие к четвертому изданию……………………………………………………….. 14
Как пользоваться этой книгой?………………………………………………………………………………………………… 15
Условные обозначения……………………………………………………………………………………………………………… 16
Использование примеров кода…………………………………………………………………………………………………. 16
Как с нами связаться?………………………………………………………………………………………………………………… 17
Благодарности…………………………………………………………………………………………………………………………… 18
Глава 1. Настройка и управление………………………………………………………….. 19
1.0. Введение………………………………………………………………………………………………………………………………. 19
1.1. Выбор модели Raspberry Pi………………………………………………………………………………………………… 19
1.2. Подключение компонентов системы…………………………………………………………………………………. 24
1.3. Как снабдить устройство Raspberry Pi корпусом?…………………………………………………………… 26
1.4. Выбор источника питания…………………………………………………………………………………………………. 29
1.5. Выбор операционной системы………………………………………………………………………………………….. 32
1.6. Установка операционной системы с помощью программы Raspberry Pi Imager………….. 33
1.7. Первая загрузка устройства Raspberry Pi…………………………………………………………………………. 35
1.8. Настройка Raspberry Pi для работы в бездисплейном режиме……………………………………….. 37
1.9. Загрузка с внешнего жесткого диска или флеш-накопителя с интерфейсом USB…………. 39
1.10. Подключение монитора с разъемом DVI или VGA………………………………………………………… 41
1.11. Использование монитора/телевизора с композитным видеовходом……………………………. 42
1.12. Настройка размера изображения, выводимого на экран монитора…………………………….. 44
1.13. Обеспечение максимальной производительности устройства…………………………………….. 46
1.14. Изменение своего пароля…………………………………………………………………………………………………. 48
1.15. Выключение устройства Raspberry Pi…………………………………………………………………………….. 49
1.16. Подключение к Raspberry Pi модуля камеры………………………………………………………………….. 51
1.17. Использование интерфейса Bluetooth…………………………………………………………………………….. 54
Глава 2. Работа с сетями………………………………………………………………………… 57
2.0. Введение………………………………………………………………………………………………………………………………. 57
2.1. Подключение к проводной сети…………………………………………………………………………………………. 57
2.2. Определение IP-адреса устройства…………………………………………………………………………………… 59
2.3. Настройка статического IP-адреса…………………………………………………………………………………… 60
2.4. Задание сетевого имени устройству Raspberry Pi……………………………………………………………. 63
2.5. Настройка беспроводного подключения………………………………………………………………………….. 65
2.6. Подключение с помощью консольного кабеля………………………………………………………………… 67
2.7. Удаленное управление устройством Raspberry Pi с использованием протокола SSH…. 72
2.8. Удаленное управление устройством Raspberry Pi с использованием протокола VNC… 74
2.9. Использование Raspberry Pi в качестве сетевого хранилища…………………………………………. 76
2.10. Настройка сетевого принтера…………………………………………………………………………………………. 79
Глава 3. Операционная система…………………………………………………………….. 82
3.0. Введение………………………………………………………………………………………………………………………………. 82
3.1. Работа с файлами с использованием графического интерфейса……………………………………. 82
3.2. Копирование файлов на флеш-накопитель с интерфейсом USB…………………………………….. 84
3.3. Открытие окна терминала………………………………………………………………………………………………….. 85
3.4. Перемещение по файловой системе с использованием терминала………………………………… 87
3.5. Копирование файла или папки………………………………………………………………………………………….. 90
3.6. Переименование файла или папки…………………………………………………………………………………….. 92
3.7. Редактирование файла……………………………………………………………………………………………………….. 92
3.8. Просмотр содержимого файла…………………………………………………………………………………………… 95
3.9. Создание файла без использования редактора……………………………………………………………….. 95
3.10. Создание каталога……………………………………………………………………………………………………………. 96
3.11. Удаление файла или каталога…………………………………………………………………………………………. 97
3.12. Выполнение задач с правами суперпользователя…………………………………………………………. 98
3.13. Что такое права доступа к файлам?……………………………………………………………………………….. 99
3.14. Изменение прав доступа к файлам………………………………………………………………………………… 101
3.15. Изменение информации о владельце файла…………………………………………………………………. 102
3.16. Получение снимка экрана……………………………………………………………………………………………… 103
3.17. Установка программного обеспечения с помощью менеджера пакетов apt…………….. 104
3.18. Удаление программного обеспечения, установленного с помощью менеджера пакетов apt 106
3.19. Установка Python-пакетов с помощью утилиты pip3………………………………………………….. 107
3.20. Скачивание файлов в окне терминала………………………………………………………………………….. 107
3.21. Скачивание исходного кода с помощью утилиты Git…………………………………………………. 108
3.22. Скачивание кода, используемого в этой книге…………………………………………………………….. 111
3.23. Автоматический запуск программы на этапе начальной загрузки……………………………. 113
3.24. Автоматический запуск программы в качестве службы……………………………………………… 114
3.25. Автоматический запуск программы с регулярным временным интервалом…………….. 116
3.26. Поиск файла…………………………………………………………………………………………………………………….. 117
3.27. Использование истории командной строки………………………………………………………………….. 118
3.28. Отслеживание степени загруженности процессора…………………………………………………….. 120
3.29. Работа с файловыми архивами……………………………………………………………………………………… 122
3.30. Отображение списка подключенных USB-устройств…………………………………………………. 123
3.31. Перенаправление вывода из командной строки в файл………………………………………………. 123
3.32. Конкатенация файлов…………………………………………………………………………………………………….. 124
3.33. Использование конвейеров…………………………………………………………………………………………….. 125
3.34. Скрытие вывода команд в окне терминала………………………………………………………………….. 125
3.35. Запуск программ в фоновом режиме…………………………………………………………………………….. 126
3.36. Создание псевдонима команды…………………………………………………………………………………….. 127
3.37. Настройка даты и времени…………………………………………………………………………………………….. 128
3.38. Получение информации об объеме доступного пространства на SD-карте……………… 128
3.39. Получение информации об используемой версии операционной системы………………. 129
3.40. Обновление операционной системы Raspberry Pi OS………………………………………………….. 130
Глава 4. Использование готового программного обеспечения……………… 132
4.0. Введение…………………………………………………………………………………………………………………………….. 132
4.1. Создание медиацентра…………………………………………………………………………………………………….. 132
4.2. Установка рекомендуемого программного обеспечения………………………………………………. 134
4.3. Использование офисного программного обеспечения………………………………………………….. 136
4.4. Запуск эмулятора винтажной игровой приставки…………………………………………………………. 138
4.5. Превращение устройства Raspberry Pi в FM-передатчик……………………………………………… 140
4.6. Редактирование растровых изображений………………………………………………………………………. 142
4.7. Редактирование векторных изображений………………………………………………………………………. 143
4.8. Использование приложения Bookshelf……………………………………………………………………………. 145
4.9. Прослушивание интернет-радио…………………………………………………………………………………….. 146
4.10. Использование программы Visual Studio Code…………………………………………………………….. 147
4.11. Управление лазерным гравером……………………………………………………………………………………. 149
Глава 5. Основы программирования на языке Python………………………….. 154
5.0. Введение…………………………………………………………………………………………………………………………….. 154
5.1. Выбор между Python 2 и Python 3…………………………………………………………………………………… 154
5.2. Выбор редактора кода для языка Python……………………………………………………………………….. 155
5.3. Редактирование Python-программ в редакторе Thonny………………………………………………… 156
5.4. Редактирование Python-программ в редакторе Mu……………………………………………………….. 158
5.5. Использование консоли языка Python…………………………………………………………………………….. 162
5.6. Запуск Python-программ из терминала…………………………………………………………………………… 164
5.7. Присвоение значений переменным………………………………………………………………………………….. 165
5.8. Отображение результатов……………………………………………………………………………………………….. 166
5.9. Чтение пользовательского ввода…………………………………………………………………………………….. 167
5.10. Использование арифметических операторов………………………………………………………………. 167
5.11. Создание строк……………………………………………………………………………………………………………….. 169
5.12. Конкатенация (объединение) строк………………………………………………………………………………. 170
5.13. Преобразование чисел в строки…………………………………………………………………………………….. 171
5.14. Преобразование строки в число……………………………………………………………………………………. 171
5.15. Определение длины строки……………………………………………………………………………………………. 172
5.16. Определение позиции подстроки в строке……………………………………………………………………. 173
5.17. Извлечение части строки……………………………………………………………………………………………….. 173
5.18. Замена в строке одной подстроки на другую………………………………………………………………. 175
5.19. Перевод строки в верхний или нижний регистр…………………………………………………………… 175
5.20. Условное выполнение команд: оператор if………………………………………………………………….. 176
5.21. Сравнение значений……………………………………………………………………………………………………….. 177
5.22. Использование логических операторов……………………………………………………………………….. 179
5.23. Выполнение цикла определенное количество раз………………………………………………………. 180
5.24. Выполнение цикла до изменения результата условия………………………………………………… 181
5.25. Выход из цикла……………………………………………………………………………………………………………….. 181
5.26. Определение функции в языке Python…………………………………………………………………………… 182
Глава 6. Списки и словари в языке Python…………………………………………… 186
6.0. Введение…………………………………………………………………………………………………………………………….. 186
6.1. Создание списка……………………………………………………………………………………………………………….. 186
6.2. Осуществление доступа к элементам списка…………………………………………………………………. 187
6.3. Определение длины списка……………………………………………………………………………………………… 188
6.4. Добавление элементов в список………………………………………………………………………………………. 188
6.5. Удаление элементов из списка………………………………………………………………………………………… 189
6.6. Создание списка путем синтаксического анализа строки……………………………………………. 190
6.7. Итеративный обход списка……………………………………………………………………………………………… 191
6.8. Итеративный обход элементов списка с одновременным извлечением индекса элементов 192
6.9. Проверка наличия в списке определенного элемента…………………………………………………… 193
6.10. Сортировка списка…………………………………………………………………………………………………………. 194
6.11. Вырезание части списка………………………………………………………………………………………………… 194
6.12. Использование генератора списков………………………………………………………………………………. 195
6.13. Создание словаря……………………………………………………………………………………………………………. 197
6.14. Доступ к словарю……………………………………………………………………………………………………………. 199
6.15. Удаление элементов словаря…………………………………………………………………………………………. 200
6.16. Итеративный обход словаря………………………………………………………………………………………….. 200
Глава 7. Продвинутые возможности языка Python……………………………….. 202
7.0. Введение…………………………………………………………………………………………………………………………….. 202
7.1. Форматирование чисел…………………………………………………………………………………………………….. 202
7.2. Форматирование значений даты и времени…………………………………………………………………… 204
7.3. Возвращение нескольких значений…………………………………………………………………………………. 205
7.4. Определение класса………………………………………………………………………………………………………….. 206
7.5. Определение метода…………………………………………………………………………………………………………. 208
7.6. Наследование……………………………………………………………………………………………………………………. 209
7.7. Запись данных в файл………………………………………………………………………………………………………. 210
7.8. Чтение данных из файла…………………………………………………………………………………………………… 211
7.9. Использование модуля pickle для выгрузки и загрузки данных из файла…………………… 212
7.10. Обработка исключений………………………………………………………………………………………………….. 213
7.11. Использование модулей…………………………………………………………………………………………………. 215
7.12. Генерирование случайных чисел………………………………………………………………………………….. 217
7.13. Выполнение сетевых запросов из Python-кода……………………………………………………………. 218
7.14. Указание аргументов командной строки в языке Python…………………………………………….. 219
7.15. Запуск команд Linux из Python-кода…………………………………………………………………………….. 220
7.16. Отправка электронных писем из Python-кода……………………………………………………………… 221
7.17. Создание простого веб-сервера на языке Python…………………………………………………………. 224
7.18. «Ничегонеделание» в языке Python……………………………………………………………………………….. 226
7.19. Одновременное выполнение нескольких задач……………………………………………………………. 227
7.20. Синтаксический анализ данных в формате JSON………………………………………………………… 229
7.21. Сохранение словарей в виде JSON-файла……………………………………………………………………. 231
7.22. Создание пользовательских интерфейсов……………………………………………………………………. 232
7.23. Применение регулярных выражений для поиска совпадений в тексте
по заданному шаблону…………………………………………………………………………………………………… 234
7.24. Применение регулярных выражений для проверки корректности
введенных данных………………………………………………………………………………………………………….. 237
7.25. Применение регулярных выражений для автоматического извлечения данных из веб-страниц 238
Глава 8. Компьютерное зрение…………………………………………………………….. 240
8.0. Введение…………………………………………………………………………………………………………………………….. 240
8.1. Установка библиотеки OpenCV………………………………………………………………………………………. 240
8.2. Настройка USB-камеры для использования в системе компьютерного зрения………….. 241
8.3. Использование модуля камеры для Raspberry Pi в системе компьютерного зрения…… 243
8.4. Подсчет количества монет……………………………………………………………………………………………….. 244
8.5. Распознавание лиц……………………………………………………………………………………………………………. 247
8.6. Регистрация движения………………………………………………………………………………………………………. 250
8.7. Извлечение текста из изображения…………………………………………………………………………………. 253
Глава 9. Машинное обучение……………………………………………………………….. 254
9.0. Введение…………………………………………………………………………………………………………………………….. 254
9.1. Распознавание объектов в видеопотоке с помощью библиотеки TensorFlow Lite………. 255
9.2. Реагирование на наличие объектов в видеопотоке с помощью библиотеки TensorFlow Lite 257
9.3. Распознавание звуков с помощью библиотеки TensorFlow Lite……………………………………. 260
9.4. Реагирование на свист с помощью библиотеки TensorFlow Lite…………………………………… 261
9.5. Установка платформы Edge Impulse……………………………………………………………………………….. 264
9.6. Распознавание речевых команд (с помощью облачного сервиса)……………………………….. 265
9.7. Распознавание речевых команд (локальное)…………………………………………………………………. 270
9.8. Реагирование на речевые команды в Python-коде…………………………………………………………. 273
Глава 10. Основы работы с оборудованием………………………………………….. 276
10.0. Введение………………………………………………………………………………………………………………………….. 276
10.1. Знакомство с разъемом GPIO…………………………………………………………………………………………. 276
10.2. Использование разъема GPIO на устройстве Raspberry Pi 400…………………………………… 279
10.3. Как не вывести из строя Raspberry Pi при использовании разъема GPIO………………….. 281
10.4. Настройка интерфейса I2C…………………………………………………………………………………………….. 282
10.5. Использование пакета i2c-tools…………………………………………………………………………………….. 284
10.6. Настройка интерфейса SPI…………………………………………………………………………………………….. 286
10.7. Установка библиотеки pyserial для обеспечения доступа
к последовательному порту из Python-кода…………………………………………………………………. 287
10.8. Установка утилиты Minicom для тестирования последовательного порта……………… 288
10.9. Использование макетной платы и соединительных проводов…………………………………… 290
10.10. Использование «осьминожного» модуля Raspberry Squid………………………………………… 291
10.11. Использование «осьминожного» модуля кнопки Raspberry Squid Button……………….. 293
10.12. Преобразование уровня сигнала с 5 до 3,3 В с помощью двух резисторов……………. 295
10.13. Преобразование уровня сигналов с 5 до 3,3 В с помощью модуля
преобразователя уровней…………………………………………………………………………………………….. 296
10.14. Запитывание Raspberry Pi от литий-полимерного аккумулятора…………………………….. 297
10.15. Основы работы с платой Sense HAT…………………………………………………………………………… 299
10.16. Основы работы с платой Explorer HAT Pro………………………………………………………………… 301
10.17. Создание собственной платы стандарта HAT…………………………………………………………… 302
10.18. Использование моделей Raspberry Pi Zero 2 и Zero 2 W……………………………………………. 305
Глава 11. Управление оборудованием………………………………………………….. 307
11.0. Введение………………………………………………………………………………………………………………………….. 307
11.1. Подключение светодиода………………………………………………………………………………………………. 307
11.2. Перевод контактов GPIO в безопасное состояние перед выходом из программы……. 311
11.3. Управление яркостью светодиода………………………………………………………………………………… 312
11.4. Коммутация мощных устройств постоянного тока с помощью транзистора…………… 314
11.5. Коммутация мощных устройств с помощью реле……………………………………………………….. 317
11.6. Коммутация устройств с помощью твердотельного реле…………………………………………… 320
11.7. Управление высоковольтными устройствами переменного тока………………………………. 322
11.8. Управление оборудованием с помощью смартфона на ОС Android и технологии Bluetooth 323
11.9. Создание пользовательского интерфейса для включения и выключения устройств.. 326
11.10. Создание пользовательского интерфейса для ШИМ-управления мощностью светодиодов и двигателей 327
11.11. Создание пользовательского интерфейса для изменения цвета RGB-светодиода…. 329
11.12. Использование аналогового измерителя в качестве устройства отображения………. 331
Глава 12. Двигатели……………………………………………………………………………… 334
12.0. Введение………………………………………………………………………………………………………………………….. 334
12.1. Управление сервоприводами…………………………………………………………………………………………. 334
12.2. Прецизионное управление сервоприводами………………………………………………………………… 339
12.3. Прецизионное управление несколькими сервоприводами………………………………………….. 342
12.4. Управление скоростью вращения двигателя постоянного тока…………………………………. 345
12.5. Управление направлением вращения двигателя постоянного тока…………………………… 347
12.6. Использование униполярного шагового двигателя…………………………………………………….. 350
12.7. Использование биполярного шагового двигателя……………………………………………………….. 355
12.8. Управление биполярным шаговым двигателем с помощью платы стандарта HAT… 357
Глава 13. Цифровые входы………………………………………………………………….. 360
13.0. Введение………………………………………………………………………………………………………………………….. 360
13.1. Подключение кнопки………………………………………………………………………………………………………. 360
13.2. Использование кнопки для переключения между двумя состояниями………………………. 363
13.3. Использование двухпозиционного или ползункового переключателя……………………… 365
13.4. Использование трехпозиционного переключателя с выключением
в среднем положении……………………………………………………………………………………………………… 366
13.5. Устранение дребезга контактов, возникающего при нажатии кнопки………………………. 369
13.6. Использование внешнего подтягивающего резистора………………………………………………… 370
13.7. Использование импульсного датчика угла поворота…………………………………………………. 372
13.8. Использование цифровой клавиатуры………………………………………………………………………….. 375
13.9. Обнаружение движения………………………………………………………………………………………………….. 379
13.10. Подключение к Raspberry Pi GPS-модуля……………………………………………………………………. 381
13.11. Перехват нажатий клавиш…………………………………………………………………………………………… 383
13.12. Перехват движений мыши……………………………………………………………………………………………. 385
13.13. Снабжение устройства Raspberry Pi кнопкой питания……………………………………………… 386
Глава 14. Датчики………………………………………………………………………………… 390
14.0. Введение………………………………………………………………………………………………………………………….. 390
14.1. Использование резистивных датчиков…………………………………………………………………………. 390
14.2. Измерение освещенности……………………………………………………………………………………………….. 394
14.3. Измерение температуры с помощью термистора………………………………………………………… 396
14.4. Обнаружение загазованности метаном………………………………………………………………………… 398
14.5. Измерение качества воздуха (концентрации CO2)……………………………………………………….. 401
14.6. Измерение влажности почвы…………………………………………………………………………………………. 403
14.7. Измерение напряжения…………………………………………………………………………………………………… 406
14.8. Снижение напряжения перед его измерением………………………………………………………………. 409
14.9. Использование резистивных датчиков совместно с АЦП……………………………………………. 411
14.10. Измерение температуры с помощью АЦП………………………………………………………………….. 413
14.11. Измерение температуры процессора устройства Raspberry Pi………………………………… 415
14.12. Измерение температуры, влажности и давления с помощью платы Sense HAT…….. 416
14.13. Измерение температуры с помощью цифрового датчика…………………………………………. 418
14.14. Измерение ускорения с помощью модуля MMA8452Q…………………………………………….. 421
14.15. Определение направления на магнитный север с помощью платы Sense HAT………. 426
14.16. Использование инерциального измерительного блока платы Sense HAT………………. 427
14.17. Обнаружение магнита с помощью геркона………………………………………………………………… 428
14.18. Обнаружение магнита с помощью платы Sense HAT……………………………………………….. 429
14.19. Измерение расстояния с помощью ультразвука………………………………………………………… 430
14.20. Измерение расстояния с помощью датчика времени пролета (Time-of-Flight)……….. 433
14.21. Наделение устройства Raspberry Pi тактильным интерфейсом……………………………….. 436
14.22. Чтение смарт-карт с помощью устройства для чтения/записи RFID-карт……………… 438
14.23. Отображение показаний датчика……………………………………………………………………………….. 442
14.24. Сохранение результатов измерений на флеш-накопителе с интерфейсом USB……… 443
Глава 15. Дисплеи………………………………………………………………………………… 447
15.0. Введение………………………………………………………………………………………………………………………….. 447
15.1. Использование четырехразрядного светодиодного индикатора……………………………….. 447
15.2. Отображение графики на светодиодной матрице с интерфейсом I2C……………………….. 450
15.3. Использование светодиодного матричного дисплея платы Sense HAT…………………….. 452
15.4. Использование графического OLED-дисплея………………………………………………………………. 454
15.5. Использование адресуемой светодиодной ленты из RGB-светодиодов……………………. 457
15.6. Использование платы Pimoroni Unicorn HAT……………………………………………………………….. 461
15.7. Использование дисплея на основе «электронной бумаги»…………………………………………. 462
Глава 16. Звук………………………………………………………………………………………. 465
16.0. Введение………………………………………………………………………………………………………………………….. 465
16.1. Подключение акустической системы……………………………………………………………………………. 465
16.2. Выбор выходного аудиоустройства…………………………………………………………………………….. 467
16.3. Воспроизведение звука на устройстве Raspberry Pi, не имеющем аудиоразъема…….. 468
16.4. Воспроизведение звука из командной строки………………………………………………………………. 470
16.5. Воспроизведение звука из Python-кода………………………………………………………………………… 471
16.6. Использование USB-микрофона……………………………………………………………………………………. 472
16.7. Генерирование зуммерного сигнала…………………………………………………………………………….. 474
Глава 17. Интернет вещей……………………………………………………………………. 476
17.0. Введение………………………………………………………………………………………………………………………….. 476
17.1. Управление выходами GPIO с помощью веб-интерфейса…………………………………………… 476
17.2. Отображение показаний датчиков на веб-странице……………………………………………………. 481
17.3. Основы работы с редактором Node-RED……………………………………………………………………… 484
17.4. Отправка электронных писем и других уведомлений с помощью сервиса IFTTT……. 488
17.5. Отправка твитов с помощью сервиса ThingSpeak……………………………………………………….. 493
17.6. Изменение цвета светодиодов с помощью сервиса CheerLights…………………………………. 495
17.7. Отправка показаний датчика в канал сервиса ThingSpeak………………………………………… 497
17.8. Реагирование на твиты с использованием сервисов Dweet и IFTTT………………………….. 500
Глава 18. Домашняя автоматизация…………………………………………………….. 504
18.0. Введение………………………………………………………………………………………………………………………….. 504
18.1. Превращение Raspberry Pi в брокер сообщений с помощью Mosquitto……………………… 504
18.2. Использование редактора Node-RED совместно с MQTT-сервером………………………….. 507
18.3. Прошивка умного выключателя Sonoff на основе Wi-Fi под использование протокола MQTT 513
18.4. Настройка умного выключателя Sonoff на основе Wi-Fi……………………………………………. 519
18.5. Управление подключаемым к Интернету выключателем Sonoff
с помощью протокола MQTT………………………………………………………………………………………… 521
18.6. Управление выключателем Sonoff с помощью редактора Node-RED………………………. 524
18.7. Включение и выключение различных приборов с помощью расширения Dashboard для редактора Node-RED 527
18.8. Выполнение запланированных действий с помощью редактора Node-RED……………. 532
18.9. Публикация MQTT-сообщений с помощью платы Wemos D1……………………………………. 534
18.10. Управление платой Wemos D1 с помощью редактора Node-RED…………………………… 537
Глава 19. Raspberry Pi Pico и Pico W…………………………………………………….. 540
19.0. Введение………………………………………………………………………………………………………………………….. 540
19.1. Подключение устройства Pico или Pico W к компьютеру……………………………………………. 542
19.2. Использование консоли языка Python на устройстве Pico………………………………………….. 545
19.3. Использование устройства Pico совместно с макетной платой………………………………….. 547
19.4. Использование цифровых выходов устройства Pico…………………………………………………… 549
19.5. Использование цифровых входов устройства Pico……………………………………………………… 552
19.6. Использование аналоговых выходов (ШИМ) устройства Pico…………………………………… 554
19.7. Использование аналоговых входов устройства Pico…………………………………………………… 555
19.8. Управление сервоприводом с помощью устройства Pico…………………………………………… 558
19.9. Использование файловой системы устройств Pico и Pico W……………………………………….. 561
19.10. Использование второго ядра процессора…………………………………………………………………… 564
19.11. Запуск веб-сервера с интерфейсом Wi-Fi на устройстве Pico W……………………………….. 565
19.12. Использование аналогов устройства Pico………………………………………………………………….. 569
19.13. Использование устройства Pico с питанием от батареек………………………………………….. 572
Приложение 1. Поставщики и комплектующие……………………………………. 574
Поставщики………………………………………………………………………………………………………………………………. 574
Оборудование и комплекты для прототипирования…………………………………………………………….. 575
Резисторы и конденсаторы……………………………………………………………………………………………………… 576
Транзисторы и диоды……………………………………………………………………………………………………………… 576
Интегральные схемы……………………………………………………………………………………………………………….. 577
Оптоэлектроника……………………………………………………………………………………………………………………… 577
Модули……………………………………………………………………………………………………………………………………… 577
Прочее………………………………………………………………………………………………………………………………………. 579
Приложение 2. Схема расположения выводов устройства Raspberry Pi.. 580
Raspberry Pi 400/4/3/2, модели B, B+, A+, Zero……………………………………………………………………… 580
Raspberry Pi, модель B второй ревизии, модель A…………………………………………………………………. 580
Raspberry Pi, модель B первой ревизии………………………………………………………………………………….. 581
Raspberry Pi Pico……………………………………………………………………………………………………………………….. 581
Предметный указатель…………………………………………………………………………. 582
Об авторе……………………………………………………………………………………………… 590
Об изображении на обложке………………………………………………………………… 591



