КулЛиб - Классная библиотека! Скачать книги бесплатно 

Станьте мобильнее с самым маленьким в мире Raspberry Pi Zero W [Василис Циварас] (pdf) читать онлайн

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


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

K

\

Raspberry Pi
Zero W Wireless
Projects
7"

Go mobile with the world's most popular microprocessor

Packt>

Беспроводные проекты на
Raspberry Pi Zero W

Станьте мобильнее с самым маленьким в
мире Raspberry Pi Zero W

Василис Циварас

Об авторе
Василис Циварасис, инженер по информатике, живет в Греции. Он является автором
книги «Создание квадрокоптера с помощью Arduino», а также председателем
студенческого отделения Университета IEEE в Янине. В настоящее время он
работает над проектами, связанными с робототехникой, домашней автоматикой и
интеллектуальными системами безопасности. Он также является энтузиастом
технологий Интернета вещей и дронов.

Оглавление
Предисловиe
Глава 1: Введение в Raspberry Pi Zero W
Семейство Raspberry Pi
Raspberry Pi Zero W
Характеристики
Поддержка камеры
Аксессуары
OTG-кабель
PowerHub
Разъем GPIO
Карта MicroSD и адаптер карты
Кабель HDMI-mini HDMI
Кабель HDMI-VGA
Разъемы RCA
Корпус Raspberry Pi Zero W
Распределения
Дистрибутив NOOBS
Дистрибутив Raspbian
Дистрибьюторы
Общие проблемы
Шаги отладки
Проблема с картой MicroSD
Защита корпуса
Резюме

1
6
6
11
12
15
15
16
17
18
19
19
20
21
21
22
23
24
26
27
27
28
28
28

Глава 2: Интернет вещей и сети

29

Интернет вещей
Основные протоколы связи
Интернет-протоколы
IoT Protocols

29
30
31
31
32
32
32
33
33
33

Bluetooth
Zigbee
Z-Wave
6LowPAN
NFC
Wi-Fi

LoRaWAN

Подключение вашего Pi
Настройка Pi Zero W
Интернет
Локальная сеть
Перенаправление портов
Подключение к интернету
Сетевое администрирование
Подключиться для выполнения команды
Автоматическая аутентификация
Подключение для передачи файлов
FileZilla
SCP
Защита Raspberry Pi
Брандмауэр
Резюме

Глава 3: Чат-бот

33
34
34
34
35
37
37
38
39
40
41
41
43
43
44
45
46

Пользовательский ввод
Установка сервера
Разработка чат-бота
Услуги чата
Чатфуэль
Frow XO
Converse
Мессенджер Facebook
Умный робот Google
Безопасная передача данных
Резюме

46
47
51
54
54
55
55
56
57
58
58

Глава 4: Мобильный робот

59

Основы робототехники
Двигатели постоянного тока
Крутящий момент
Колесо
Энкодеры
Обзор компонентов
Мотор DC и колеса
Энкодер
Arduino

59
61
62
63
64
66
69
70
71

[]

Моторшилд
Сервопривод
Ультразвуковой датчик
Bluetooth
Макетная плата
Батарея
Другие компоненты
Пайка двигателя
Программирование контроллера
Основная концепция
Разработка контроллера
Идеи будущего
Четырехмоторные мобильные роботы
Резюме

Глава 5: Домашний бот

73
74
75
78
80
81
82
82
84
85
85
88
89
93
94

Знакомство с домашними ботами
Программирование сокетов
Простое взаимодействие клиент-сервер
Простой сервер
Простой клиент

Расширенная связь клиент-сервер
Расширенный сервер
Расширенный клиент

Домашняя автоматика
Резюме

Глава 6: Камера наблюдения

94
95
96
97
100
102
102
107
108
111
112

Установка камеры
Установка MotionPie
Настройка нескольких сетевых камер
Подключение камеры за пределами вашей локальной сети
Настройка параметров MotionPie
Общие настройки
Беспроводная сеть
Видеоустройство
Файловое хранилище
Наложение текста
Потоковое видео
Неподвижные изображения
Обнаружение движения

[]

112
115
116
116
117
118
119
119
121
121
121
123
123

Кинофильмы
Уведомления о движении
График работы
Установка OpenCV
Распознавание лиц
Резюме

123
124
124
125
126
131

Глава 7: Портативные динамики

132

Market speakers
Настройка программы
Networking
Музыкальная шкатулка
Аудиo
Музыкальные файлы
Музыкальные онлайн-сервисы
Безопасность
Звуковые проигрыватели
Альсамиксер
Подключение динамика
Музыка на Pi
Выбор настроения
Аппаратные средства
Code
Резюме

Глава 8: Хостинг WebPi

132
134
136
136
137
137
138
138
138
139
140
141
143
144
145
146
147

Web хостинг
Определение
Услуги хостинга
Доменное имя
DNS
Настройка
Взаимодействие клиент-сервер
Запрос клиента
Протоколы связи
Ответ сервера
Прокси-серверы и кеширование
Разработка сайта
XAMPP/LAMPP
Доступ к веб-сайту

[]

147
147
149
150
151
151
152
152
153
154
155
156
157
158

ПДУ
SSH

158
159
159
159
163
164
165
166
167
168
169
170
171
172
173
173
175
175
175

SSH-клиенты
Windows
Linux
Автоматизация процедуры SSH

SFTP
FileZilla
Терминал

Networking
Доступ к роутеру
Перенаправление портов
Домашний IP-адрес
Слои безопасности

Безопасность
Интерфейс роутера
Компьютер
ISP

Резюме

Глава 9: AlexaPi

176

Создание аккаунта разработчика Amazon
Настройка Raspberry Pi
Установка Alexa
Распознавание голоса
Официальная Alexa против AlexaPi
Сетевое администрирование
Резюме

Глава 10: WeatherPi

176
184
185
186
187
188
194
195

Модуль Sense HAT
Метеостанция
Исходное состояниe
Запуск
Резюме

195
197
204
209
212

[]

Предисловие
Новый член семейства Raspberry Pi оснащен модулями беспроводной связи и
Bluetooth. С помощью этой книги вы сможете создавать потрясающие проекты,
которые позволят вам изучить возможности новой платы. Всего за 10 долларов вы
можете развить навыки и стать частью нового мира, где вы сможете разрабатывать
своих роботов, системы домашней автоматики, повышать уровень безопасности в
своем доме и многое другое.

Что охватывает эта книга
В главе 1 «Введение в Raspberry Pi Zero W» будет представлена ​новая плата с
беспроводным расширением. Мы упомянем некоторые модули, которые вы
можете купить, и дадим общий обзор новой платы.
В главе 2 «Интернет вещей и сети» речь пойдет об Интернете вещей. Плата
Raspberry Pi Zero W очень мала, что делает ее идеальной платой для проектов IoT.
Она также оснащена Bluetooth Low Energy (BLE), который минимизирует
потребление энергии. Наконец, мы дадим введение в сеть и как вы будете
взаимодействовать с платой.
В главе 3 «Чат-бот» будет разработан чат-бот. В настоящее время чат-боты
распространены повсеместно и обычно состоят из клиента и сервера. Итак, мы
начнем с создания клиента, а затем закончим главу реализацией серверной части.
Мы также упомянем некоторые протоколы, которые используют чат-боты.
Глава 4 «Мобильный робот» будет посвящена робототехнике. Вы узнаете, как
построить двухколесного мобильного робота, и в этой главе вы изучите основы
робототехники, необходимые навыки для разработки любого типа робота.
В главе 5 «Домашний бот» объясняется, как создать домашнего бота и
автоматизировать свой дом с помощью команд с локального веб-сайта или
мобильного телефона. Будет реализована и описана общая система домашней
автоматики.
В главе 6 «Камера видеонаблюдения» будет продемонстрирована
реализациясистемы безопасности. Добавление камеры в ваш дом делает его
умнее, и вывсегда можете видеть и записывать то, что происходит.

