Ваша первая самоделка в духе «Интернет вещей» с Raspberry Pi, датчиком DHT11 и Thingspeak.

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

IOT или Интернет Вещей — горячая тема! Согласно экспертам, все устройства будут связаны с интернетом и их данные будут доступны по IP-адресу.  С чего начать, если Вы хотите исследовать мир IOT? Как насчет простой Температуры, Влажности и Светочувствительного датчика для Вашего подвала.

Лето здесь, на Северо-востоке, означает ВЛАЖНОСТЬ.  У многих из нас есть своего рода система осушения в наших подвалах. Мой семинар проходит в моем подвале, и у меня есть маленький влагоотделитель, который сохраняет его сухим в течение этих месяцев. Не смотря на влажность в подвале, тут все таки прохладнее чем на верху. Я решил, что хочу знать, насколько влажно и прохладно здесь может быть, это стало источником вдохновения  для моего первого проекта IOT.

Датчики DHT11 измеряют температуру и относительную влажность, ну и ещё они просто дешевые. Вообщем идеально подходит для первого проекта. Конечно, «с научной точки зрения» я бы не назвал его точным, но по соотношению цена-качество вполне хорош для моего подвала (Я думаю, мой подвал не обидится). Пока я находился в подвале, я подумал что неплохо было бы добавить и светочувствительный датчик, чтобы знать, не оставил ли я включенным свет (Электричество тоже денег стоит). Другое простое и дешевое решение — фоторезистор.

Следующим вопросом стало: «Куда поместить данные?». Я конечно мог бы построить веб-сервер, но одна из задач — это простота конструкции и её работы, поэтому я решил использовать Thingspeak, у которого есть API, что позволит мне получить и изучить данные.

ШАГ 1: Что Вам нужно чтобы создать этот проект

Приступим. Мы построим проект на макетной плате, так нам не придётся волноваться по поводу спаивания или проектировании печатной платы. Как только дизайн нас удовлетворил, мы можем начинать.

Аппаратные средства:

  • Raspberry PI 2 и SD карта с операционной системой Raspbian
  • Источник тока на 5 Вольт
  • USB кабель
  • Макетная плата и провода
  • 2 x DHT 11 датчика
  • 2 x 10K резистора
  • 2 x фотоэлемента
  • 2 x 1uF конденсатора

 

ШАГ 2: Подготовка Raspberry Pi

Как только Ваш Raspberry Pi подготовлен, нам нужно установить Python, чтобы взаимодействовать с выводами GPIO. Выводы GPIO — наш интерфейс для взаимодействия с датчиком DHT11 и фотоэлементом. Для более детального изучения Raspberry Pi пинов GPIO  можно глянуть краткое руководство по GPIO.

Конфигурация Python

Для этого проекта не нужны все библиотеки предварительно установленные на Raspberry Pi. Вам будут нужны: Аdafruit GPIO библиотека для Python и библиотека Adafruit DHT 11. 

Мы будем использовать руководство от Adafruit и их библиотеку для настройки Python, чтобы общаться с Raspberry Pi пинами GPIO

https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-gpio

