- PVSM.RU - https://www.pvsm.ru -
Недавно мы опубликовали учебные примеры кода [1] для различных проектов, которые формируют интернет вещей. Сегодня расскажем об автоматической системе полива. Построена она с использованием Intel IoT Developer Kit, Intel Edison, в её работе применяются облачные платформы, различные API и другие технологии.
Вот какими возможностями обладает автоматическая система полива, которую мы создадим на базе Intel Edison:
Система полива позволяет задавать расписание полива, открывая с помощью смартфона, или другого подходящего устройства, веб-страницу, которая хранится на Intel Edison. Она автоматически опрашивает датчик влажности и выводит полученные данные на веб-страницу.
Если предполагается, что водяной насос включён, но датчик расхода воды показывает, что вода по трубам не двигается, будет отправлено текстовое сообщение на заданный номер через Twilio. Таким образом, систему полива, которая вышла из строя, можно будет оперативно отремонтировать.
Дополнительно система может вести журнал событий с использованием кода из Intel IoT Examples Datastore, который исполняется в среде Microsoft Azure.
Аппаратная часть проекта – это Grove Environment & Agriculture Kit, включающий в себя:
Для того, чтобы начать работу, скопируйте на компьютер Git репозиторий How-To Intel IoT Code Samples с помощью такой команды:
$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git
Если вам удобнее загрузить ZIP-архив с необходимыми материалами, откройте эту [5] страницу и щёлкните по расположенной справа кнопке Download ZIP. Загрузив архив, распакуйте его и найдите папку с кодом к этому проекту (watering-system).
В Intel XDK IoT Edition выберите команду Import Your Node.js Project (Импортировать проект Node.js):
Импорт Node.js-проекта
Затем перейдите к папке, в которой расположены файлы учебного проекта и выделите её.
Выбор папки с кодом проекта
Теперь нужно подключить плату Intel Edison к компьютеру и загрузить на плату программу. Для этого можно воспользоваться меню IoT Device (IoT-устройство), которое расположено в левой нижней части окна. Если система автоматически распознала подключённую плату, выберите в меню соответствующую строку.
Подключение Intel Edison
Если же плата не была распознана автоматически, выберите пункт Add Manual Connection (Добавить подключение вручную), в появившемся окне, в поле Address (Адрес), введите 192.168.2.15, в поле Port (Порт) введите 58888. Кнопкой Connect (Подключить) сохраните подключение.
Кроме того, программу можно установить на Intel Edison вручную. Для этого подключитесь к плате по SSH и выполните следующую команду:
$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git
Затем перейдите в папку с примером. Если на Edison ещё не установлен Git, сделать это можно, подключившись к плате по SSL и выполнив следующую команду:
$ opkg install git
Прототип системы полива в сборе
Нужно, чтобы к коммутационной Arduino-совместимой плате была подключена плата расширения Groove (Grove Shield), к которой будут подключаться датчики и актуаторы. Проверьте, чтобы на плате расширения Grove маленький переключатель VCC находился в положении 5V.
Необходимо подвести питание к Intel Edison от внешнего адаптера, который поставляется вместе со Starter Kit, или заменить его на подходящий внешний источник питания (12 В, 1.5 А). Можно использовать и USB-батарею на 5 В.
Кроме того, понадобится макетная плата и дополнительный источник питания на 5 В для водяного насоса. Обратите внимание на то, что для насоса нужен отдельный источник питания. Нельзя использовать один и тот же источник и для Intel Edison и для насоса, то есть, понадобится либо две батареи, либо два адаптера.
Для подключения водяного насоса понадобится реле с сухим герконом Groove. Подключение выполняется так:
Если вы выбрали путь самостоятельного запуска кода примера на Intel Edison, понадобится разрешить некоторые зависимости.
Для получения модулей Node.js, необходимых для того, чтобы пример запустился на Edison, выполните такую команду:
npm install
Для того, чтобы система могла отправлять текстовые сообщения, необходима учётная запись Twilio [6] и API-ключ. Без ключа сообщения отправлять нельзя. Пример будет работать и без отправки сообщений, но в реальных проектах подобная возможность весьма полезна.
Для того чтобы настроить пример на работу с вашей учётной записью Twilio, нужно, в файле config.json, задать значения параметров «TWILIO_ACCT_SID
» и «TWILIO_AUTH_TOKEN
». В них, соответственно, нужно указать API-ключ и маркер аутентификации.
{
"TWILIO_ACCT_SID": "YOURAPIKEY",
"TWILIO_AUTH_TOKEN": "YOURTOKEN"
}
При желании можете хранить данные, которые генерируются рассматриваемым примером, в базе данных, развёрнутой с использованием Microsoft Azure, Node.js и хранилища данных Redis. Подробности о том, как настроить облачный сервер, смотрите здесь [7].
Если у вас есть учётная запись Microsoft Azure и имеется сервер, готовый принимать данные, нужно внести изменения в config.json, а именно, записать в параметры «SERVER
» и «AUTH_TOKEN
» данные для подключения к серверу.
{
"SERVER": "http://intel-examples.azurewebsites.net/logger/watering-system",
"AUTH_TOKEN": "s3cr3t"
}
В том случае, если в вашем варианте примера будет использоваться и отправка текстовых сообщений средствами Twilio, и хранение данных в Microsoft Azure, настройки будут выглядеть так:
{
"TWILIO_ACCT_SID": "YOURAPIKEY",
"TWILIO_AUTH_TOKEN": "YOURTOKEN",
"SERVER": "http://intel-examples.azurewebsites.net/logger/watering-system",
"AUTH_TOKEN": "s3cr3t"
}
Прежде чем запускать программу, сохраните изменения, внесённые в файлы. После этого щёлкните по значку Upload (Выгрузка) для того, чтобы выгрузить код на Intel Edison.
Выгрузка проекта на Intel Edison
После выгрузки запустите программу на устройстве с помощью значка Run (Запуск).
Запуск проекта
Если вы, при работе над проектом, внесли в код изменения, можете воспользоваться командой Upload and Run (Выгрузить и запустить). Свежая версия программы будет выгружена и запущена на Intel Edison. В ходе выполнения программы на Edison можно будет видеть сообщения, подобные показанным на рисунке ниже.
Сообщения от программы, которая работает на Intel Edison
Для того, чтобы запустить программу вручную, подключитесь к Intel Edison по SSH и выполните следующую команду:
node index.js
Для настройки расписания полива используется веб-интерфейс, состоящий из одной страницы. Эту страницу можно открыть, запросив её у веб-сервера, который выполняется на той же плате Intel Edison, на которой выполняется основная программа.
Страница для настройки расписания полива
Серверу назначен порт 3000. Таким образом, если Intel Edison подключён к Wi-Fi-сети и ему назначен IP-адрес 192.168.1.13, то адрес сервера (при условии, что подключаются к нему из той же самой локальной сети) будет http://192.168.1.13:3000 [8].
Для того, чтобы узнать IP-адрес Intel Edison, можно воспользоваться следующей командой:
ip addr show | grep wlan
После её выполнения можно будет увидеть примерно следующее:
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
inet 192.168.1.13/24 brd 192.168.1.255 scope global wlan0
Адрес Intel Edison можно обнаружить после «inet». В нашем случае это 192.168.1.13.
Мы рассказали о том, как, на базе Intel Edison, собрать систему полива, которая включает в себя набор датчиков и водяной насос. Системой, подключённой к Интернету, можно управлять с любого устройства, которое умеет открывать веб-страницы. Если задействовать в рассмотренном примере облачные службы для хранения данных и отправки сообщений, можно собирать статистику работы устройства, а, в случае возникновения аварийной ситуации, получить текстовое сообщение на заданный номер мобильного телефона и быстро исправить поломку.
С другими примерами кода из серии How-To Intel IoT Code Samples можно ознакомиться на Intel Developer Zone [1]. Полный код рассмотренного здесь примера можно найти на GitHub [9].
Автор: Intel
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/blog-kompanii-intel/119630
Ссылки в тексте:
[1] учебные примеры кода: https://software.intel.com/en-us/blogs/2015/11/04/announcing-18-new-how-to-intel-iot-code-samples
[2] Датчик влажности Grove: http://iotdk.intel.com/docs/master/upm/node/classes/grovemoisture.html
[3] Водяной насос: http://www.seeedstudio.com/depot/6V-Mini-Water-Pump-p-1945.html
[4] Датчик расхода воды: http://www.seeedstudio.com/depot/G18-Water-Flow-Sensor-p-1346.html
[5] эту: https://github.com/intel-iot-devkit/how-to-code-samples
[6] Twilio: https://www.twilio.com/
[7] здесь: https://github.com/intel-iot-devkit/intel-iot-examples-datastore
[8] http://192.168.1.13:3000: http://192.168.1.13:3000/
[9] GitHub: https://github.com/intel-iot-devkit/how-to-code-samples/tree/master/watering-system/javascript
[10] Источник: https://habrahabr.ru/post/282756/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.