Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Автоматизированный сад

Компоненты и расходные материалы

Arduino UNO
× 1
Raspberry Pi 2, модель B
Любой должен работать
× 1
Модуль камеры Raspberry Pi
× 1
Arduino Ethernet Shield 2
× 1
Реле (универсальное)
× 1
Проводной кабель OpenBuilds - пешком
× 1
Фоторезистор
× 1
Водяной насос (общий)
× 1
веер (общий)
Я использовал тот, который был на старом компьютере.
× 1
NPN-транзистор общего назначения
× 1
Карта MicroSD (универсальная)
16 ГБ для замедленной съемки
× 1

Приложения и онлайн-сервисы

IDE Arduino
Raspberry Pi Raspbian
win32diskimager
замазка
myDevices Cayenne

Об этом проекте

Это второй проект, в котором используется мой автоматизированный сад, но на этот раз все будет контролироваться Cayenne, так что это будет намного проще. Также я добавил Raspberry Pi, чтобы снимать покадровое видео.

Настройка Arduino

Для наблюдения за нашим садом я использовал несколько полезных приспособлений. Перед началом не забудьте подключить экран Ethernet к Arduino.

Связи

Влажность почвы: Проверить, нужна ли растениям вода.

  • VCC:5 В
  • GND:GND
  • A0:A1

Поклонник:Я Если станет жарко, он активируется или просто подарит свежий воздух.

  • Один провод идет от резистора к контакту 3 - GND вентилятора идет к среднему контакту транзистора.
  • + вентилятора подключается к реле (средний контакт). Последний контакт транзистора подключается к GND.
  • Диод идет к среднему выводу транзистора и к земле.

Водяной насос: Он активируется при повышении влажности почвы.

  • + идет к середине реле, а GND к GND источника питания.

Фоторезистор (необязательно): Эта часть позволит нам измерить, достаточно ли света в комнате.

  • Одна часть подключена к A0 с резистором, подключенным к земле.
  • Другой на 5В.
  • Анод (+) идет к реле. Другой - к GND источника питания.

Свет:

  • Анод (+) идет к реле. Другой - к GND источника питания.

Датчик влажности / температуры: Некоторый код требуется для этого устройства для правильной работы с Cayenne.

  • VCC:3,3 В
  • GND:GND
  • DAT:цифровой контакт 8

Датчик уровня воды:

  • VCC:5 В
  • GND:GND
  • SIG:A2

Окончательный монтаж

Я использовал 2 реле на рисунке, потому что у Fritzing еще нет 4-канального реле. Для реле я использовал только один блок питания на 12 В. Я разделил положительный и отрицательный провода, а затем припаял 3 провода от положительного и подключил каждую часть реле. Одного достаточно, все не включается одновременно.

Я использовал блок питания 5 В для РЕЛЕ Arduino:

  • VCC:5 В
  • GND:GND
  • IN1:PIN2 Включить свет
  • IN2:PIN5 Включите водяной насос.
  • IN3:нет IN4
  • PiN4:активируйте FAN

Настройка Cayenne

Здесь мы увидим, как настроить Cayenne, что очень просто.

  • Сначала создайте учетную запись здесь.
  • Затем вам нужно подключить экран Ethernet с кабелем Rj45.
  • Вот код для подключения к Cayenne, а также для настройки датчика гула / температуры.

Этот код работает для щита w5100 код доступен на cayenne для других щитов Ethernet / WiFi. Также не забудьте добавить свой токен вы получите его после создания учетной записи.

  #include "DHT.h" // # define CAYENNE_DEBUG // Раскомментируйте, чтобы показать отладочные сообщения #define CAYENNE_PRINT Serial // Закомментируйте это, чтобы отключить печать и сэкономить место # include 

# define DHTPIN 8 // к какому цифровому выводу мы подключены # define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

#define VIRT_TEMP V1 # define VIRT_HUM V2

// Токен аутентификации Cayenne. Это должно быть получено из токена Cayenne Dashboard.char [] ="your toker";

