IoT за копейки: практическое руководство. Часть 1-я, аппаратная

39fd3cc482a34653b31964014de42c79.png

Привет, Geektimes!

Представляем цикл статей, в котором рассмотрим, как с нуля и без пайки реализовать управляемое из облака недорогое IoT-устройство с огромными потенциалом. За основу возьмем «чистый» микрочип ESP8266, о котором недавно уже писали. Используем свежую DeviceHive-прошивку и напишем простенькое веб-приложение для обращения к cloud-серверу. К микрочипу подключим простое устройство, управлять которым можно будет с помощью пары кликов в браузере.

Перед вами первая статья цикла, из которой мы узнаем, какое именно оборудование нам понадобится.

Совсем недавно состоялся публичный релиз первой версии DeviceHive-прошивки для ESP8266. Цель наших статей — помочь каждому желающему реализовать с помощью DeviceHive собственное IoT-решение максимально дешево, быстро и без лишних сложностей.

Нам понадобится всего пять вещей:

  • плата с распаянным ESP8266;
  • USB →UART-переходник;
  • источник питания;
  • провода;
  • сам девайс, который мы хотим подружить с облаком.

Общая стоимость первых четырех пунктов не превысит $ 5. Какое устройство выбрать для экспериментов — решайте сами.

Давайте рассмотрим каждый пункт подробнее.

Плата с ESP8266

ec5adaf8be9345a6a2219de0d29a174d.png

Большинство доступных на рынке модулей с ESP8266 представляет собой просто плату, на которой расположены сам ESP8266, SPI флэш-память 25Q40 на 512 килобайт (у ESP на борту — всего 64 килобайта памяти для загрузчика) и небольшое количество дискретных элементов. Отличия зачастую оказываются исключительно визуальными, хотя встречаются еще и специализированные модули с батарейным питанием и различными модификациями. Они подороже, но смысл остается неизменным.

Отдельно отметим модуль ESP-201 (сверху на фотографии). Интересен он, в первую очередь, тем, что не требует пайки, а с внешним разъемом соединено максимальное количество выводов ESP8266, что может быть очень полезно в экспериментах. Далее для демонстрации будем использовать именно этот модуль, однако вы можете взять любые аналоги. Отличия будут только в распайке выводов.

USB → UART-переходник

d70f837de45d4e0a94d0113ce8263da9.png

Для перепрограммирования ESP8266 использует интерфейс UART. Это обыкновенный последовательный порт с уровнем логической единицы в 3.3 вольта, т. е. простой COM-порт c другим электрическим уровнем. Такие переходники спрятаны в очень многих устройствах, наверняка вы не раз использовали их, даже не подозревая об этом. В прошлом подобные переходники использовались, например, в датакабелях телефонов.

Больше всего распространены переходники на микросхемах CP2102, PL2303, CH431, FT232 и некоторых других. Нам подойдет любой из перечисленных. С последним, однако, стоит быть аккуранее. Меньше всего проблем с драйверами под Windows и OS X у CP2102. Пользователи Linux могут вообще не беспокоиться — все чипы нативно поддерживаются ядром.

Источник питания

d3400563271249a4903b33713c720d93.png

ESP8266 нужен источник питания с выходным напряжением от 3 до 3.6 вольт. Это может быть сетевой адаптер на 3,3 вольта, либо понижающий источник. В моменты включения и активного использования ESP8266 может потреблять в импульсах до 300 миллиампер.

У некоторых USB → UART-переходников имеется выход на 3.3 вольта от внутреннего стабилизатора. Исходящий ток крайне слаб, поэтому дополнительный источник питания — вынужденная необходимость. При питании от USB хорошим решением может стать источник на микросхеме AMS1117–3.3.

Для демонстрации мы используем источник, изображенный на фото, т. к. он оснащен множеством выводов для подключений.

Провода

5531db4efcdc470d8844ead9287ce319.png

Можно просто взять и спаять платы, но всего за один доллар можно купить целый шлейф проводов с распаянными разъемами для соединения модулей. В наших модулях встречаются только выводы типа «папа», поэтому нам потребуются провода с разъемами «мама». Эти шлейфы можно легко разделить руками на шлейфы с меньшим количеством проводов.

Для прототипирования — просто мечта!

Устройство, которое мы хотим подключить

Тут уже начинается простор для фантазии. Устройств, которые можно подключить к облаку, — масса. Стоит, однако, учитывать возможности электрического подключения. На любой вывод микросхемы нельзя подавать напряжение, превышающее то, от которого питается сама микросхема. Максимально допустимый ток нагрузки на каждый GPIO-вывод — 12 миллиампер. Кажется, что показатели довольно скромные, но на самом деле это — стандартные характеристики для микроконтроллера. Для подключения с большими нагрузками можно использовать силовые MOSFET-транзисторы, тиристоры, твердотельные реле и другие схемотехнические решения, рассмотрение которых выходит за рамки этой статьи.

Мы же рассмотрим простейшее механическое реле. На большинстве торговых площадок можно найти готовые модули с распаянными реле.

e2da3ae1ce0b47a5a74c1180a3e151b8.png


Что представляет собой модуль? Это обыкновенное реле с распаянным предусилителем на оптопаре или транзисторе. Реле — это группа контактов, которые механически замыкаются и размыкаются при помощи расположенного внутри электромагнита. Иначе говоря, контакты способны разрывать или соединять электрическую цепь, когда к электромагниту извне приложено небольшое напряжение. На обмотке электромагнита ток, как правило, получается в районе 10 — 50 миллиампер, поэтому напрямую подключать его к микроконтроллеру нельзя. Специально для этого на модуле распаян небольшой предусилитель для реле, который можно напрямую подключить к микроконтроллеру.

Слева выведена колонка с клемниками, к которым уже можно подключить серьезную нагрузку. Реле, изображенное на фото, способно выдержать 250 вольт и 10 ампер.

e07c1fbedd154a5890a0b8fe53d3509e.png

Слева на фото можно увидеть клемник. Эти три вывода — общая группа контактов: один нормально замкнутый, один нормально разомкнутый и один общий. При появление логической единицы на входе модуля, реле перебрасывает общий вывод к другому контакту. Таким образом можно коммутировать, размыкать или соединять что-либо.

Для демонстрации работы прошивки мы используем вот такой лазерный модуль:

c69af69bab18424a921e75c41edc431c.png

Модуль требует напряжение в 5 вольт и потребляет около 90 миллиампер. Чтобы подключить его, нам потребуется реле.

Не забывайте: вместо этого модуля мы можем использовать любое другое устройство, будь то лампочка в вашей комнате или мощнейший прожектор (который сам по себе — просто огромный фонарик, потребляющий киловатты электроэнергии). Стоит лишь учитывать мощность устройства при выборе реле.

К ESP8266 можно также подключить различные датчики и сенсоры, т. к. его выводы (как у других микроконтроллеров) могут работать и на вход, и на выход. Помимо этого, у ESP8266 есть аналоговый вход, который можно использовать для передачи собственно аналоговых сигналов. Но этому мы, пожалуй, посвятим отдельную статью.

В следующей статье мы расскажем:

  • как получить и настроить сервер DeviceHive;
  • как прошить и настроить ESP8266 с прошивкой от DeviceHive.

На самом деле, ничего сложного тут нет. Искушенный читать уже может взять нашу прошивку и попытаться запустить ее самостоятельно. Исходный код и собранный образ можно найти здесь. Пока доступна лишь ранняя публичная версия, работа над которой продолжается. Но строить DIY-устройства можно уже сейчас!

Автор: Николай Хабаров, Senior Embedded Developer

© Geektimes