Предисловие

Глава 7, Портативные колонки, глава посвящена музыке. Поскольку Raspberry Pi Zero
W довольно мал, его довольно легко смонтировать с несколькими динамиками в
портативные колонки, чтобы слушать любимую музыку в любом месте. Вам нужен
только внешний аккумулятор.
Глава 8, Хостинг WebPi, посвящена веб-хостингу и разработке. С платой
Raspberry Pi Zero W вы можете размещать веб-сайты и разрабатывать простые
сайты, которые помогут вам управлять своим домом и автоматизировать работу.
В этой главе вы узнаете, как создать веб-сайт, загрузить его на Raspberry Pi и
опубликовать в мировом сообществе.
Глава 9, AlexaPi, посвящена Alexa Voice Service (AVS) от Amazon. Мы загрузим AVS
на нашу плату Raspberry Pi Zero W и разработаем систему, которая позволит нам
управлять всем, что подключено к AVS. Мы также можем поговорить с Alexa и
получить ответы на такие вопросы, как «Который час?».
В главе 10, WeatherPi, будет разработана метеостанция, с помощью которой вы
сможете получать измерения температуры и влажности в своем доме или любом
другом месте.

Что нужно для этой книги
Даже если вы работает во всех операционных системах, лучше иметь
операционную систему Linux. Очевидно, вам нужен базовый комплект Raspberry Pi
Zero W с камерой. Кроме того, вам понадобится модуль SenseHAT и микрофон или
гарнитура. Вам также понадобится динамик Bluetooth и, наконец, все компоненты,
необходимые для двухколесного мобильного робота.

Для кого эта книга
Если вы любитель или энтузиаст, который хочет купить новейшую версию
RaspberryPi Zero W и использовать ее для создания интересных беспроводных
проектов, эта книга для вас. Знание предварительного программирования с
некоторым опытом работы с электроникой было бы полезно.

[2]

Введение в Raspberry Pi
Zero W

1

Raspberry Pi Zero W — новый продукт семейства Raspberry Pi Zero. В начале 2017
года сообщество Raspberry Pi анонсировало новую плату с беспроводным
расширением. Он предлагает беспроводную функциональность, и теперь каждый
может разработать свой собственный проект без кабелей или других компонентов.
Сравнивая новую плату с Raspberry Pi 3 Model B, мы легко видим, что она намного
меньше, с множеством возможностей для Интернета вещей. Однако что такое
Raspberry Pi Zero W и зачем он вам нужен? Давайте пройдемся по остальным членам
семьи и представим новую плату. В этой главе мы рассмотрим следующие темы:
Обзор семейства Raspberry Pi
Введение в новый Raspberry Pi Zero W
Распространение
Дистрибьюторы
Общие проблемы

Семейство Raspberry Pi
Как упоминалось ранее, Raspberry Pi Zero W является новым членом семейства плат
Raspberry Pi. На протяжении многих лет Raspberry Pi развивался и становился все
более удобным для пользователя благодаря безграничным возможностям. Давайте
посмотрим на остальную часть семейства, чтобы понять, чем отличается плата Pi
Zero.

Introduction to Raspberry Pi Zero W

На данный момент последняя плата называется Raspberry Pi 3 Model B. Это лучшее
решение для таких проектов, как распознавание лиц, отслеживание видео, игры или
что-то еще, что требует больших ресурсов:

A Raspberry Pi 3 model

Это третье поколение плат Raspberry Pi после Raspberry Pi 2, имеющее следующие
характеристики:
64-разрядный четырехъядерный процессор ARMv8 с тактовой частотой 1,2 ГГц.
Беспроводная локальная сеть 802.11n
Bluetooth 4.1
Bluetooth Low Energy (BLE) - Bluetooth с низким энергопотреблением

[7]

Introduction to Raspberry Pi Zero W

Как и Pi 2, он также имеет:
1 ГБ оперативной памяти
4 порта USB
40 контактов GPIO
Полный порт HDMI
Порт Ethernet
Комбинированный аудиоразъем 3,5 мм и композитное видео
Интерфейс камеры (CSI)
Интерфейс дисплея (DSI)
Слот для карты MicroSD
Video Core IV 3D графическое ядро
Следующая плата — Raspberry Pi Zero, на которой основана Zero W, небольшая и
недорогая силовая плата, способная на многое:

Плата Raspberry Pi Zero

[8]

Introduction to Raspberry Pi Zero W

Технические характеристики этой платы следующие:
1 ГГц, одноядерный процессор
512 МБ ОЗУ
Порт мини-HDMI
OTG-порт микро-USB
Питание микро-USB
HAT-совместимый 40-контактный разъем
Композитное видео
Разъем камеры CSI (только v1.3)
На этом этапе помимо плат, упомянутых ранее, есть несколько других
доступных модулей и компонентов, таких как Sense Hat или Raspberry Pi Touch
Display, которые хорошо подойдут для продвинутых проектов.
7-дюймовый сенсорный монитор Raspberry Pi дает пользователям возможность
создавать универсальные интегрированные проекты, такие как планшеты,
информационно-развлекательные системы и встроенные проекты:

Сенсорный дисплей Raspberry Pi

[9]

Introduction to Raspberry Pi Zero W

Sense HAT — это дополнительная плата для Raspberry Pi, созданная специально для
миссии Astro Pi. Sense HAT имеет светодиодную матрицу RGB 8x8, пятикнопочный
джойстик и включает в себя следующие датчики:
Гироскоп
Акселерометр
Магнитометр
Температура
Барометр
Влажность

Плата Sense HAT

[ 10 ]

Introduction to Raspberry Pi Zero W

Следите за новыми платами и модулями на официальном сайте
.
https://www.raspberrypi.org.

Raspberry Pi Zero W
Raspberry Pi Zero W — это небольшое устройство, которое можно подключить как к
внешнему монитору, так и к телевизору и, конечно же, к Интернету. Операционная
система различается, так как на официальной странице много дистрибутивов и почти
каждый дистрибутив основан на Linux:

Raspberry Pi Zero W

С Raspberry Pi Zero W у вас есть возможность делать практически все, от автоматики
до игр! Это небольшой компьютер, который позволяет легко программировать через
контакты GPIO и некоторых других компонентов, таких как камера. Его возможности
безграничны! В следующей главе вы проведете несколько замечательных проектов с
этой новой платой. Поскольку почти все входы и выходы на плате Raspberry Pi Zero W
проходят через контакты GPIO, важно знать распиновку. Ниже приведена схема
разводки платы Raspberry Pi Zero W, которая может пригодиться при пайке кнопок или
других типов датчиков на плату Raspberry Pi:

[ 11 ]

Introduction to Raspberry Pi Zero W

Характеристики
Если вы купили Raspberry Pi 3 Model B, вы знакомы с беспроводным чипом Cypress
CYW43438. Он обеспечивает подключение к беспроводной локальной сети 802.11 n и
Bluetooth 4.0. Новый Raspberry Pi Zero W также оснащен этим беспроводным чипом.
Ниже приведены технические характеристики платы:
Размеры: 65 mm × 30 mm × 5 mm
SoC: чип Broadcom BCM 2835
ARM11 с тактовой частотой 1 ГГц, одноядерный процессор
512 МБ ОЗУ
Память: карта MicroSD
Видео и аудио: HD-видео 1080p и стереозвук через разъем mini HDMI
Питание: 5 В через разъем micro-USB.
Wireless: беспроводная локальная сеть 802.11n 2,4 ГГц
Bluetooth: классический Bluetooth 4.0 с низким энергопотреблением (BLE)
Выход: микро -USB
GPIO: 40-контактный GPIO, незаполненный

[ 12 ]

Introduction to Raspberry Pi Zero W

На следующем изображении мы видим Raspberry Pi Zero W :

Raspberry Pi Zero W

