Образцы кода Intel для Интернета вещей: система полива

Введение

Эта автоматическая система полива входит в серию упражнений с образцами кода Intel для Интернета вещей. Здесь используется Intel® IoT Developer Kit, платформа разработки Intel® Edison, облачные платформы, API и другие технологии.

Выполнив это упражнение, разработчики научатся:

  • подключать платформу разработки Intel® Edison, предназначенную для создания прототипов и носимых компьютерных устройств и решений Интернета вещей;
  • подключаться к интерфейсу ввода-вывода платформы Intel® Edison и хранилищу датчиков с помощью MRAA и UPM из пакета Intel® IoT Developer Kit, представляющего собой полный набор аппаратных и программных компонентов, помогающих разработчикам изучать возможности Интернета вещей и создавать современные проекты;
  • запускать этот образец кода в интегрированной среде разработки Intel® XDK IoT Edition, предназначенной для создания приложений, взаимодействующих с датчиками и приводами, и помогающей быстро приступить к разработке программного обеспечения для платы Intel® Edison и Intel® Galileo;
  • настраивать сервер веб-приложения для размещения данных системы полива с помощью Azure Redis Cache* в Microsoft* Azure*, настраивать облачные решения Интернета вещей, включая решения для анализа данных, машинного обучения и различных рабочих инструментов, чтобы упростить процесс подключения датчиков к облаку и помочь быстрее запустить проект Интернета вещей;
  • вызывать службы API Twilio* для отправки СМС-сообщений.

Что это такое

В этом проекте, используя плату Intel® Edison, можно создать автоматическую систему полива, обладающую следующими возможностями:

  • Включение и выключение водяного насоса по настраиваемому расписанию.
  • Определение перекачки воды в заданное время с помощью датчика потока воды.
  • Доступ с мобильного телефона через встроенный веб-интерфейс для настройки времени полива.
  • Отслеживание событий полива с помощью облачного хранилища данных.
  • Отправка СМС-сообщений для оповещения получателей о неисправностях системы.

Как это работает

Эта система полива позволяет настраивать расписание полива на веб-странице, загружаемой непосредственно платой Intel® Edison, с помощью мобильного телефона.

Система автоматически опрашивает данные датчика влажности с заданными интервалами и отображает эти данные на веб-странице.

Если водяной насос по расписанию должен работать, но датчик потока воды определяет, что подача воды отсутствует, система отправляет СМС-сообщение на указанный номер телефона с помощью Twilio*, чтобы оповестить о необходимости ремонта системы полива.

Кроме того, система может записывать события полива с помощью хранилища IoT Examples и учетной записи Microsoft* Azure*.

Требования к оборудованию

Комплект Grove* Environment & Agriculture Kit.

  1. Плата Intel® Edison с коммутационной платой Arduino*
  2. Датчик влажности Grove*
  3. Водяной насос
  4. Датчик потока воды
  5. Реле Grove* Dry-Reed

Требования к программному обеспечению

  1. Intel® XDK IoT Edition
  2. Учетная запись Microsoft* Azure*
  3. Учетная запись Twilio*

Инструкции по настройке

Чтобы приступить к работе, скопируйте хранилище How-To Intel IoT Code Samples с помощью Git* на компьютер следующим образом:

$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git

Нужно загрузить ZIP-файл? В веб-браузере перейдите по адресу https://github.com/intel-iot-devkit/how-to-code-samples и нажмите кнопку Download ZIP в правой нижней части экрана. После загрузки ZIP-файла распакуйте его и используйте файлы в папке этого примера.

Добавление программы в Intel® XDK IoT Edition

В Intel® XDK IoT Edition выберите Import Your Node.js Project.

Затем перейдите в папку примера проекта и выберите его.

Нужно подключить плату Intel® Edison к компьютеру, чтобы отправлять на нее код.

Щелкните меню IoT Device в левой нижней части экрана. Если плата Intel® Edison автоматически распознана, выберите ее.

В противном случае выберите Add Manual Connection. В поле Address введите 192.168.2.15. В поле Port введите 58888. Щелкните Connect, чтобы сохранить подключение.

Установка программы вручную на плату Intel® Edison

Можно установить код на плату Intel® Edison вручную.

Скопируйте хранилище How-To Intel IoT Code Samples на плату Intel® Edison после установки SSH-подключения к этой плате:

$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git

Затем перейдите в папку с примером.

Чтобы установить Git* на плату Intel® Edison, если это еще не сделано, установите SSH-подключение к плате и выполните следующую команду:

$ opkg install git

Подключение датчиков Grove*

Нужно подключить плату Grove* Shield к коммутационной плате, совместимой с Arduino*, и подключить все устройства Grove* к плате Grove* Shield. Убедитесь, что маленький переключатель VCC на плате Grove* Shield установлен в положение 5V.

