Оглавление:
Видео: Plant Monitor с использованием ESP32 Thing и Blynk: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Обзор
Цель этого проекта - создать компактное устройство, способное контролировать состояние комнатного растения. Устройство позволяет пользователю проверять уровень влажности почвы, уровень влажности, температуру и комфортную температуру со смартфона с помощью приложения Blynk. Кроме того, пользователь получит уведомление по электронной почте, когда условия станут неподходящими для установки. Например, пользователь получит напоминание о необходимости полить растение, когда уровень влажности почвы упадет ниже подходящего уровня.
Шаг 1. Требования
В этом проекте используется Sparkfun ESP32, датчик DHT22 и электронный датчик влажности почвы для кирпича. Кроме того, требуется сеть Wi-Fi и приложение Blynk. Желательно создать водонепроницаемый корпус, в котором будет находиться ESP32. Хотя в этом примере для источника питания используется стандартная розетка, добавление перезаряжаемой батареи, солнечной панели и контроллера заряда позволило бы устройству получать питание от возобновляемых источников энергии.
Шаг 2: Блинк
Чтобы быть, скачайте приложение Blynk и создайте новый проект. Обратите внимание на токен аутентификации - он будет использован в коде. Создайте новые виджеты отображения в приложении Blynk и выберите соответствующие виртуальные контакты, определенные в коде. Установите интервал обновления для нажатия. Каждому виджету должен быть назначен собственный виртуальный пин.
Шаг 3: IDE Arduino
Загрузите Arduino IDE. Следуйте инструкциям по загрузке драйвера ESP32 thing и демонстрации, чтобы обеспечить подключение к Wi-Fi. Загрузите библиотеки Blynk и DHT, включенные в код. Введите токен аутентификации, пароль Wi-Fi, имя пользователя Wi-Fi и адрес электронной почты в окончательный код. Используйте демонстрационный код для датчика влажности почвы, чтобы найти минимальные и максимальные значения для типа почвы. Запишите и замените эти значения в окончательном коде. Замените минимальные значения температуры, влажности почвы и влажности для растения в окончательном коде. Загрузите код.
Шаг 4: Создайте это
Сначала подключите датчик влажности почвы к 3,3 В, заземлению и входному контакту 34. Обратите внимание, что встроенный переключатель установлен в положение A, поскольку будет использоваться аналоговая настройка для этого датчика. Затем подключите датчик DHT к 3,3 В, заземлению и входному выводу 27. Датчик DHT22 требует резистора 10 кОм между VCC и выводом вывода данных. Обязательно проверьте схему DHT, чтобы убедиться, что она подключена правильно. Сконфигурируйте ESP32 внутри водонепроницаемого корпуса с датчиком влажности в почве и датчиком DHT над поверхностью. Подключитесь к источнику питания и наслаждайтесь данными об окружающей среде вашего предприятия.
Шаг 5: Код
// Включенные библиотеки
#define BLYNK_PRINT Serial
#include #include #include #include "DHT.h"
// Информация датчика DHT
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Цифровой вывод, подключенный к датчику DHT DHT dht (DHTPIN, DHTTYPE); // Инициализируем датчик DHT.
// определяем входные контакты и выходы
int plot_sensor = 34; // определяем номер пина аналогового входа, подключенного к датчику влажности
int output_value; // определяем как вывод
int Voltagelevel; // определяем как вывод
int уведомлен = 0; // определяем как 0
int timedelay = 60000L; // установить таймер на запуск получения данных раз в минуту или 60 000 миллисекунд
// устанавливаем минимальные значения для растений
int min_moisture = 20; int min_temperature = 75; int min_humidity = 60;
// Вы должны получить токен аутентификации в приложении Blynk.
char auth = "Auth_Token_Here";
// Ваши учетные данные WiFi.
char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";
BlynkTimer timer;
// Эта функция каждую секунду отправляет время работы Arduino на Virtual Pin (5).
// В приложении частота чтения виджета должна быть установлена на PUSH. Это означает, // что вы определяете, как часто отправлять данные в приложение Blynk.
void Sensors () // основная функция для чтения датчиков и нажатия на blynk
{output_value = analogRead (грунт_сенсор); // Считываем аналоговый сигнал от почвы_сенсора и определяем как output_value // Сопоставляем output_vlaue от минимальных, максимальных значений до 100, 0 и ограничиваем между 0, 100 // Используйте образец кода и последовательный монитор, чтобы найти минимальное и максимальные значения для отдельного датчика и типа почвы для лучшей калибровки. Уровень влажности = ограничение (map (output_value, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Считываем влажность float t = dht.readTemperature (); // Считываем температуру в градусах Цельсия (по умолчанию) float f = dht.readTemperature (true); // Считать температуру в градусах Фаренгейта (isFahrenheit = true) // Вычислить тепловой индекс в градусах Фаренгейта (по умолчанию) float hif = dht.computeHeatIndex (f, h); // Проверяем, нет ли сбоев при чтении, и завершаем работу раньше (чтобы повторить попытку). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F («Не удалось прочитать с датчика DHT!»)); возвращение; } // Это подключает значения к виртуальным контактам, определенным в виджетах в приложении Blynk Blynk.virtualWrite (V5, влагалищ); // Отправляет уровень влажности на виртуальный контакт 5 Blynk.virtualWrite (V6, f); // Отправляет температуру в виртуальный pin 6 Blynk.virtualWrite (V7, h); // Отправляем влажность на виртуальный контакт 7 Blynk.virtualWrite (V8, hif); // Отправляем индекс тепла на виртуальный контакт 8
если (уведомление == 0)
{if (влажность <= min_moisture) // Если уровень влажности равен или ниже минимального значения {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Отправить письмо на завод по производству воды} delay (15000); // Электронные письма Blynk должны быть разделены на 15 секунд. Задержка 15000 миллисекунд if (f <= min_temperature) // Если температура равна или ниже минимального значения {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Отправляем электронное письмо о низкой температуре
}
задержка (15000); // Электронные письма Blynk должны быть разделены на 15 секунд. Задержка 15000 миллисекунд if (h <= min_humidity) // Если влажность равна или ниже минимального значения {Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // Отправляем электронное письмо с уведомлением о низкой влажности} notification = 1; timer.setTimeout (задержка * 5, resetNotified); // умножаем задержку на количество минут между повторением предупреждений по электронной почте}}
void resetNotified () // функция вызывается для сброса частоты рассылки
{уведомление = 0; }
установка void ()
{Serial.begin (9600); // Консоль отладки Blynk.begin (auth, ssid, pass); // подключаемся к blynk timer.setInterval (timedelay, Sensors); // Настраиваем функцию, которая будет вызываться каждую минуту или для которой установлено значение задержки dht.begin (); // запускаем датчик DHT}
// Цикл Void должен содержать только blynk.run и timer
void loop () {Blynk.run (); // Запускаем blynk timer.run (); // Инициирует BlynkTimer}
Рекомендуемые:
Мониторинг ускорения с использованием Raspberry Pi и AIS328DQTR с использованием Python: 6 шагов
Мониторинг ускорения с помощью Raspberry Pi и AIS328DQTR с использованием Python: Ускорение конечно, я думаю, в соответствии с некоторыми законами физики. - Терри Райли Гепард использует удивительное ускорение и быстрое изменение скорости при преследовании. Самое быстрое существо, выброшенное на берег, время от времени использует свой максимальный темп, чтобы поймать добычу
Neopixel Ws2812 Радужный светодиодный светильник с ручкой M5stick-C - Запуск Rainbow на Neopixel Ws2812 с использованием M5stack M5stick C с использованием Arduino IDE: 5 шагов
Neopixel Ws2812 Радужный светодиодный светильник с ручкой M5stick-C | Запуск Rainbow на Neopixel Ws2812 с использованием M5stack M5stick C с использованием Arduino IDE: Привет, ребята, в этой инструкции мы узнаем, как использовать светодиоды neopixel ws2812 или светодиодную ленту, светодиодную матрицу или светодиодное кольцо с платой разработки m5stack m5stick-C с Arduino IDE, и мы сделаем радуга с этим
RF 433MHZ Радиоуправление с использованием HT12D HT12E - Создание радиочастотного пульта дистанционного управления с использованием HT12E и HT12D с частотой 433 МГц: 5 шагов
RF 433MHZ Радиоуправление с использованием HT12D HT12E | Создание радиочастотного пульта дистанционного управления с использованием HT12E и HT12D с частотой 433 МГц: в этой инструкции я покажу вам, как сделать радиоуправляемый пульт дистанционного управления с использованием модуля приемника передатчика 433 МГц с кодированием HT12E & ИС декодера HT12D. В этом руководстве вы можете отправлять и получать данные, используя очень-очень дешевые КОМПОНЕНТЫ, КАК: HT
Начало работы с ESP32 CAM - Потоковое видео с использованием ESP CAM через Wi-Fi - Проект камеры безопасности ESP32: 8 шагов
Начало работы с ESP32 CAM | Потоковое видео с использованием ESP CAM через Wi-Fi | Проект камеры безопасности ESP32: сегодня мы узнаем, как использовать эту новую плату ESP32 CAM и как мы можем ее закодировать и использовать в качестве камеры безопасности и получать потоковое видео через Wi-Fi
Беспроводной пульт дистанционного управления с использованием модуля 2,4 ГГц NRF24L01 с Arduino - Nrf24l01 4-канальный / 6-канальный передатчик-приемник для квадрокоптера - Радиоуправляемый вертолет - Самолет на радиоуправлении с использованием Arduino: 5 шагов (с изображениями)
Беспроводной пульт дистанционного управления с использованием модуля 2,4 ГГц NRF24L01 с Arduino | Nrf24l01 4-канальный / 6-канальный передатчик-приемник для квадрокоптера | Радиоуправляемый вертолет | Самолет на радиоуправлении с использованием Arduino: для управления автомобилем на радиоуправлении | Квадрокоптер | Дрон | Самолет RC | Лодка с дистанционным управлением, нам всегда нужны приемник и передатчик, предположим, для RC QUADCOPTER нам нужен 6-канальный передатчик и приемник, а такие типы TX и RX слишком дороги, поэтому мы сделаем один на нашем