Обратите внимание, что все компоненты находятся в верхней части платы и
поэтому вы можете легко подобрать для нее корпус и сохранить плату в целости и
сохранности. Что касается антенны, то она формируется путем травления меди на
каждом слое печатной платы. Она может быть не видна, как в других подобных
платах, но отлично работает и предлагает довольно много функций:

[ 13 ]

Introduction to Raspberry Pi Zero W

Конденсаторы Raspberry Pi Zero W

Кроме того, продукт ограничен только одной штукой на покупателя и стоит 10 долларов.
Вы можете купить полный комплект с картой MicroSD, чехлом и
некоторыми дополнительными компонентами примерно за 45 долларов или выбрать
полный комплект с камерой, содержащей небольшой компонент камеры, за 55
долларов.

[ 14 ]

Introduction to Raspberry Pi Zero W

Поддержка камеры
Для проектов обработки изображений, таких как отслеживание видео или
распознавание лиц, требуется камера. На следующем изображении вы можете
увидеть официальную поддержку камеры для Raspberry Pi Zero W. Камеру можно
легко установить сбоку платы с помощью кабеля, аналогично плате Raspberry Pi 3
Model B.

Официальная поддержка камеры для Raspberry Pi Zero W

В зависимости от вашего дистрибутива вам может потребоваться включить камеру
через командную строку. Более подробная информация об использовании этого
модуля будет упомянута в главах проекта.

Аксессуары
При создании проектов с помощью этой платы есть несколько других гаджетов,
которые можно использовать для работы. Ниже приведен список некоторых важных
компонентов. Обратите внимание, что если вы покупаете комплект Raspberry Pi
Zero W, он включает в себя некоторые из них.
OTG-кабель
PowerHub
Разъем GPIO

[ 15 ]

Introduction to Raspberry Pi Zero W

Карта MicroSD и адаптер карты
Кабель HDMI-mini HDMI
Кабель HDMI-VGA

OTG-кабель
Во-первых, кабель OTG всегда пригодится. Вы можете использовать этоткабель для
питания вашего RaspberryPi от блока питания или любогодругого источника питания.

OTG-кабель

[ 16 ]

Introduction to Raspberry Pi Zero W

PowerHub
Вторым по важности компонентом является PowerHub. PowerHub — это устройство с
питанием от USB или внешнего источника питания, имеющее четыре или более
USB-портов:

PowerHub

[ 17 ]

Introduction to Raspberry Pi Zero W

Разъем GPIO
Далее вам может пригодиться модуль разъема GPIO. Поскольку Raspberry Pi Zero W
поставляется без припаянных контактов, полезно подключить контакты GPIO поверх
макетной платы:

Разъем GPIO

[ 18 ]

Introduction to Raspberry Pi Zero W

Карта MicroSD и адаптер карты
Вам также может понадобиться адаптер карты MicroSD, поскольку не на каждом
компьютере есть слот для карты MicroSD для чтения и записи данных. Он стоит
довольно много долларов, но сэкономит ваше время.

Карта MicroSD и адаптер карты

Кабель HDMI-mini HDMI
К сожалению, новый Raspberry Pi Zero W не имеет нормального порта HDMI. Он
немного меньше, и вам нужен кабель HDMI-mini HDMI, чтобы расширить порт до
обычного HDMI. Затем вы можете подключить к порту любое HDMI-совместимое
устройство. Итак, следующий кабель необходим:

[ 19 ]

Introduction to Raspberry Pi Zero W

Кабель HDMI-mini HDMI

Кабель HDMI-VGA
Поскольку многие мониторы не совместимы с HDMI, кабель HDMI-VGA позволяет
подключать кабель HDMI-мини-HDMI к внешнему монитору или телевизору. Когда
вам нужно что-то просмотреть на мониторе, а он не поддерживает HDMI,
необходим этот кабель:

Кабель HDMI-VGA

[ 20 ]

Introduction to Raspberry Pi Zero W

Разъемы RCA
Наконец, некоторые телевизоры все еще используют разъемы RCA. С помощью
этого модуля вы можете подключить плату Pi к разъему RCA на телевизоре, просто
соединив два провода + (сигнал) и - (земля) модуля.

Разъем RCA

Корпус Raspberry Pi Zero W
Поскольку Raspberry Pi Zero W будет использоваться для различных проектов,
рекомендуется потратить еще несколько долларов и купить корпус или купить полный
комплект, который поставляется с официальным корпусом, как показано на
следующем изображении. Официальный чехол достаточно защитный и открывает
только необходимые детали, позволяя вам полностью использовать свою плату. Вся
работа выполняется в Kinneir Dufort и T-Zero. Доступны следующие варианты:
Пустой
Один с выемкой для доступа к GPIO
Один с выемкой и точкой крепления камеры

[ 21 ]

Introduction to Raspberry Pi Zero W

Мы можем видеть корпус Raspberry Pi Zero W на следующем изображении:

Корпус Raspberry Pi Zero W

В официальный набор кейсов также входят:
Адаптер для короткой камеры, гибкий
Набор резиновых ножек, чтобы ваша новая плата Zero W не соскальзывала
со стола.

Дистрибутивы
Официальный сайт https://www.raspberrypi.org/downloads/ содержит несколько
дистрибутивов для скачивания. Две основные операционные системы, которые мы
проанализируем позже, — это Raspbian и NOOBS. Вы можете увидеть, как выглядит
среда рабочего стола на следующем изображении. И Raspbian, и NOOBS позволяют
выбирать из двух версий. Есть полная версия операционной системы и облегченная.
Очевидно, что облегченная версия не содержит всего, что вы могли бы
использовать, поэтому, если вы собираетесь использовать Raspberry с окружением
рабочего стола, выберите и загрузите полную версию.

[ 22 ]

Introduction to Raspberry Pi Zero W

С другой стороны, если вы собираетесь просто использовать SSH и делать некоторые
базовые вещи, выберите облегченный вариант. Это действительно зависит от вас, и,
конечно же, вы можете легко загрузить все, что вам нравится, и перезаписать карту
microSD.

Дистрибутив NOOBS
​ ​





Загрузите NOOBS с https://www.raspberrypi.org/downloads/noobs/.
Дистрибутив
NOOBS предназначен для новых пользователей, которые не обладают
достаточными знаниями о системах Linux и платах Raspberry Pi. Как говорится на
официальной странице, это действительно «Новое программа из коробки». загрузите
NOOBS и запишите свою собственную карту microSD. Если у вас возникли проблемы
с определенным дистрибутивом, взгляните на следующие ссылки:

Полное руководство:https://www.raspberrypi.org/learning/software-guide/
Посмотрите видео:https://www.raspberrypi.org/help/videos/#noobs-setup

[ 23 ]

Introduction to Raspberry Pi Zero W

Операционная система NOOBS содержит Raspbian и предоставляет различные
другие операционные системы, доступные для загрузки.

Дистрибутив Raspbian
Скачайте Raspbian с официальной страницы
​ ​



https://www.raspberrypi.org/downloads/raspbian/. Raspbian
— официально

поддерживаемая
операционная система. Его можно установить через NOOBS или
загрузив файл образа по следующей ссылке и пройдя руководство на официальном
сайте.
Файл изображения можно скачать с: https://www.raspberrypi.org/documentation/
​ ​



installation/installing-images/README.md