DHT dht (DHTPIN, DHTTYPE); unsigned long prev_DHT_refresh, interval_DHT_refresh =1000;

void setup () {Serial.begin (9600); Cayenne.begin (токен);

dht.begin ();} void loop () {Cayenne.run ();

getDhtValues ​​();

}

void getDhtValues ​​() {unsigned long now =millis (); if (now - prev_DHT_refresh> interval_DHT_refresh) {// Считывание температуры или влажности занимает около 250 миллисекунд! // Показания датчика также могут быть "старыми" до 2 секунд (это очень медленный датчик) float h =dht.readHumidity (); // Считываем температуру в градусах Цельсия (по умолчанию) float t =dht.readTemperature (); // Проверяем, нет ли сбоев при чтении if (! Isnan (h) &&! Isnan (t)) {Cayenne.virtualWrite (VIRT_HUM, h); Cayenne.celsiusWrite (VIRT_TEMP, t); } prev_DHT_refresh =сейчас; }}

Устройства в Cayenne

Мы почти закончили с Arduino. Теперь самое простое. Мы собираемся добавить все устройства на Cayenne.

Добавить устройство -> Пользовательский виджет

Выберите виджет, который вам нравится. Я использовал диаграмму влажности и уровня воды, иначе использовал значение. Для датчика влажности и температуры мы используем виртуальный пин:

  • Температура:Vpin1
  • Влажность:VPin2

Для другого устройства вместо того, чтобы выбирать виртуальный контакт, возьмите Analog со связью с ним. Та же процедура, но на этот раз в исполнительных механизмах, затем выберите контакт Arduino, подключенный к реле для освещения / вентилятора / водяного насоса.

Событие и триггер

Теперь, когда у нас есть панель управления, мы собираемся настроить триггеры:

  • Водяной насос: Это включит насос, когда обнаруженная влажность почвы станет слишком сухой. Обратите внимание, что я использовал 2 триггера:один для запуска водяного насоса, а другой - для его остановки.
  • Уровень воды: Высокое значение означает отсутствие воды. Здесь мы получим уведомление по электронной почте.
  • События: Я установил 4 события:одно - на включение света утром, второе - на выключение вечером, и два - на включение / выключение вентилятора.

Настройте Raspberry Pi

Давайте сделаем замедленную съемку растений.

3 Программное обеспечение:

  • Распбиан
  • Win32diskimager для записи образа на SD-карту.
  • Замазка для удаленного подключения к Raspberry WIn32 disk imager:

После скачивания установите его. Откройте его:

1. Вы увидите «устройство». В общем, значение по умолчанию хорошее (если у вас подключена только SD-карта)

2. Щелкните папку с синим значком и выберите загруженный образ Raspbian Jessie

3. Щелкните написать и готово. Теперь вы можете вставить карту в Raspberry.

Замазка: Это позволяет нам подключаться через SSH, открывать Putty (устанавливать не нужно).

  • Подключите интернет-кабель к Raspberry
  • Вам нужно найти IP-адрес Raspberry 2 простым способом:
  • Подключившись к интерфейсу вашего бокса, вы сможете увидеть устройство с IP-адресом.
  • Подключите сенсорный экран и клавиатуру, перейдите к терминалу, затем ifconfig. Теперь в Putty введите IP-адрес. Это будет что-то вроде 192.168.0.3, затем введите.
  • Будет предложено довериться, нажмите "Да" (изображение).
  • логин: pi , пароль: raspberry . Оставьте окна в стороне, мы вернемся сюда позже.

Теперь, когда у нас работает Raspberry, необходимо несколько обновлений, поэтому в Putty copy вставьте команду:

  sudo apt-get updatesudo apt-get upgrade  

VNC:

Если у вас нет экрана для подключения Raspberry, установите VNC для удаленного управления.

  sudo apt-get install tightvncserver  

Когда закончите запускать сервер:

  vncserver:1  

И загрузив vncviewer на свой компьютер, для подключения введите IP и номер сервера. Это будет выглядеть так:192.168.0.3:1

Cayenne: Вы можете дистанционно управлять Raspberry с помощью Cayenne, вам нужно только установить его:

  wget https://cayenne.mydevices.com/dl/rpi_03wl1tt4nt.shsudo bash rpi_03wl1tt4nt.sh -v  

Замедленная съемка

Последний шаг! Теперь мы можем разрешить камере делать это в Putty или в терминальной пасте:

  sudo raspi-config  

Затем перейдите к включению камеры. Нам нужно создать папку для хранения картинок:

  cd / home / pi / Desktopmkdir timelapse  

После подключения веб-камеры мы создадим скрипт, который будет делать снимок каждый час:

  cd / home / pi / Desktop nano timelapse.sh  

Вставьте это:

  SAVEDIR =/ home / pi / Desktop / timelapse / while [true]; do filename =- $ (date -u + "% d% m% Y_% H% M-% S"). jpg / opt / vc / bin / raspistill -o $ SAVEDIR / $ filenamesleep 3600; done;  

И чтобы убедиться, что скрипт исполняемый:

  chmod + x timelapse.sh  

Заключение

Учебник был длинным, но очень простым, для подключения и настройки платформы всего несколько устройств. На картинке большая неразбериха. Я использовал слишком длинный провод. Я опубликую результат покадровой съемки, когда растения вырастут.

Совет:

Экран Ethernet может получить ошибку DHCP fail. При попытке подключения я нашел решение на форуме Arduino:вам нужно припаять два резистора 100 Ом в случайных местах, чтобы раздражать ваших читателей.

Код

  • Фрагмент кода №1
  • Фрагмент кода № 9
Фрагмент кода №1 Arduino
 

#include "DHT.h"
// # define CAYENNE_DEBUG // Раскомментируйте, чтобы показать сообщения отладки
#define CAYENNE_PRINT Serial // Закомментируйте это, чтобы отключить печать и сэкономить место # include

#define DHTPIN 8 // к какому цифровому выводу мы подключены # define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

#define VIRT_TEMP V1 # define VIRT_HUM V2

// Токен аутентификации Cayenne. Это должно быть получено из токена Cayenne Dashboard.char [] ="your toker";

DHT dht (DHTPIN, DHTTYPE); unsigned long prev_DHT_refresh, interval_DHT_refresh =1000;

void setup () {Serial.begin (9600); Cayenne.begin (токен);

dht.begin ();}

void loop () {Cayenne.run ();

getDhtValues ​​();

}

void getDhtValues ​​() {unsigned long now =millis (); if (now - prev_DHT_refresh> interval_DHT_refresh) {// Считывание температуры или влажности занимает около 250 миллисекунд! // Показания датчика также могут быть "старыми" до 2 секунд (это очень медленный датчик) float h =dht.readHumidity (); // Считываем температуру в градусах Цельсия (по умолчанию) float t =dht.readTemperature ();

// Проверяем, нет ли сбоев при чтении if (! Isnan (h) &&! Isnan (t)) {Cayenne. virtualWrite (VIRT_HUM, h); Cayenne.celsiusWrite (VIRT_TEMP, t); } prev_DHT_refresh =сейчас; }}

Фрагмент кода № 9 SH
 SAVEDIR =/ home / pi / Desktop / timelapse / while [true]; do filename =- $ (date -u + "% d% m% Y_% H% M-% S"). jpg / opt / vc / bin / raspistill -o $ SAVEDIR / $ filenamesleep 3600; done; 

Производственный процесс

  1. Универсальный пульт дистанционного управления Raspberry Pi
  2. Кусочек Raspberry Pi
  3. Cycle Chaser
  4. Детектор воров Raspberry Pi
  5. Датчик температуры Raspberry Pi
  6. МАЛИНОВАЯ АВТОМАТИЗАЦИЯ ДОМА
  7. Raspberry Pi Автоматический полив растений с веб-сайта
  8. MrRobot - мобильное приложение Ubuntu с поддержкой робототехники (задействованы Raspberry Pi и arduino)
  9. Робот-бокс для компакт-дисков Raspberry Pi
  10. Робот Raspberry Pi, управляемый через Bluetooth