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

Жаждущие твиты офисных растений

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

Arduino Due
× 1
Andium Anduino WiFi
× 1
Arduino Zero
× 1
емкостный датчик влажности почвы
× 1

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

IDE Arduino
IFTTT
Adafruit IO

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

Мотивация

Мы в Andium очень рады, что наконец-то переехали в наш новый офис. Мы украсили его стенами, покрытыми досками, новыми блестящими технологиями и всеми домашними удобствами. Это стало особенно похоже на дом, когда мы разместили горстку этих зеленых листовых друзей по всему пространству!

Только мы забыли полить их, и примерно через неделю наши зеленые друзья стали выглядеть вот так ...

Потерпеть поражение.

Мы - компания Интернета вещей, мы лучше этого. Почему наши заводы не подключены к Интернету! Надеюсь, пока не стало слишком поздно для этого малыша, я собрал решение, используя наш щит anduinoWiFi и IFTTT. Пора дать нашим растениям право голоса!

Начало работы

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

Чтобы дать вашим растениям возможность голоса, вам понадобится Arduino Due или Zero, экран anduinoWiFi (или любой другой подключенный к Wi-Fi Arduino, который может разговаривать с Adafruit IO) и, наконец, «емкостный датчик влажности почвы». Да, и стакан воды. (Отдайте его своему предприятию, когда мы закончим, они поблагодарят вас по электронной почте).

Датчик влажности

Датчик влажности почвы довольно крутой, не так много датчиков, где вы действительно можете погрузиться во влажную грязь, так что наслаждайтесь этим, пока можете. Но не слишком много, обратите внимание на эту строчку ...

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

Если вы перейдете к следующей фотографии выше, вам может быть интересно, почему я погружаю датчик в стакан с водой. Что ж, больше нечего удивляться!

Как откалибровать «емкостной датчик влажности почвы»

У нашего емкостного датчика есть три провода, которые мы подключим к аналоговому контакту A1 3,3 В (красный), заземлению (черный) и (синий сигнал). Когда мы калибруем наш датчик, мы собираемся записать показания емкости, когда датчик полностью высохнет, а затем снять второе показание, когда датчик погружен (до белой линии!) В стакан с водой. Это дает нам крайний порог относительной влажности 0–100%.

Подключите датчик, запустите этот скетч и запишите свои результаты. Для справки, мой dryVal был 807, а мой wetVal - 415.

  int inputPin =A1; void setup () {Serial.begin (115200); задержка (3000); } void loop () {Serial.print ("Raw val:"); Serial.println (readHumidity ()); задержка (3000); } int readHumidity () {int sensorVal =analogRead (inputPin); датчик возврата Val; }  

Когда у вас есть эти два числа, вы готовы настроить отображение относительной влажности. Считайте себя откалиброванным!