Он имеет множество предустановленных программ, таких как Python, Scratch, Sonic
Pi, Java и Mathematica.
Кроме того, дополнительные дистрибутивы, такие как Ubuntu MATE, Windows 10 IoT
Core или Weather Station, предназначены для установки для более конкретных
проектов, таких как IoT или метеостанции. В заключение, соответствующий
дистрибутив для установки на самом деле зависит от вашего проекта и вашего опыта
в системном администрировании Linux.
Raspberry Pi Zero W нужна карта MicroSD для размещения любой операционной
системы. Вы сможете загружать Raspbian, Noobs, Ubuntu MATE или любую другую
операционную систему, которая вам нравится. Итак, все, что вам нужно сделать, это
просто записать свою операционную систему на эту карту MicroSD. Прежде всего,
вам необходимо загрузить файл изображения с
https://www.raspberrypi.org/downloads/, который обычно поставляется в виде файла
.zip. После загрузки разархивируйте zip-файл; полный образ весит около 4,5
гигабайт. В зависимости от вашей операционной системы вы можете использовать
различные программы следующим образом:
7-Zip от Windows
Разархиватор для Mac
Unzip от Linux
Теперь мы должны записать образ на карту MicroSD. Вы можете легко записать файл
.img на карту MicroSD, следуя одному из этих руководств, в зависимости от вашей
системы.
Для пользователей Linux рекомендуется инструмент dd. Перед подключением карты
MicroSD с адаптером к компьютеру выполните следующую команду:
df -h

[ 24 ]

Introduction to Raspberry Pi Zero W

Теперь подключите карту и снова запустите ту же команду. Вы увидите несколько
новых записей. Например, если новое устройство называется /dev/sdd1, имейте в
виду, что карта будет /dev/sdd (без 1).
Следующим шагом будет использование команды dd и копирование файла .img на
карту MicroSD. Мы можем сделать это с помощью следующей команды:
dd if= of=

Где if — входной файл (файл изображения или дистрибутив), а of — выходной файл
(MicroSDcard). Опять же, будьте осторожны и используйте только /dev/sdd или как там
у вас без цифр. Если у вас возникли проблемы с этим, воспользуйтесь полным
руководством по ссылке
https://www.raspberrypi.org/documentation/installation/install-images/li nux.md.
Хороший инструмент, который может помочь вам в этой работе, — GParted. Если он
не установлен в вашей системе, вы можете легко установить его с помощью
следующей команды:
sudo apt-get install gparted

Затем запустите sudo gparted, чтобы запустить инструмент. Он очень легко
обрабатывает разделы, и вы можете форматировать, удалять или находить
информацию обо всех ваших смонтированных разделах.
Более подробную информацию о dd можно найти
наhttps://www.raspberrypi.org/documentation/installation/installing-images/lin
ux.md.
Для пользователей Mac OS всегда рекомендуется инструмент dd
(https://www.raspberrypi.org/documentation/installation/installing-ima
ges/mac.md)
Для пользователей Windows рекомендуется утилита Win32DiskImager
(https://www.raspberrypi.org/documentation/installation/installing-ima
ges/windows.md)
Существует несколько других способов записи файла изображения на карту microSD.
Поэтому, если у вас возникнут какие-либо проблемы при следовании предыдущим
руководствам, не стесняйтесь использовать любое другое руководство, доступное в
Интернете. Теперь, предполагая, что все в порядке и образ готов, можно аккуратно
вставить карту MicroSD в плату Raspberry Pi Zero W.
Помните, что вы всегда можете подтвердить успешность загрузки с помощью кода
sha1. В системах Linux вы можете использовать sha1sum, за которым следует имя
файла (изображение), и распечатать код sha1. Это должно и должно быть таким же,
как в конце официальной страницы, где вы скачали образ.

[ 25 ]

Introduction to Raspberry Pi Zero W

Дистрибьюторы
Как упоминалось ранее, к сожалению, плата Raspberry Pi Zero W ограничена одной
платой на пользователя. Ниже приведен список официальных дистрибьюторов,
упомянутых на официальном сайте Raspberry Pi. Таким образом, в зависимости от
вашего местоположения, обратитесь к магазину соответственно.
Вы можете купить плату Raspberry Pi Zero W отдельно или в комплекте с некоторыми
дополнительными компонентами. Предполагая, что Raspberry Pi Zero поставляется с
мини-HDMI и нуждается в карте microSD, вы можете купить полный комплект, в
зависимости от вашего комплектации. Также практически везде есть комплект,
содержащий модуль камеры. В зависимости от ваших будущих проектов вам может
понадобиться комплект камеры.
В результате рекомендуется сначала решить, что вы хотите делать и что вы
планируете делать с Raspberry Pi Zero W, а затем заказать плату с дополнительными
функциями или без.

[ 26 ]

Introduction to Raspberry Pi Zero W

Общие проблемы
Иногда работа с платами Raspberry Pi может привести к проблемам. Мы все
сталкивались с некоторыми из них и надеемся, что никогда не столкнемся с ними
снова. Pi Zero настолько минимален, что трудно сказать, работает он или нет.
Поскольку на плате нет светодиода, иногда бывает удобно быстро проверить,
работает ли он правильно или что-то пошло не так.

Шаги отладки
Выполнив следующие шаги, вы, вероятно, найдете его статус:
1.

Возьмите свою плату, в которой ничего нет ни в одном слоте или разъеме.
Извлеките даже карту microSD!

2.

Возьмите обычный кабель micro-USB-USB-ADATA и подключите одну
сторону к компьютеру, а другую — к USB-порту Pi (не к PWR_IN).

3.

Если Zero жив:
В Windows ПК издаст звуковой сигнал, чтобы сообщить о наличии нового
оборудования, и вы увидите загрузку BCM2708 в диспетчере устройств.
В Linux с идентификатором 0a5c:2763 Broadcom Corp
сообщение от dmesg попробуйте запустить dmesg
в терминале перед подключением USB. После этого
вы найдете там новую запись.

[ 27 ]

Introduction to Raspberry Pi Zero W

Ниже приведен пример вывода:
[226314.048026] usb 4-2: new full-speed USB device number 82
using uhci_hcd [226314.213273] usb 4-2: New USB device found,
idVendor=0a5c, idProduct=2763 [226314.213280] usb 4-2: New USB
device strings: Mfr=1, Product=2, SerialNumber=0
[226314.213284] usb 4-2: Product: BCM2708 Boot
[226314.213] usb 4-2: Manufacturer: Broadcom

Если вы видите какой-либо из предыдущих вариантов, значит все хорошо
и знайте - Зеро не умер.

Проблема с картой памяти MicroSD
Помните, что если вы загружаете свой Raspberry и ничего не работает, возможно, вы
неправильно записали карту microSD. Это означает, что ваша карта может не
содержать ни одного загрузочного раздела, как положено, и она не может загрузить
первые файлы. Эта проблема возникает, когда дистрибутив записывается в
/dev/sdd1, а не в /dev/sdd, как должно быть. Это распространенная ошибка, и она не
идентифицируется.

Защита корпуса
Платы Raspberry Pi — это электроника, и мы никогда не размещаем электронику на
металлических поверхностях или рядом с магнитными объектами. Итак, совет:
потратьте немного денег на корпус Raspberry Pi и защитите свою плату от всего
подобного.

Резюме
Raspberry Pi Zero W — это новая многообещающая плата, позволяющая любому
подключить свои устройства к Интернету и использовать свои навыки для разработки
проектов, включая программы и компоненты. Эта плата — новая игрушка для любого
инженера, интересующегося Интернетом вещей, безопасностью, автоматизацией и
многим другим! Мы ознакомились с новой платой Raspberry Pi Zero и остальной
частью ее семейства, а также с кратким анализом некоторых дополнительных
компонентов, которые вам также следует приобрести. В следующей главе мы
рассмотрим IoT и сеть, чтобы вы могли понять, как подключить Raspberry Pi Zero к
вашей сети, настроить ее и начать создавать проекты.

[ 28 ]

Интернет вещей и сети

2

В предыдущей главе мы представили новую плату Raspberry Pi Zero W. Мы также
упомянули несколько аксессуаров, которые можно купить вместе с платой, чтобы
облегчить себе жизнь, не пытаясь соединить все вместе. Перед разработкой проекта с
этой платой необходимо кое-что упомянуть и проанализировать с разных точек зрения.
Поскольку Raspberry Pi Zero W будет подключен к Интернету, пришло время
поговорить об Интернете вещей и сетях. В этой главе мы рассмотрим следующие
темы:
Интернет вещей
Основные протоколы связи
Настройка Pi Zero
Настройка роутера
Сетевое администрирование
Безопасность