Нам также нужна библиотека Adafruit`s Pythona для датчика DHT11, которую Вы можете найти здесь:

https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/overview

 

ШАГ 3: Raspberry PI — разбираемся с выводами GPIO

GPIO обозначает разъёмы ввода/вывода общего назначения, и на Raspberry Pi они — физический интерфейс между стороной программного обеспечения Raspberry Pi и внешним миром. Мы должны будем использовать выводы GPIO, чтобы соединиться с DHT11 и Фоторезистором. 

У разных версий Raspberry Pi есть разное количество выводов GPIO. В ранних версиях Raspberry Pi их было 26, у более новых — 40. Даже при том, что было добавлено больше выводов, выводы 1 — 26 одинаковы на всех версиях. Если заглянуть в руководство по пинам Raspberry Pi, вы найдёте несколько вариантов для каждого вывода GPIO. Скорее всего, вы найдёте таблицу с физическим названием вывода (1 — 40) и его названием GPIO (GPIO1, и т.д.). Физическое имя это просто номер штырька в разъёме выводов GPIO. Программируя на Python, мы будем использовать эту табличку, чтобы понимать, с каким выводом мы взаимодействуем. Названия GPIO нам сейчас не пригодятся, они нужны для более сложных проектов.

Если ваш проект не работает как надо, дважды проверьте, к тем ли выводам вы подключились и на те ли пины вы ссылаетесь в своём коде.

 

ШАГ 4: Построение схемы

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

Предупреждение — вы можете испортить свой Raspberry Pi коротким замыканием, неправильно подключив компоненты. Просто будьте осторожны и проверьте все дважды прежде, чем включить питание.

Чтобы подключить Raspberry Pi к макетной плате, мне нравится использовать провода, у которых есть мама — разъем и папа — штекер. Провод-мама присоединяется прямо к разъёму «папа» на Raspberry PI и разъём папа втыкается прямо в макетную плату.

Для этой схемы мы должны использовать 3.3v с пина 1 Raspberry Pi (не используйте 5v с пина 2), и нам нужна Земля (GND), конечно. Соедините эти разъёмы Pi с макетной платой.

У DHT 11 есть 4 вывода. Вывод 1 — плюс по питанию, вывод 2 — для данных, вывод 3 НЕ ИСПОЛЬЗУЕТСЯ, вывод 4 является Землей.

  • Подсоедините первый пин DHT 11 к источнику тока, напряжением 3.3v
  • Подключите пин 2 DHT 11 к пину 16/GPIO 23  Raspberry Pi и подсоедините резистор 4.7 или 10k  от пина 2 DHT 11  к пину 1 DHT
  • Подсоедините пин 4 DHT 11 к земле

На фото резистора есть  2 вывода

  • Соедините один вывод с 3.3.v
  • Соедините другой — с пином 18/GPIO 24 Raspberry Pi
  • Подсоедините Конденсатор на 1uF к тому же самому выводу, на фото резистор связан с GPIO24. Первая (Белая Полоса) сторона конденсатора должна идти на Землю.

Проверьте свою работу с помощью приложенной Диаграммы и фотографий.

Шаг 5: Установка Thingspeak для наших данных IOT

Для начала, перед тем как получить первые данные с нашего устройства, надо настроить Thingspeak

Пройдите на Thingspeak.com и создайте новый бесплатный аккаунт или войдите в существующую учетную запись. Нажмите на «My Channels» и затем на New Channel. Назовите свой новый канал и заполните все поля формы. Заполнение полей понадобится позже, когда мы будем отправлять данные. Они могут быть в любом порядке, но когда вы будете отправлять данные, важно помнить об этом порядке.

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

Шаг 6: Мини введение по Python

Python существует много лет и сейчас является языком для разработчиков всех уровней квалификации. Это — легкий и чистый язык для новичка и хороший инструмент для продвинутого разработчика. Поэтому он стал отличным выбором для Raspberry Pi. На Raspberry Pi Вы заметите, что есть Python 2 и Python 3 выбора. Мы будем работать в Pyhton 3.

Наверное у Вас возникнут следующие вопросы:

Почему Python 3?

Хороший вопрос. Чтобы ответить Вам, я сошлюсь на Wiki: «Python 2.x является наследством, Python 3.x является настоящим и будущим языка»

Где я могу узнать больше о Python?

Начните в источнике, python.org или попробуйте силы в Python onlie в Коде Академии. Для просмотра обучающих программ по Python на Raspberry Pi прошу сюда.

Запуск IDLE на Raspberry Pi

У большинства языков программирования есть Integrated Development Environment (Интегрированная Среда проектирования) или IDE, и Python не исключение. Для Python это IDLE, что обозначает тоже самое Integrated DeveLopment Environment (Интегрированную Среду проектирования). IDLE по существу редактор текста, который понимает, что Вы осуществляете кодировку в Python и выдвинете на первый план свой синтаксис и обеспечит короткие пути, чтобы помочь Вам написать свой коде. Это также поможет утвердить Ваш синтаксис более корректно.

Чтобы Начать IDLE на Raspberry Pi идем в МЕНЮ → Программирование → Python 3

Чтобы начать писать наш скрипт идем в ФАЙЛ → НОВЫЙ, и появится новое, неназванное окно. Это — то, где мы фактически напишем наш код. Сохраните и назовите файл, прежде чем мы начнем. Пройдите в ФАЙЛ → Сохраните и назовите myfirstIOT.py

Примите к сведению каталог, в котором Вы сохранили его. Это, вероятно /home/pi

Не забывайте добавлять «.py» в конце Вашего файла, IDLE, не добавит его автоматически.

Шаг 7: Создаем скрипт Python

Загрузите приложенный Python Script. Вы можете скопировать в свою. IDLE сессию или загрузить его на Ваш Raspberry Pi и сохранить его в / папке pi.

Прежде, чем бежать это делать) убедитесь отредактирован ли Ваш ключ API от Вашего канала ThingSpeak — редактирует эту линию:

#Setup наш API и задержка

myAPI = «*** Ввести Ваш КОД API ЗДЕСЬ ***»

myfirstIOT

Шаг 8: Запустите свой двигатель IOT!

Мы готовы включить наш двигатель IOT — все, что мы должны сделать, запустить наш скрипт.

Открываем LXTerminal. В командной строке по умолчанию Вы уже должны быть в / справочнике pi. Вы можете напечатать LS, чтобы видеть списки файлов, и myfirstIOT.py должен быть там. Нам нужен SUDO (административные) права для скрипта, чтобы получить доступ к выводам GPIO, загружаем скрипт следующим образом:

sudo Python  myfirstIOT.py

Вы должны видеть базовый URL, напечатанный с Вашим ключом API, и следующая строка будет данными от DHT 11.

Каждая строка напечатанная отдельно покажет:

Температура (c) — Температура (f) — влажность — свет (0=off / 1=on)

Затем сходите проверьте Ваш Канал на Thingspeak, у Вас должны быть данные.

УРА! Вы Сделали это!

Вы — теперь часть Интернета Вещей революция.

В мире Google и массового сотрудничества, нужно сказать, что чтобы мы не делали здесь  это не оригинально. Мы просто соединяем компоненты программного и аппаратного обеспечения, чтобы решить проблему, которую мы имеем. После этих слов это означает, что, если я могу сделать это, Вы можете сделать это тоже. Что Вы сделаете затем? Возьмите это и проапгрейдите!

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

девятнадцать − восемь =