Набросок

  #include  #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h" #include "AnduinoLCD.h" // параметры WiFi #define WLAN_SSID "Andium" #define WLAN_PASS "возможно, это просто пароль" // Adafruit IO #define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 #define AIO_USERNAME "yourusernname" #define AIO_KEY "dosifje0j230fj32lksdfj230ff23" WiFiClient client; Adafruit_MQTT_Client mqtt (&клиент, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); / ***************************** Каналы ****************** ********************* / // Настройка корма для температуры Adafruit_MQTT_Publish влажностьVal =Adafruit_MQTT_Publish (&mqtt, AIO_USERNAME "/ feeds / officePlants"); / * Создаем экземпляр AnduinoLCD * / AnduinoLCD LCD =AnduinoLCD (ST7735_CS_PIN, ST7735_DC_PIN, ST7735_RST_PIN); int inputPin =A1; const int dryVal =807; const int wetVal =415; внутренняя влажность =0; интервал влажностиPrev =0; int relHumidity =0; void setup () {Serial.begin (115200); задержка (3000); // Подключаемся к Wi-Fi и Adafruit.IO connectToWiFi (); connectToAdafruit (); // Инициализируем ЖК-дисплей LCD.begin (); LCDinit (); } void loop () {// несколько раз пингуем adafruit io, чтобы убедиться, что мы остаемся на связи if (! mqtt.ping (3)) {// переподключимся к adafruit io if (! mqtt.connected ()) connect (); } влажность =readHumidity (); // преобразовываем int temp в массив char char b [4]; String str; str =Строка (влажность); для (int я =0; я  =0) mqtt.disconnect (); Serial.println (F ("Повторная попытка подключения ...")); задержка (1000); } Serial.println (F («Adafruit IO подключен!»)); } void displayHumidity (int влажность, int humidtyPrev) {// очистить устаревшее значение LCD.setTextColor (ST7735_BLACK); LCD.setTextSize (2); LCD.setTextWrap (истина); LCD.setCursor (40,60); LCD.setTextSize (5); LCD.print (влажностьPrev); LCD.setTextSize (2); LCD.print ("%"); // Распечатать новое значение LCD.setTextColor (ST7735_WHITE); LCD.setTextSize (2); LCD.setTextWrap (истина); LCD.setCursor (40,60); LCD.setTextSize (5); LCD.print (влажность); LCD.setTextSize (2); LCD.print ("%"); } void connectToWiFi () {// Подключаемся к точке доступа Wi-Fi. задержка (10); Serial.print (F («Подключение к»)); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); в то время как (WiFi.status ()! =WL_CONNECTED) {задержка (500); Serial.print (F (".")); } Serial.println (F («WiFi подключен!»)); } void connectToAdafruit () {// подключаемся к adafruit io connect (); } void LCDinit () {LCD.setBacklight (ВКЛ); LCD.fillScreen (ST7735_BLACK); // очищаем экран LCD.showBanner (); // загружаем Andium Banner LCD.setTextColor (ST7735_WHITE); LCD.setTextSize (2); LCD.setTextWrap (истина); LCD.setCursor (0,40); LCD.print ("Влажность:"); } int readHumidity () {int sensorVal =analogRead (inputPin); relHumidity =map (sensorVal, dryVal, wetVal, 0, 100); Serial.println ("relHumidity"); Serial.print (relHumidity); return relHumidity; }  

Скопируйте и вставьте этот эскиз в свою среду IDE и убедитесь, что у вас установлены эти библиотеки.

  • Wi-Fi101
  • Adafruit_MQTT
  • AnduinoLCD

А также откалиброванный вами лично ...

  const int dryVal =807; const int wetVal =415;  

влажные и сухие значения. Внизу скетча, когда мы читаемHumidity (), мы используем эти значения для отображения относительной влажности 0–100%. Итак, теперь наши значения будут равны 0% при высыхании и 100% при полном насыщении.

  relHumidity =map (sensorVal, dryVal, wetVal, 0, 100);  

Если все идет хорошо, и ваш arduino подключается к Wi-Fi и Adafruit IO, вы должны начать видеть показания каждые 10 минут. Вот снимок наших сегодняшних чтений.

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

Отлично, теперь каждые 10 минут мы публикуем показания влажности почвы. Теперь меня как бы не волнует, какие будут показания, пока мне не нужно спасти свои растения от гибели и полить их. Давайте воспользуемся IFTTT, чтобы установить пороговый уровень влажности и настроить отправку уведомлений, чтобы нам напомнили о необходимости поливать наши растения!

Порог IFTTT

Используя IFTTT, я установил такой порог, что, когда относительная влажность почвы упадет ниже 20%, наши жаждущие растения будут обращаться к нам через твиттер (@andiumPlants) с просьбой о поливе! Вот взгляд на настройку.

Вот и все!

Что дальше?

Я оставляю это на ваше усмотрение! Как еще мы можем творчески дать нашим растениям право голоса и уберечь нашу фауну от разрушения? Возьмите anduinoWiFi и датчик почвы и начните делать!

Код

Андуино
Библиотека Arduino для щита Andium (Андуино). Превратите свой Arduino в AndiumNode. Https://github.com/andium/Anduino

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

  1. Удобрение
  2. Arduino Spybot
  3. FlickMote
  4. Самодельный телевизор B-Gone
  5. Основные часы
  6. Найди меня
  7. Arduino Power
  8. Tech-TicTacToe
  9. Определение здоровья растений с помощью TinyML
  10. Четвероногий Arduino