Интернет вещей
Два слова, скрывающие новый мир. Через несколько лет каждая вещь и каждое ваше
устройство будет подключено к Интернету. С новой эрой Интернета вещей будет
собираться огромное количество данных для ввода в алгоритмы или системы с
искусственным интеллектом. Представьте, что ваш тостер оснащен датчиками, и вы
знаете, какой хлеб вы используете, в какое время вы его активируете и сколько раз в
день вы хотите съесть тост. Эта информация может быть бесполезной для вас, но для
крупных компаний, готовых потратить миллиарды и рискнуть всем ради того, сколько
тостов они должны произвести, это не просто что-то, это меняет правила игры. Итак,
Интернет вещей — это все, что подключено к Интернету, например, ваш компьютер,
свет, холодильник, дверь гаража и все остальное, к чему вы можете получить доступ
через Интернет.

IoT and Networking

С другой стороны, автоматизация — это любая система, которая думает, что
принимает решения. Например, система, которая определяет, когда ваша машина
подъезжает к вашему дому, и автоматически открывает дверь гаража, является
автоматизацией. Эти два слова проведут вас через оставшуюся часть книги и будут
весьма полезны в вашей жизни.
Raspberry Pi, Arduino и все подобные платы предназначены для управления
устройствами и вещами и подключения их к Интернету. Итак, эта книга об устройстве
под названием Pi Zero W, которое позволяет вам управлять вещами в вашем доме и
подключать их к Интернету, чтобы вы могли получить к ним доступ из любой точки
мира:

Основные протоколы связи
​ ​
​ и

Предположим, что у нас есть Raspberry Pi в качестве нашего клиента
https://www.facebook.com в качестве нашего сервера. Когда наш клиент запрашивает
веб-страницу с сервера, должны быть какие-то протоколы, какие-то правила, по
которым будет обрабатываться этот запрос. Другими словами, должен быть
определенный способ передачи и получения данных друг от друга.
Интернет-протоколы (IP) — это именно те правила, по которым общаются клиент и
сервер.

[ 30 ]

IoT and Networking

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

Интернет-протоколы
Поскольку этот раздел не является темой книги, мы рассмотрим некоторые основные
протоколы, которыми мы все пользовались (возможно, даже не подозревая об этом).
Протокол HTTP используется при запросе веб-страницы. Например, когда кто-то
​ ​


набирает https://facebook.com/, он запрашивает веб-страницу
под
названием
facebook.
Протокол FTP используется, когда клиент подключается к файловому серверу.
Например, когда кто-то набирает ftp.ntua.gr/, он подключается к серверу, где есть
только файлы, а не веб-сайт или блог. Кроме того, TCP и UDP — это протоколы,
используемые для передачи данных. UDP используется для видеовызова или
голосового вызова, когда нам нужно передать огромное количество данных, тогда как
TCP используется для HTTP-запроса или подобных действий.
Причина, по которой мы рассмотрели эти протоколы, заключается в том, что если вы
прочитаете о них дальше, вы увидите, что каждый из них имеет довольно много
байтов, необходимых для правильной работы, что означает питание по кабелю, что, в
свою очередь, означает потребление энергии.

Протоколы Интернета вещей
Интернет вещей создал новую потребность в расширенных протоколах на многих
уровнях. Нет необходимости в протоколах связи устройств, семантике,
идентификации, инфраструктуре и многом другом. Существует множество
протоколов, разработанных для такого рода работы, и никто не уверен, что будет
работать идеально, а что нет в будущем. IoT — одно из главных исследований,
которым интересуются многие университеты, и оно очень сложное. В этом разделе
главы мы рассмотрим следующие основные протоколы IoT, необходимые для работы
над связанными проектами.
Bluetooth
Zigbee
Z-Wave
6LowPan
Thread
Wi-Fi

[ 31 ]

IoT and Networking

Celludar
NFC
LoRaWAN

Bluetooth
Этот протокол связи является коротким и известен почти всем. Это очень важно и,
как ожидается, станет ключевым для носимых продуктов. Raspberry Pi Zero W
поддерживает bluetooth, и это отличная возможность для вас создавать проекты и
знакомиться с этим протоколом. Новый протокол Bluetooth Low Energy (BLE) или
Bluetooth Smart является важным протоколом для Интернета вещей, и даже если он
имеет аналогичный диапазон, он изначально был разработан для снижения
энергопотребления. В заключение, говоря об IoT, все дело в энергопотреблении. Ваш
Raspberry Pi Zero W может работать вечно, если он подключен к домашнему
источнику питания, но если вы используете его для носимых устройств, таких как
смарт-часы, то энергопотребление имеет большое значение.
Bluetooth работает на частоте 2,4 ГГц (ISM) с радиусом действия 20-150 м (BLE) и
скоростью передачи данных до 1 Мбит/с (Smart/BLE).

Zigbee
Протокол Zigbee также работает на частоте 2,4 ГГц и основан на протоколе IEEE
802.15.4. Он обменивается данными с низкой скоростью в ограниченном диапазоне
100 м. В результате Zigbee подходит для дома или малого бизнеса. Кроме того, этот
протокол имеет некоторые преимущества, предлагая работу с низким
энергопотреблением и высокую безопасность с масштабируемостью. Скорость
передачи данных Zigbee достигает 250 Кбит/с.

Z-Wave
Z-Wave — это технология радиочастотной связи с низким энергопотреблением,
разработанная для умных домов и автоматизации. Скорость передачи данных
составляет до 100 кбит/с, и он работает в диапазоне менее 1 ГГц. Он поддерживает
полносвязные сети без необходимости в центральном узле, координирующем поток
данных. Частота составляет 900 МГц (ISM) с дальностью действия до 30 м. В целом,
это хороший протокол для связи устройств в домашней автоматизации.

[ 32 ]

IoT and Networking

6LowPAN
6LowPAN это сетевой протокол, предназначенный для механизмов инкапсуляции и
сжатия заголовков. Он часто используется среди других протоколов, таких как
Ethernet или Wi-Fi, и преимущество этого протокола в том, что он поддерживает IPv6,
что является целью почти всех протоколов. Разработанный для домашней
автоматизации, он обещает производить сложные системы управления и
связываться с устройствами через беспроводную сеть с низким энергопотреблением.

NFC
Связь ближнего поля (NFC) — это технология, которая обеспечивает тесную
передачу или взаимодействие между двумя устройствами. Почти все новейшие
устройства Android и IOS поддерживают эту технологию, и она весьма полезна для
идентификации или запуска ситуаций. Он будет использоваться для домашней
автоматизации или для проверки безопасности предприятий. Это фактически
расширяет возможности карточной технологии и позволяет устройствам
обмениваться информацией. Он работает на частоте 13,56 МГц (ISM) и имеет
диапазон 10 см.

Wi-Fi
Wi-Fi есть почти везде. Мы все подключены к сети через Wi-Fi, поэтому мы в
значительной степени понимаем, как это работает. Он обрабатывает довольно
большие объемы данных, и в настоящее время общепринятым стандартом Wi-Fi
является 802.11n, обеспечивающий пропускную способность в сотни мегабит в
секунду. Однако, поскольку у каждой хорошей вещи есть недостаток, Wi-Fi очень
энергозатратен, поэтому этот протокол не очень хорош для IoT, когда речь идет о
носимых устройствах или чем-то еще, где каждое потребление имеет решающее
значение. Он работает на частоте 2,4 ГГц или 5 ГГц и поддерживает расстояние до
50 м.

LoRaWAN
LoRaWAN предназначен для приложений глобальной сети (WAN) и представляет
собой недорогой протокол с масштабируемостью. Идеально подходит для умных
городов, он может соединять множество устройств со скоростью передачи данных от
0,3 до 50 Кбит/с. Его дальность действия составляет от 5 км до 15 км при отсутствии
препятствий.