Плату Intel® Edison необходимо подключить к адаптеру питания, входящему в комплект, или использовать любой другой внешний источник питания, выдающий 12 В и 1,5 А. Также можно использовать внешний аккумулятор, например USB-аккумулятор напряжением 5 В.

Кроме того, потребуется макетная плата и дополнительный источник питания 5 В для насоса. Примечание. Для питания насоса требуется отдельный аккумулятор или источник питания. Невозможно использовать один и тот же источник питания и для платы Intel® Edison, и для насоса: нужно либо два аккумулятора, либо два источника питания.

Для подключения водяного насоса нужно использовать плату реле Grove* Dry-Reed.

  1. Подключите один конец кабеля Grove* к реле Grove* Dry-Reed*, а другой — к порту D4 на плате Grove* Shield.
  2. Подключите один конец кабеля Grove* к реле Grove* Dry-Reed*, а другой — к порту D4 на плате Grove* Shield.
  3. Подключите другой провод насоса к одному из разъемов питания на плате реле Grove* Dry-Reed.
  4. Подключите разъем питания на плате реле Grove* Dry-Reed к земляному контакту источника питания 5 В насоса.
  5. Подключите датчик потока воды: красный провод — к контакту 5V, черный провод — к контакту GND, а желтый провод — к цифровому контакту 2 на плате Grove* Shield.
  6. Подключите один конец кабеля Grove* к датчику влажности Grove*, а другой — к порту A0 на плате Grove* Shield.

Ручная настройка платы Intel® Edison

При запуске этого кода на плате Intel® Edison вручную необходимо установить зависимые компоненты.

Для получения модулей Node.js*, необходимых для запуска этого примера программы на плате Intel® Edison, выполните следующую команду:

npm install

Ключ API Twilio*

Для отправки СМС-сообщений необходимо зарегистрировать учетную запись и получить ключ API на веб-сайте Twilio*:

https://www.twilio.com

Для отправки СМС-сообщений нужно сначала получить ключ API Twilio*. Этот пример программы будет работать и без ключа, но в этом случае не будет СМС-сообщений.

Передайте ключ API Twilio* и маркер проверки подлинности в пример программы, изменив параметры TWILIO_ACCT_SID и TWILIO_AUTH_TOKEN в файле config.json следующим образом:

{
  "TWILIO_ACCT_SID": "YOURAPIKEY",
  "TWILIO_AUTH_TOKEN": "YOURTOKEN"
}

Настройка сервера Microsoft* Azure*

При желании можно хранить данные, созданные этим образцом программы, во внутренней базе данных, развернутой с помощью Microsoft* Azure*, Node.js* и хранилища данных Redis*.

Сведения о настройке собственного облачного сервера данных см. по адресу

https://github.com/intel-iot-devkit/intel-iot-examples-datastore

Настройка примера программы

Чтобы настроить этот пример для отправки СМС-сообщений, получите ключ API на веб-сайте Twilio*, как описано выше, и измените параметры TWILIO_ACCT_SID и TWILIO_AUTH_TOKEN в файле config.json следующим образом:

{
  "TWILIO_ACCT_SID": "YOURAPIKEY",
  "TWILIO_AUTH_TOKEN": "YOURTOKEN"
}

Чтобы настроить этот пример для использования хранилища данных Microsoft* Azure*, измените параметры SERVER и AUTH_TOKEN в файле config.json следующим образом:

{
  "SERVER": "http://intel-examples.azurewebsites.net/logger/watering-system",
  "AUTH_TOKEN": "s3cr3t"
}

Чтобы настроить этот пример для использования одновременно и СМС-сообщений, и хранилища данных Microsoft* Azure*, измените параметры TWILIO_ACCT_SID, TWILIO_AUTH_TOKEN, SERVER и AUTH_TOKEN в файле config.json следующим образом:

{
  "TWILIO_ACCT_SID": "YOURAPIKEY",
  "TWILIO_AUTH_TOKEN": "YOURTOKEN",
  "SERVER": "http://intel-examples.azurewebsites.net/logger/watering-system",
  "AUTH_TOKEN": "s3cr3t"
}

Запуск программы с помощью Intel® XDK IoT Edition

Перед запуском сохраните все файлы.

Щелкните значок Upload, чтобы отправить файлы на плату Intel® Edison.

Щелкните значок Run в нижней части окна Intel® XDK IoT Edition. В этом случае код будет запущен на плате Intel® Edison.

Если вы внесли изменения в код, щелкните Upload and Run. В этом случае на плате 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.

Определение IP-адреса платы Intel® Edison

Определить 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

IP-адрес показан после слова inet. В приведенном выше примере используется IP-адрес 192.168.1.13.

Полный список образцов кода Intel для Интернета вещей см. на сайте Intel® Developer Zone.

Дополнительные сведения об этом образце кода см. в GitHub*.

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

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