«python of things», Кирилл Борисов, Яндекс

Post on 22-Jan-2018

102 Views

Category:

Internet

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Python of ThingsБорисов Кирилл

PyCon Russia 2017

О докладчике

• Имя ему - Кирилл Борисов

• 10 лет программирует за деньги

• 5 лет души не чает в Python

• Работает в Яндексе и не знает забот

Disclaimer

• Докладчик - не настоящий сварщик электронщик

• Докладчик не несет ответственности за убитое время

• Доклад никак не связан с работой

О чем этот доклад?

• На дворе - 2017 год

• Интернет вещает из каждой урны и зубной щетки

• Победить это нельзя, самое время присоединиться

• Python + прямые руки = интересные результаты

Internet of ThingsВеликая куча вещей

Internet of Things

• Различные устройства связаны между собой

• Все они собирают данные…

• …либо воздействуют на окружающий мир

• Работают автономно

Грубая схема

Зарождение идеиУстройство с высоты птичьего полета

Weatherful

• Индикатор пригодности погоды для прогулок

• Данные забирает из Яндекс.Погоды

• Отображать разные цвета для каждого часа

• Должен работать на Питоне! (sic!)

• Работает от батарейки

Большой конструктор

Source: https://amperka.ru

GPIOВвод-вывод на каждый день

Source: https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/

Что это?

• Физический интерфейс для связи с миром вокруг

• Может работать на вход, так и на выход

• Цифровой интерфейс

• Залог успеха Raspberry Pi и Arduino

Примерная схема

Большой конструктор

Source: https://adafruit.com

Связь c внешним миром“Major Tom to Ground Control…”

Source: https://i-o-t.ru

Wi-Fi

• Высокая скорость передачи данных

• Типичная модель работы - точка доступа + клиенты

• Большие расходы на обеспечение связи

• Самый массовый способ связи с Интернетом

Bluetooth

• Беспроводная связь двух устройств

• Высокая скорость передачи данных

• Применяется для связи с приложением на смартфоне

• Потребляет много энергии в пассивном режиме

Bluetooth Low Energy

• Развитие идеи Bluetooth

• Цель - минимизация энергопотребления

• Требует поддержки со стороны ОС смартфона

• Ещё не достигла такой же популярности

Message Queue Telemetry TransportПростое решение для простой проблемы

Source: https://i-o-t.ru

MQTT

• Работает по принципу “Publish-Subscribe”

• Реализован поверх TCP/IP

• Для ограниченных в ресурсах устройств

• Практически незащищен

Принцип работы

Наша схема

Большой конструктор

Что нам нужно?

• Маленький размер

• Имеет GPIO-выходы

• Может соединяться с Wi-Fi

• Способен запускать Python

Raspberry PiПродукт, запустивший тысячи проектов

Source: https://www.sparkfun.com/products/retired/11546

Raspberry Pi

• Размером с кредитную карту

• Полноценный компьютер с Linux

• Множество GPIO входов-выходов

• Широко распространен

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 мм

gpiozero

• Основная цель - уменьшение избыточности

• Встроенные “батарейки” для многих вещей

• Хорошая документация и много примеров

https://github.com/RPi-Distro/python-gpiozero/

Примерfrom gpiozero import LED from time import sleep

led = LED(25)

while True: led.on() sleep(1)

led.off() sleep(1)

MicroPythonНовый Python для новых условий

Source: https://www.sparkfun.com/products/retired/11546

Микроконтроллеры

• Вычислительные устройства малой мощности

• Специализированное железо

• Имеют на борту ЦАП\АЦП, таймеры, и т.д.

• Малые объемы оперативной памяти

MicroPython

• Написан с нуля по подобию Python 3.4

• Предназначен для работы на микроконтроллерах

• Работает на “живом железе”

• Имеет много специфики

Примерfrom machine import Pin from time import sleep

led = Pin(15, Pin.OUT)

while True: led.high() sleep(1)

led.low() sleep(1)

Тонкости MicroPython

• Несколько отличий от синтаксиса Python

• Функциональность отличается для разных устройств

• Сильно урезанный набор “батареек”

• Позволяет использовать REPL на устройстве

pyboardПлата, с которой всё началось

Source: https://www.sparkfun.com/products/retired/11546

pyboard

• Референсная плата

• Основная платформа разработки MicroPython

• Удобна для изучения MicroPython

• 2 порта CAN, ЦАП, АЦП, 2 I2C, 2 SPI, 3 (!) UART

• Отсутствует Wi-Fi и Bluetooth

WeMOS d1 miniДешево и сердито

Source: https://www.sparkfun.com/products/retired/11546

WeMOS d1 Mini

• Создан на основе ESP8266 со встроенным Wi-Fi

• Весьма дешевая (~300 рублей с AliExpress)

• Скудные ресурсы: 256 Kb RAM, 1 МБ флэша

• Мало портов: 1 АЦП, 1 I2C, 1 SPI, ~1 UART

Конечный результат

Конечный результат

Домашнее чтениеКниги - это хорошо

Source: https://ourdelhistruggle.com/2008/12/02/delhis-sunday-book-market/

Make: Electronics

Second Edition

Charles Platt

Simple electronics

with GPIO Zero

Phil King

Python for

Microcontrollers

Donald Norris

Дополнительные ссылки “Я покажу тебе, как глубоко уходит кроличья нора”

• https://www.raspberrypi.org/Официальный сайт “Raspberry Pi Foundation”

• https://raspberrypi.ruРусскоязычное сообщество пользователей

• https://circuits.io/Дружелюбный симулятор электронных схем.

• https://micropython.org/Сайт с говорящим названием, на котором вы можете узнать всё о MicroPython.

• http://amperka.ru/ Интернет-магазин, для тех кто занимается радиоэлектроникой в свободное время.

• http://fritzing.org/ Отличная утилита для рисования красивых схем и иллюстраций.

- Вопросы?

Вперед,на следующий доклад!

- Спасибо!

lensvol

borisov.kir@gmail.com

top related