[ 33 ]

IoT and Networking

Подключение вашего Pi
Подключение вашего пиНа этом этапе нам нужно подключить Raspberry Pi Zero W к
Интернету. Чтобы сделать это, мы сначала должны понять, как работает Интернет.
Как все подключено и как нам удастся подключить Raspberry Pi. В этом разделе книги
показано, как управлять различными роутерами. Поскольку каждый процесс
отличается, я попытаюсь описать здесь основную идею, и, надеюсь, вы сможете
найти свое решение.

Настройка Pi Zero W
Во-первых, чтобы следовать остальной части книги, вам нужно подключить Raspberry
Pi Zero к монитору с помощью HDMI, а затем сделать следующее. Создайте новую
папку с именем SH в папке /boot и перезапустите pi. Вам будет предложено
сообщение о SSH. Если это сделано, вы можете продолжить оставшуюся часть
главы и работать удаленно, используя SSH, как описано далее.
Также обратите внимание, что вам нужен последний образ. Старые образы с
вашей старой платы Raspberry Pi или чего-либо еще не будут работать, и адаптер
Wi-Fi не будет найден. Так что имейте в виду, что вам нужно установить последний
образ.

Интернет
Интернет состоит из ребер и узлов. Каждый компьютер — это узел, а каждый кабель
— это край. Беспроводная связь имеет невидимый кабель, который называется
воздушным:

[ 34 ]

IoT and Networking

Как вы можете видеть на предыдущем рисунке, мы можем представить Интернет как
облако. Нам не обязательно понимать, что там внутри. Ваш Интернет-провайдер (ISP)
предоставляет вам подключение к Интернету. Таким образом, обычно у вас дома есть
роутер. Поскольку к Интернету подключены миллиарды узлов, которые обмениваются
данными по протоколам и отправляют/получают сотни сообщений, должен быть
способ определить, кто есть кто. Это означает, что роутер должен иметь уникальную
идентификацию, такую ​как адрес в вашем доме. Этот адрес называется IP-адресом
или Интернет-протоколом, и существует два протокола. Старый и классический —
версия 4, а новый — версия 6. Для этого не требуется дополнительных объяснений,
просто помните, что в каждом доме есть роутер, и каждый роутер имеет уникальный
адрес IPv4. Итак, теперь все, кто находится за пределами вашего дома, знают, что
каждый пакет вашего IPv4-адреса будет достигать вашего роутера.

Локальная сеть
Предположим, что на ваш роутер пришел пакет. Крайне важно понимать, что именно
происходит и как роутер определяет место назначения пакета. В вашей локальной
сети (дома) может быть 10 устройств, таких как планшеты, смартфоны, ПК и ноутбуки.
Роутер должен решить, в какой из них он должен отправить пакет. Это делается с
помощью протокола преобразования сетевых адресов (NAT). Каким-то образом он
выбирает одно устройство и отправляет пакет. Каждое устройство в вашем доме
имеет IP-адрес. Это не то же самое, что ваш домашний IP-адрес, о котором мы
упоминали ранее. Когда вы подключаете устройство в локальной сети ( роутер), оно
автоматически получает IP-адрес, например 192.168.1.101.
​ ​





Подводя итог, Интернет состоит из клиентов (домов) и серверов (конечных точек).
Например, клиент — это ваш дом, а сервер — https://www.facebook.com. Клиент
подключается к серверу через какие-то узлы (коммутаторы), обычно с помощью
кабелей, и их там много. То, что мы описали ранее, — это Интернет. Идя дальше,
локальная сеть состоит из коммутатора, который в данном случае называется
роутером, и некоторых устройств, таких как ваш смартфон или ноутбук. Ваш роутер
отвечает за доставку всего, что приходит к вам домой, на соответствующее
устройство. Ваш роутер и каждое отдельное устройство имеют IP-адрес.
Структура вашей локальной сети представляет собой дерево. Это означает, что все
начинается с роутера и расширений. У вас может быть еще одна локальная сеть в
вашем гараже или во дворе. Например, на следующем снимке экрана видно, что моя
сеть состоит из нескольких устройств и еще одного коммутатора, состоящего из еще
нескольких устройств.

[ 35 ]

IoT and Networking

На следующем снимке экрана мы видим страницу моего роутера, и должно быть
совершенно ясно, что помимо Wi-Fi есть два включенных порта Ethernet, один из
которых подключен к компьютеру, а другой к чему-то, называемому коммутатором,
который имеет два устройства. Первый — снова компьютер, а второй — наш
Raspberry Pi Zero W. Вы можете найти IP-адрес Raspberry Pi на следующем снимке
экрана:

Ваш Raspberry Pi Zero W будет одним устройством, подключенным к вашему роутеру,
и будет иметь IP-адрес, как и любое другое устройство. Это устройство зависит от
вашего роутера. Обычно IP-адреса в вашем доме имеют формат 192.168.1.X, где X
находится в диапазоне от 1 до 254, но даже если числа различаются, идея та же.
Обычно, поскольку маршрутизатор является первым устройством, подключенным к
Интернету, он имеет IP-адрес 192.168.1.1, второе устройство может иметь
192.168.1.2, третье устройство — 192.168.1.3 и т. д., как вы можете видеть на
следующем изображении. моя малина с IP 192.168.1.101. Вся предыдущая
информация важна, потому что мы будем подключаться к нашему Raspberry Pi,
используя SSH по сети. Но, конечно, чтобы подключиться к нему, мы должны сначала
его найти.

[ 36 ]

IoT and Networking

Перенаправление порта
На этом этапе разница между локальной сетью и всем Интернетом должна быть
кристально ясной. Теперь посмотрим, как подключиться к нашему пи из внешнего
мира? Если мы подключимся к нашему домашнему IP-адресу, мы ничего не получим,
потому что наш роутер не сервер, а просто роутер. Наш сервер — Raspberry Pi,
который находится внутри нашего дома с локальным IP-адресом. Ответ на этот
вопрос — перенаправление портов. К сожалению, не все роутеры поддерживаютэто,
но это необходимо для подключения к вашему Raspberry Pi из внешнего мира.Если у
вас есть роутер, который не поддерживает переадресацию портов, подумайтео
покупке хорошего роутера, поскольку хорошие роутеры оснащены опциями для
лучшей безопасности и обработки соединений. Далее вы можете увидеть скриншот,
на котором мы проложили маршрут из внешнего мира на определенный IP-адрес в
локальной сети. Чтобы создать новый маршрут, вам необходимо войти в интерфейс
роутера и щелкнуть вкладку «Port forwarding - Переадресация портов».

Из предыдущего скриншота мы можем понять, что любое подключение со всего мира,
пришедшее к вам домой на порт 1770, будет перенаправлено на порт 2880 на
компьютере с IP 192.168.1.101, который является нашим Raspberry Pi Zero.
Остался сервер, который будет отвечать и работать на нашем Raspberry Pi Zero W.

Подключение к Интернету
Предполагая, что мы настроили переадресацию всех внешних подключений к нашему
Raspberry Pi Zero W, мы можем легко подключиться к нему из любой точки мира,
просто используя внешний IP-адрес нашего дома. Например, если вы гуглите мой ip и
получаетерезультат типа 45.12.64.23, то все, что вам нужно сделать, это закрыть
соединение Wi-Fi с вашего мобильного телефона и, используя данные, попытаться
перейти на http://45.12. .64.23/ (очевидно, измените это на свой IP-адрес). Вы должны
иметь возможность общаться с Raspberry Pi через порт 80. HTTP-порт — это номер
80, и это порт, который вы запрашиваете, когда вводите URL-адрес, например
http://XXX. Вы можете указать свой порт в URL-адресе, набрав http://45.12.64.23:
и в результате вы соединяете свое устройство с вашим домом в порт , где порт
— это число от 1000 до 4000. На самом деле, портов больше, но если вы не
продвинутый пользователь, остановитесь на этом диапазоне.

