«python of things», Кирилл Борисов, Яндекс
TRANSCRIPT
![Page 1: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/1.jpg)
Python of ThingsБорисов Кирилл
PyCon Russia 2017
![Page 2: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/2.jpg)
О докладчике
• Имя ему - Кирилл Борисов
• 10 лет программирует за деньги
• 5 лет души не чает в Python
• Работает в Яндексе и не знает забот
![Page 3: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/3.jpg)
Disclaimer
• Докладчик - не настоящий сварщик электронщик
• Докладчик не несет ответственности за убитое время
• Доклад никак не связан с работой
![Page 4: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/4.jpg)
О чем этот доклад?
• На дворе - 2017 год
• Интернет вещает из каждой урны и зубной щетки
• Победить это нельзя, самое время присоединиться
• Python + прямые руки = интересные результаты
![Page 5: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/5.jpg)
Internet of ThingsВеликая куча вещей
![Page 6: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/6.jpg)
Internet of Things
• Различные устройства связаны между собой
• Все они собирают данные…
• …либо воздействуют на окружающий мир
• Работают автономно
![Page 7: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/7.jpg)
Грубая схема
![Page 8: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/8.jpg)
Зарождение идеиУстройство с высоты птичьего полета
![Page 9: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/9.jpg)
Weatherful
• Индикатор пригодности погоды для прогулок
• Данные забирает из Яндекс.Погоды
• Отображать разные цвета для каждого часа
• Должен работать на Питоне! (sic!)
• Работает от батарейки
![Page 11: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/11.jpg)
GPIOВвод-вывод на каждый день
Source: https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/
![Page 12: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/12.jpg)
Что это?
• Физический интерфейс для связи с миром вокруг
• Может работать на вход, так и на выход
• Цифровой интерфейс
• Залог успеха Raspberry Pi и Arduino
![Page 13: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/13.jpg)
Примерная схема
![Page 16: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/16.jpg)
Wi-Fi
• Высокая скорость передачи данных
• Типичная модель работы - точка доступа + клиенты
• Большие расходы на обеспечение связи
• Самый массовый способ связи с Интернетом
![Page 17: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/17.jpg)
Bluetooth
• Беспроводная связь двух устройств
• Высокая скорость передачи данных
• Применяется для связи с приложением на смартфоне
• Потребляет много энергии в пассивном режиме
![Page 18: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/18.jpg)
Bluetooth Low Energy
• Развитие идеи Bluetooth
• Цель - минимизация энергопотребления
• Требует поддержки со стороны ОС смартфона
• Ещё не достигла такой же популярности
![Page 19: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/19.jpg)
Message Queue Telemetry TransportПростое решение для простой проблемы
Source: https://i-o-t.ru
![Page 20: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/20.jpg)
MQTT
• Работает по принципу “Publish-Subscribe”
• Реализован поверх TCP/IP
• Для ограниченных в ресурсах устройств
• Практически незащищен
![Page 21: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/21.jpg)
Принцип работы
![Page 22: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/22.jpg)
Наша схема
![Page 23: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/23.jpg)
Большой конструктор
![Page 24: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/24.jpg)
Что нам нужно?
• Маленький размер
• Имеет GPIO-выходы
• Может соединяться с Wi-Fi
• Способен запускать Python
![Page 25: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/25.jpg)
Raspberry PiПродукт, запустивший тысячи проектов
Source: https://www.sparkfun.com/products/retired/11546
![Page 26: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/26.jpg)
Raspberry Pi
• Размером с кредитную карту
• Полноценный компьютер с Linux
• Множество GPIO входов-выходов
• Широко распространен
![Page 27: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/27.jpg)
Raspberry Pi 3 Raspberry Pi Zero W
CPU 1.2 GHz,4 ядра
1 GHz, 1 ядро
Память 1 GB 512 MB
Порты 4 USB 1 USB On-The-Go 1 USB для питания
СвязьWi-Fi (b/g/n)
Bluetooth 4.0 (BLE)Ethernet-порт
Wi-Fi (b/g/n)Bluetooth 4.0 (BLE)
Размер 85,6 × 53,98 × 17 мм 66 x 30,5 x 5 мм
![Page 28: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/28.jpg)
gpiozero
• Основная цель - уменьшение избыточности
• Встроенные “батарейки” для многих вещей
• Хорошая документация и много примеров
https://github.com/RPi-Distro/python-gpiozero/
![Page 29: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/29.jpg)
Примерfrom gpiozero import LED from time import sleep
led = LED(25)
while True: led.on() sleep(1)
led.off() sleep(1)
![Page 30: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/30.jpg)
MicroPythonНовый Python для новых условий
Source: https://www.sparkfun.com/products/retired/11546
![Page 31: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/31.jpg)
Микроконтроллеры
• Вычислительные устройства малой мощности
• Специализированное железо
• Имеют на борту ЦАП\АЦП, таймеры, и т.д.
• Малые объемы оперативной памяти
![Page 32: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/32.jpg)
MicroPython
• Написан с нуля по подобию Python 3.4
• Предназначен для работы на микроконтроллерах
• Работает на “живом железе”
• Имеет много специфики
![Page 33: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/33.jpg)
Примерfrom machine import Pin from time import sleep
led = Pin(15, Pin.OUT)
while True: led.high() sleep(1)
led.low() sleep(1)
![Page 34: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/34.jpg)
Тонкости MicroPython
• Несколько отличий от синтаксиса Python
• Функциональность отличается для разных устройств
• Сильно урезанный набор “батареек”
• Позволяет использовать REPL на устройстве
![Page 35: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/35.jpg)
pyboardПлата, с которой всё началось
Source: https://www.sparkfun.com/products/retired/11546
![Page 36: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/36.jpg)
pyboard
• Референсная плата
• Основная платформа разработки MicroPython
• Удобна для изучения MicroPython
• 2 порта CAN, ЦАП, АЦП, 2 I2C, 2 SPI, 3 (!) UART
• Отсутствует Wi-Fi и Bluetooth
![Page 37: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/37.jpg)
WeMOS d1 miniДешево и сердито
Source: https://www.sparkfun.com/products/retired/11546
![Page 38: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/38.jpg)
WeMOS d1 Mini
• Создан на основе ESP8266 со встроенным Wi-Fi
• Весьма дешевая (~300 рублей с AliExpress)
• Скудные ресурсы: 256 Kb RAM, 1 МБ флэша
• Мало портов: 1 АЦП, 1 I2C, 1 SPI, ~1 UART
![Page 39: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/39.jpg)
Конечный результат
![Page 40: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/40.jpg)
Конечный результат
![Page 41: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/41.jpg)
Домашнее чтениеКниги - это хорошо
Source: https://ourdelhistruggle.com/2008/12/02/delhis-sunday-book-market/
![Page 42: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/42.jpg)
Make: Electronics
Second Edition
Charles Platt
![Page 43: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/43.jpg)
Simple electronics
with GPIO Zero
Phil King
![Page 44: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/44.jpg)
Python for
Microcontrollers
Donald Norris
![Page 45: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/45.jpg)
Дополнительные ссылки “Я покажу тебе, как глубоко уходит кроличья нора”
![Page 46: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/46.jpg)
• https://www.raspberrypi.org/Официальный сайт “Raspberry Pi Foundation”
• https://raspberrypi.ruРусскоязычное сообщество пользователей
• https://circuits.io/Дружелюбный симулятор электронных схем.
![Page 47: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/47.jpg)
• https://micropython.org/Сайт с говорящим названием, на котором вы можете узнать всё о MicroPython.
• http://amperka.ru/ Интернет-магазин, для тех кто занимается радиоэлектроникой в свободное время.
• http://fritzing.org/ Отличная утилита для рисования красивых схем и иллюстраций.
![Page 48: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/48.jpg)
- Вопросы?
![Page 49: «Python of Things», Кирилл Борисов, Яндекс](https://reader033.vdocuments.site/reader033/viewer/2022052514/5a64f9a97f8b9aa2548b53b9/html5/thumbnails/49.jpg)
Вперед,на следующий доклад!