[ 37 ]

IoT and Networking

Сетевое администрирование
В этом разделе мы рассмотрим некоторые основные команды Linux, которые помогут
определить будущие проблемы. Не стесняйтесь вернуться сюда и прочитать это
снова. Есть много команд, которые мы можем выполнить в терминале для отладки
нашего проекта или настройки связи Raspberry Pi Zero W, которую мы
сделали.Сначала самая простая команда — это ifconfig. Команда ifconfig выводит
некоторые интерфейсы и много информации о них. Например, вы можете легко
узнать IP-адрес вашего устройства Raspberry Pi Zero W, просто набрав:
Ifconfig

Как показано на следующем снимке экрана, IP-адрес можно легко найти. Если вы
видите IP-адрес, это означает, что ваше устройство Raspberry Pi Zero W
подключено к Интернету:

Следующая команда, которая помогает при проблемах с сетью, — ping. С помощью
ping мы можем определить, не работает ли сервер. Другими словами, пропинговав
работающий сервер, мы можем определить, подключены ли вы к Интернету или нет.
В следующем примере мы пропингуем www.google.com и посмотрим, получим ли мы
ответ или нет. Введите следующую команду:
ping -c 3 www.google.com

Если все в порядке, у вас должен быть результат, подобный следующему, где мы
видим, что есть два ответа по 64 байта каждый:

[ 38 ]

IoT and Networking

Аргумент -c 3, который мы дали, означает, что мы запрашиваем только три пинга, а
затем останавливаем команду.
Теперь мы запустим простой сервер в нашем Raspberry Pi, чтобы мы могли
убедиться, что все в порядке, и у нас есть доступ к нашему Pi со всего мира. Для
этого мы используем язык Python и запустим демон, который предоставляет нам
Python. Если у вас не установлен Python, введите следующую команду:
sudo apt-get install python

Затем введите следующее:
python

Убедитесь, что все в порядке. Следующим шагом будет запуск сервера. Для этого
нам нужно ввести следующее:
python -m SimpleHTTPServer 8000

Если все прошло хорошо, у нас будет результат, аналогичный следующему, где мы
видим, что сервер запущен и работает на порту 8000:

Подключиться для выполнения команды
В этом разделе мы увидим, как мы можем подключиться к вашему Raspberry Pi Zero
W по сети с помощью SSH. SSH означает безопасную оболочку и представляет
собой простой способ подключения практически к любому устройству, такому как
Raspberry Pi Zero W. Во-первых, мы должны определить IP-адрес нашей малины,
как показано ранее. Предполагая, что IP-адрес 192.168.1.101, все, что нам нужно
сделать, это использовать ssh-клиент.

[ 39 ]

IoT and Networking

В операционных системах Linux и Mac просто откройте терминал и введите следующее:
ssh @

Здесь, is pi и равны 192.168.1.101:

После этого просто введите свой пароль и нажмите Enter:

Теперь вы можете видеть, что bash изменился, и мы находимся в нашем Raspberry
Pi Zero W.

Автоматическая аутентификация
Иногда полезно автоматически аутентифицировать себя через плату Raspberry Pi.
Это означает, что нам не будет предложено ввести наш пароль или что-либо еще.
Следующий скрипт с именем cpi (подключение к Raspberry Pi) — полезная
команда, позволяющая легко получить доступ к нашей плате через SSH. На самом
деле скрипт состоит всего из одной строки. Создайте новый файл с именем cpi и
введите следующую команду:
ssh pi@

Сохраните его в папку /bin с помощью sudo. Далее вам нужно создать rsa keygen и
перенести публичный ключ (name.pub) в файл .ssh/authorized_keys в Raspberry Pi
Zero W.
В Windows
проще
всего
это сделать
такого
как PuTTY. Вы
​ ​



​ с​ помощью ssh-клиента,



можете бесплатно скачать PuTTY по следующей ссылке:
http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

[ 40 ]

IoT and Networking

Обратите внимание, что нет необходимости в установке. Просто откройте
исполняемый файл, который вы только что загрузили, и настройте соединение. Вам
необходимо указать имя хоста или IP-адрес вашего устройства Raspberry Pi и
установить порт 22 для всех соединений SSH (порт по умолчанию). Нажмите «Open Открыть», после чего вам будет предложено ввести имя пользователя (pi) и пароль
(raspberry). После нажатия Enter вы должны легко войти в свое устройство Raspberry
Pi:

Подключение для передачи файлов
Иногда мы против проблемы передачи данных и файлов на Raspberry Pi и с него.
Для этого нельзя использовать SSH, поэтому в следующем разделе будут описаны
способы, с помощью которых вы можете легко передавать файлы с вашего
raspberry pi и на него.

FileZilla
​ ​


Программу FileZilla можно загрузить как в Windows,
так и в​ Linux, и ​это довольно
просто. Для Windows вы можете загрузить его с
https://filezilla-project.org/download.php, а для Linux вы можете использовать ту же
ссылку или ввести следующую команду:
sudo apt-get install filezilla

[ 41 ]

IoT and Networking

После установки этой программы все, что вам нужно сделать, это ввести IP-адрес
Raspberry Pi, порт (по умолчанию 22) и имя пользователя/пароль, которые обычно
являются pi/raspberry.
Нажмите « connect - Подключиться», и вы должны увидеть два раздела. Левый
раздел — это локальные файлы на вашем компьютере, а правый раздел —
удаленные файлы (Raspberry Pi Zero). Просто используйте перетаскивание файлов
из одного раздела в другой.
После подключения к плате Raspberry Pi вы должны увидеть что-то вроде этого:

[ 42 ]

IoT and Networking

SCP
В операционных системах Linux есть одна команда под названием scp, которая
может передавать файлы с удаленного сервера и на него. Это полезно, потому что
иногда у нас нет графического пользовательского интерфейса, и scp — наш
единственный вариант. USB-накопители тоже работают, но мы предполагаем, что
передаем файлы по сети. scp — это инструмент командной строки, с которым легко
работать.
Чтобы передать файл с вашего компьютера на удаленный сервер (Raspberry Pi),
введите следующую команду:
scp @:

Здесь — это pi, а — это IP-адрес Raspberry Pi. Обратите
внимание, что между IP-адресом и передаваемым файлом есть :. Если вы находитесь
внутри папки и хотите скопировать все файлы, замените на *.
С другой стороны, для переноса с удаленного сервера (Raspberry Pi) на локальный
компьютер введите следующее:
scp username@remote:/file/to/send /where/to/put
scp @:

Вы всегда можете узнать больше о команде Linux, используя следующую команду:
man

Защитите Raspberry Pi от воздействия
В последнем разделе этой главы мы поговорим о безопасности. Raspberry Pi Zero W
великолепен, но никто не хочет просто подключить его к вашему роутеру и позволить
другим управлять вашим освещением, вашей кофеваркой и всем остальным, что вы к
нему подключили. Начнем с того, что правда в том, что вы не можете быть в
безопасности ни от кого. Это означает, что существуют уровни безопасности, которые
следует учитывать. На этом этапе вы должны подумать, от кого вы хотите
защититься. Например, существуют методы защиты вашей Raspberry от вашей семьи,
ваших друзей, кого-либо в вашем доме, обычных пользователей в Интернете,
опытных пользователей в Интернете и АНБ.

[ 43 ]

IoT and Networking

Firewall - Брандмауэр
Почти каждый роутер имеет опцию брандмауэра. Брандмауэр — это система,
способная фильтровать все входящие соединения и выбирать, подходит ли каждое
из них для пропуска в вашу сеть или нет. На следующем снимке экрана вы можете
увидеть параметр «Firewall» в настройках моего роутера. Он может отличаться от
вашего роутера, но обычно находится на вкладке «Security - Безопасность» в меню:

Кроме того, если мы нажмем «Firewall - Брандмауэр», появится возможность
активировать или деактивировать его. Существует также вариант того, насколько
сильным будет наш брандмауэр. LOW брандмауэр означает, что он будет почти все
пропускать через вашу сеть. HIGH брандмауэр означает, что он почти предупредит и
предотвратит входящее соединение через вашу сеть. Если вы думаете, что HIGH
всегда лучший вариант, то это не так. Иногда, когда вы играете в онлайн-игры или
используете приложения по сети, вам необходимо отключать брандмауэр. Так что
имейте в виду, что иногда, в зависимости от вашей сети, вам нужно отключить
брандмауэр, и это означает, что да, вы более уязвимы, чем раньше.Так что никогда
не показывайте свой IP и не делайте гадостей:

[ 44 ]

IoT and Networking

В Windows есть брандмауэр по умолчанию, который вам необходимо отключить при
создании программы, связанной с вашей машиной. В заключение никогда ничего не
отключайте, если все работает нормально. Я просто упоминаю их в случае каких-либо
проблем с сетью и сбоями подключения.
И последнее, но не менее важное: при подключении Raspberry Pi Zero к Интернету
начните использовать пароли, состоящие не менее чем из восьми символов, включая
специальный символ, цифру и заглавную букву.

Резюме
В этой главе мы рассмотрели некоторые основы работы в сети и подключение к ней
своего Raspberry Pi. Мы также говорили о доступе через Интернет и о протоколах
IoT.
В следующей главе мы начнем создавать наш первый проект с новой платой
Raspberry Pi ZeroW и рассмотрим более практичные вещи, используя все знания из
предыдущих глав.

[ 45 ]

Чат-бот

3

В настоящее время чат-боты очень популярны и используются крупными
компаниями, исследователями и всеми, кто хочет учиться и использовать
автоматические ответы. Чат-бот — это система, которая может автоматически
отвечать на ваши вопросы. Есть умные чат-боты и дамповые. Разница между ними
заключается в том, что умный чат-бот хорошо обучен и способен понимать язык и
синтаксис, который вы вводите, и отвечает соответствующим образом, в то время как
дамп-робот отвечает почти определенным образом в соответствии с вопросом. В
этой главе мы создадим простой и удобный чат-бот с помощью Raspberry Pi Zero W.
В этой главе мы рассмотрим следующие темы:
Пользовательский ввод
Установка сервера
и сетевые сервисы
Security - Безопасность

Пользовательский ввод
В этом разделе мы увидим несколько основных способов, с помощью которых
пользователь может отправлять сообщения или разговаривать с ботом. Есть
несколько способов, которыми каждый может поговорить со своим ботом, в
зависимости от используемой операционной системы. Raspberry Pi Zero W можно
использовать как бота или как пользовательское устройство ввода. Raspberry Pi 3
была хорошей платой даже для создания бота Facebook, но эту новую плату
Raspberry Pi Zero W не рекомендуется использовать для сложных целей, таких как
запуск огромного бота. Итак, то, что мы будем делать в этом проекте, — это простая
демонстрация того, как все работает и как мы можем разработать бота с нуля.

Chatbot

В этом разделе мы разработаем веб-страницу для использования в качестве
пользовательского устройства ввода. Благодаря этому вы можете легко разработать
приложение для Android или систему распознавания речи. Все будет работать
нормально, пока программа имеет строку того, что сказал пользователь в качестве
вывода. Веб-страница будет разработана в HTML и немного CSS.

Установка сервера
Прежде чем создать сайт, мы должны решить, где мы будем разрабатывать сайт и с
помощью каких инструментов. Я рекомендую использовать ваш настольный
компьютер или ноутбук, а не Raspberry Pi в качестве основного компьютера для
работы. Кроме того, попробуйте использовать текстовый редактор, например Sublime
Text, так как они вам очень помогут. Это мой предпочтительный стиль; не
стесняйтесь выбирать свой.
​ ​

Для разработки ​ веб-сайта
нам ​нужен сервер, и мы можем легко использовать сервер
XAMPP или LAMPP в системе Windows, Linux или Mac. Загрузите пакет с
https://www. apachefriends.org/download.html.

После этого установите пакет в свою систему и запустите панель управления. В
системах Linux вы можете запустить службы, открыв Terminal и введя следующую
команду:
sudo /opt/lampp/lampp start

Как мы видим на следующем снимке экрана, Apache, MySQL и ProFTPD запустились,
так как они ответили уже работающими сообщениями:

Используйте этот код, если вы хотите закрыть тип служб:
sudo /opt/lampp/lampp stop

[ 47 ]

Chatbot

На следующем снимке экрана показано, что вы увидите в результате:

Если вы хотите перезапустить, введите следующую команду:
sudo /opt/lampp/lampp restart

На следующем снимке экрана мы видим, что службы не были запущены, но
запустились. Если бы они работали, а не не работали, мы бы получили
сообщение ok:

Обратите внимание, что XAMPP будет использовать порт 80, поэтому рекомендуется
закрыть Skype или любую другую программу, работающую на этих портах. После
запуска служб XAMPP вы можете без проблем снова открыть Skype или любую
другую программу. Общая проблема заключается в том, что они конфликтуют с
портами, которые используют тот же порт, что и Skype, или когда мы выполняем
потоковую передачу с любой открытой аналогичной программой и используем порт,
необходимый для XAMPP.
Если все в порядке, единственное, что вам нужно сделать, это открыть браузер,
например Firefox, и ввести http://localhost/dashboard/.

[ 48 ]

Chatbot

Вы увидите веб-сайт, подобный следующему, который является панелью управления
сервером XAMPP:

На данный момент нам ясно, что сервер Apache — это то, что нам нужно для
написания веб-сайта с использованием кода HTML, CSS и PHP. С другой стороны,
служба MySQL — это то, что нам нужно для создания базы данных.
Папка, в которой мы сохраним наш сайт, называется /opt/lampp/htdocs. Перейдите в
эту папку с помощью следующей команды:
cd /opt/lampp/htdocs/

[ 49 ]

Chatbot

Создайте новый каталог с именем chatUI:
sudo mkdir chatUI

Теперь запустите ls, и у вас должен быть каталог в папке htdocs.
Подтвердите это, перейдя в браузер и набрав http://localhost/chatUI/. Вы
должны увидеть что-то похожее на следующий скриншот:

Теперь вы можете видеть, что в каталоге ничего нет, так как в нашем проекте нет
файлов. Создайте файл с именем index.php в своем любимом редакторе и
используйте следующий код:

This is my website


Результат, который вы должны увидеть после перезагрузки сайта, выглядит
следующим образом:

[ 50 ]

Chatbot

Теперь, поскольку эта глава не о веб-разработке, я написал некоторый код, чтобы
пользователь мог задать вопрос и получить ответ от сервера.

Разработка чат-бота
Чат-бот — это бот, который взаимодействует с чем-либо; например, пользователь
может отправить запрос, и бот ответит в соответствии с запросом:

[ 51 ]

Chatbot

Далее вы найдете код, демонстрирующий этот скрипт. Это веб-сайт нашего чат-бота,
использующего язык HTML, CSS и PHP. Давайте пройдемся по коду строка за
строкой.
Следующие строки создают заголовок страницы и связывают файл с файлом
таблицы стилей CSS. Название можно найти на вкладке браузера на сайте чат-бота.
Кроме того, style.css должен находиться в той же папке, что и файл index.php. Если
нет, вам нужно добавить полный путь к файлу thestyle.css следующим образом:
PI Zero W - Chatbot


Далее нам нужно написать некоторый PHP-код. Сначала мы проверяем, установлен
ли пользовательский текст. Это означает, что если пользователь что-то набрал и
нажал кнопку, то устанавливается поле usertext. Мы получаем данные с помощью
метода $_POST, а затем проверяем, является ли пользовательский ввод одним из
известных вопросов: