Оглавление:
- Шаг 1. Что вам понадобится
- Шаг 2: прототип макета
- Шаг 3: установка программного обеспечения
- Шаг 4: Подготовьте плату для зарядки от солнечной батареи
- Шаг 5: Постройте схему микроконтроллера
- Шаг 6: Установите кабельные вводы
- Шаг 7: Завершите сборку схемы
- Шаг 8: подготовьте солнечную панель
- Шаг 9: проверьте это
- Шаг 10: используйте его снаружи
Видео: Солнечный измеритель влажности почвы с ESP8266: 10 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:47
В этом руководстве мы создаем монитор влажности почвы на солнечной энергии. Он использует микроконтроллер Wi-Fi ESP8266 с кодом низкого энергопотребления, и все водонепроницаемое, поэтому его можно оставить снаружи. Вы можете точно следовать этому рецепту или взять из него полезные приемы для своих собственных проектов.
Если вы новичок в программировании микроконтроллеров, ознакомьтесь с моими классами Arduino и Интернетом вещей, чтобы познакомиться с основами подключения, кодирования и подключения к Интернету.
Этот проект является частью моего бесплатного курса Solar Class, где вы можете узнать больше о способах использования солнечной энергии с помощью гравировки и солнечных батарей.
Чтобы быть в курсе того, над чем я работаю, подписывайтесь на меня на YouTube, Instagram, Twitter, Pinterest и подписывайтесь на мою рассылку.
Шаг 1. Что вам понадобится
Вам понадобится плата для зарядки солнечной батареи и разветвитель ESP8266, такой как NodeMCU ESP8266 или Huzzah, а также датчик почвы, аккумулятор, выключатель питания, провод и корпус для подключения вашей схемы.
Вот компоненты и материалы, используемые для монитора влажности почвы:
- Микроконтроллер ESP8266 NodeMCU (или аналогичный, Vin должен выдерживать напряжение до 6 В)
- Плата для зарядки солнечных батарей Adafruit с дополнительным термистором и резистором 2,2 кОм
- Литий-ионный аккумулятор 2200 мАч
- Плата Perma-proto
- Датчик влажности почвы / температуры
- 2 кабельных ввода
- Водонепроницаемый корпус
- Водонепроницаемый пара кабелей питания постоянного тока
- Термоусадочные трубки
- Солнечная панель 3,5 Вт
- Кнопочный выключатель питания
- Двойная лента из вспененного материала
Вот инструменты, которые вам понадобятся:
- Паяльник и припой
- Инструмент "Руки помощи"
- Инструмент для зачистки проводов
- Ножницы для промывки
- Пинцет (по желанию)
- Тепловая пушка или зажигалка
- Мультиметр (необязательно, но удобен для поиска и устранения неисправностей)
- Кабель USB A-microB
- Ножницы
- Шаг дрель
Вам понадобятся бесплатные учетные записи на сайтах облачных данных io.adafruit.com и IFTTT.
Как партнер Amazon я зарабатываю на соответствующих покупках, которые вы совершаете с помощью моих партнерских ссылок.
Шаг 2: прототип макета
Для подобных проектов важно создать прототип макетной платы без пайки, чтобы вы могли убедиться, что датчик и код работают, прежде чем устанавливать какие-либо постоянные соединения.
В этом случае датчик почвы имеет многожильные провода, поэтому необходимо было временно прикрепить сплошные разъемы к концам проводов датчика, используя припой, помогающие руки и термоусадочную трубку.
Следуйте принципиальной схеме, чтобы подключить контакты питания, заземления, часов и данных датчика (данные также получают подтягивающий резистор 10 кОм, который поставляется с датчиком почвы).
- Зеленый провод датчика к GND
- Красный провод датчика на 3,3 В
- Желтый провод датчика к контакту D5 NodeMCU (GPIO 14)
- Синий провод датчика к контакту D6 NodeMCU (GPIO 12)
- Подтягивающий резистор 10 кОм между синим выводом данных и 3,3 В
Вы можете перевести это на предпочитаемый вами микроконтроллер. Если вы используете Arduino Uno или аналогичный, ваша плата уже поддерживается программным обеспечением Arduino. Если вы используете ESP8266, ознакомьтесь с моим классом Интернета вещей, чтобы получить пошаговую помощь по настройке с ESP8266 в Arduino (добавив дополнительные URL-адреса в поле URL-адресов диспетчера дополнительных плат в настройках Arduino, затем выполните поиск и выбор новых досок у менеджера досок). Я обычно использую плату Adafruit ESP8266 Huzzah для программирования платы NodeMCU ESP8266, но вы также можете установить и использовать поддержку платы Generic ESP8266. Вам также понадобится драйвер микросхемы связи USB SiLabs (доступен для Mac / Windows / Linux).
Чтобы заставить датчик работать с моей Arduino-совместимой платой, я загрузил библиотеку SHT1x Arduino со страницы Github Practical Arduino, затем разархивировал файл и переместил папку библиотеки в мою папку Arduino / libraries, а затем переименовал ее в SHT1x. Откройте пример скетча ReadSHT1xValues и измените номера контактов на 12 (dataPin) и 14 (clockPin) или скопируйте измененный скетч сюда:
#включают
#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // создать экземпляр объекта SHT1x void setup () {Serial.begin (38400); // Открываем последовательное соединение для передачи значений хосту Serial.println ("Запуск"); } void loop () {float temp_c; float temp_f; влажность поплавка; temp_c = sht1x.readTemperatureC (); // Считываем значения с датчика temp_f = sht1x.readTemperatureF (); влажность = sht1x.readHumidity (); Serial.print ("Температура:"); // Выводим значения на последовательный порт Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Влажность:"); Серийный отпечаток (влажность); Serial.println ("%"); задержка (2000); }
Загрузите этот код на свою плату и откройте последовательный монитор, чтобы увидеть поток данных датчика.
Если ваш код не компилируется и жалуется на то, что SHT1x.h не найден, значит, у вас не установлена должным образом необходимая библиотека датчиков. Проверьте папку с Arduino / библиотеки на предмет под названием SHT1x, и если он находится где-то еще, например, в папке с загрузками, переместите его в папку с библиотеками Arduino и при необходимости переименуйте.
Если ваш код компилируется, но не загружается на вашу доску, дважды проверьте настройки вашей платы, убедитесь, что ваша плата подключена, и выберите правильный порт в меню «Инструменты».
Если ваш код загружается, но вход вашего последовательного монитора не распознается, дважды проверьте, совпадает ли ваша скорость передачи данных со скоростью, указанной в вашем скетче (38400 в данном случае).
Если ваш последовательный вход монитора кажется неправильным, дважды проверьте вашу проводку на принципиальной схеме. Установлен ли ваш подтягивающий резистор 10 кОм между выводом данных и 3,3 В? Данные и часы подключены к правильным контактам? Подключены ли питание и земля должным образом по всей цепи? Не продолжайте, пока этот простой эскиз не заработает!
Следующий шаг относится к ESP8266 и настраивает дополнительную часть отчета о беспроводных датчиках в образце проекта. Если вы используете стандартный (не беспроводной) микроконтроллер, совместимый с Arduino, продолжайте разработку окончательного эскиза Arduino и переходите к разделу «Подготовка платы для зарядки от солнечных батарей».
Шаг 3: установка программного обеспечения
Чтобы скомпилировать код этого проекта с ESP8266, вам необходимо установить еще несколько библиотек Arduino (доступных через диспетчер библиотек):
- Adafruit IO Arduino
- Adafruit MQTT
- ArduinoHttpClient
Загрузите код, прилагаемый к этому шагу, затем распакуйте файл и откройте Solar_Powered_Soil_Moisture_Monitor_Tutorial в своем программном обеспечении Arduino.
#включают
#include #include #include #include // Укажите подключения данных и часов и создайте экземпляр объекта SHT1x #define dataPin 12 // Вывод NodeMCU D6 #define clockPin 14 // Вывод NodeMCU D5 SHT1x sht1x (dataPin, clockPin); // настраиваем подачу AdafruitIO_Feed * влажность = io.feed ("влажность"); AdafruitIO_Feed * temperature = io.feed («температура»); const int sleepTime = 15; // 15 минут
установка void ()
{Serial.begin (115200); // Открываем последовательное соединение для передачи значений хосту Serial.println ("Запуск"); // подключаемся к io.adafruit.com Serial.print («Подключение к Adafruit IO»); io.connect (); // ждем соединения while (io.status () <AIO_CONNECTED) {Serial.print ("."); задержка (500); } // подключаемся Serial.println (); Serial.println (io.statusText ()); }
пустой цикл ()
{io.run (); // io.run (); поддерживает подключение клиента и требуется для всех эскизов. float temp_c; float temp_f; плавающая влага; temp_c = sht1x.readTemperatureC (); // Считываем значения с датчика temp_f = sht1x.readTemperatureF (); влажность = sht1x.readHumidity (); Serial.print ("Температура:"); // Выводим значения на последовательный порт Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Влажность:"); Serial.print (влажность); Serial.println ("%"); влажность-> сохранить (влажность); температура-> сохранить (temp_f); Serial.println («ESP8266 спит…»); ESP.deepSleep (время сна * 1000000 * 60); // Спать }
Этот код представляет собой гибрид кода сенсора, использованного ранее в этом руководстве, и базового примера из облачной службы данных Adafruit IO. Программа переходит в режим низкого энергопотребления и большую часть времени находится в спящем режиме, но просыпается каждые 15 минут, чтобы определить температуру и влажность почвы, и сообщает свои данные в Adafruit IO. Перейдите на вкладку config.h и введите имя пользователя и ключ Adafruit IO, а также имя и пароль локальной сети Wi-Fi, затем загрузите код в свой микроконтроллер ESP8266.
Вам нужно будет немного подготовиться на io.adafruit.com. После создания каналов для температуры и влажности вы можете создать информационную панель для своего монитора с графиком значений датчиков и данных обоих входящих каналов. Если вам нужно напомнить о том, как начать работу с Adafruit IO, ознакомьтесь с этим уроком в моем классе «Интернет вещей».
Шаг 4: Подготовьте плату для зарядки от солнечной батареи
Подготовьте плату для зарядки солнечной батареи, припаяв ее конденсатор и несколько проводов к выходным площадкам нагрузки. Я настраиваю свой так, чтобы он заряжался быстрее с помощью дополнительного дополнительного резистора (2,2 кОм, припаянного к PROG), и чтобы его было безопаснее оставить без присмотра, заменив резистор для поверхностного монтажа термистором 10 кОм, прикрепленным к самой батарее. Это ограничит зарядку до безопасного диапазона температур. Я рассмотрел эти модификации более подробно в моем проекте Solar USB Charger.
Шаг 5: Постройте схему микроконтроллера
Припаяйте плату микроконтроллера и переключатель питания к плате perma-proto.
Подключите выходную мощность солнечного зарядного устройства к входу вашего переключателя, который должен быть рассчитан как минимум на 1 ампер.
Создайте и припаяйте соединения проводов на макетной плате, описанные на принципиальной схеме выше (или в соответствии со спецификациями вашей персональной версии), включая подтягивающий резистор 10 кОм на линии передачи данных датчика.
Контакты нагрузки солнечного зарядного устройства будут обеспечивать питание батареи 3,7 В, когда солнечная энергия отсутствует, но будет получать питание непосредственно от солнечной панели, если она подключена и солнечно. Поэтому микроконтроллер должен выдерживать различные напряжения, от 3,7 В до 6 В постоянного тока. Для тех, кому требуется 5 В, можно использовать PowerBoost (500 или 1000, в зависимости от требуемого тока) для модуляции напряжения нагрузки до 5 В (как показано в проекте Solar USB Charger). Вот несколько распространенных плат и диапазоны их входных напряжений:
- NodeMCU ESP8266 (здесь используется): 5 В USB или 3,7-10 В Vin
- Arduino Uno: 5 В USB или 7-12 В Vin
- Adafruit Huzzah ESP8266 Breakout: 5 В USB или 3,4-6 В VBat
Чтобы добиться максимально возможного срока службы батареи, вам следует потратить некоторое время на то, чтобы рассмотреть и оптимизировать общий ток, который вы потребляете. ESP8266 имеет функцию глубокого сна, которую мы использовали в скетче Arduino, чтобы значительно снизить энергопотребление. Он просыпается, чтобы считать датчик, и потребляет больше тока, пока он подключается к сети, чтобы сообщить значение датчика, а затем возвращается в спящий режим на указанное время. Если ваш микроконтроллер потребляет много энергии и не может быть легко переведен в спящий режим, подумайте о переносе вашего проекта на совместимую плату, которая потребляет меньше энергии. Задайте вопрос в комментариях ниже, если вам нужна помощь в определении того, какая доска подходит для вашего проекта.
Шаг 6: Установите кабельные вводы
Чтобы обеспечить защиту от атмосферных воздействий для кабеля солнечной панели и кабеля датчика, мы установим два кабельных сальника сбоку от атмосферостойкого кожуха.
Проверьте соответствие компонентов, чтобы определить идеальное размещение, затем отметьте и просверлите отверстия в водонепроницаемом корпусе с помощью ступенчатого сверла. Установите два кабельных ввода.
Шаг 7: Завершите сборку схемы
Вставьте сторону порта водонепроницаемого силового кабеля в один и припаяйте его к входу постоянного тока солнечного зарядного устройства (красный к + и черный к -).
Вставьте датчик почвы через другой сальник и подключите его к perma-proto в соответствии со схемой.
Прикрепите терморезисторный зонд к аккумулятору. Это ограничит зарядку до безопасного диапазона температур, пока проект остается без присмотра на улице.
Зарядка в слишком горячем или слишком холодном состоянии может повредить аккумулятор или вызвать возгорание. Воздействие экстремальных температур может вызвать повреждение и сократить срок службы батареи, поэтому внесите ее внутрь, если она ниже нуля или выше 45 ℃ / 113F.
Затяните кабельные вводы, чтобы обеспечить защиту от атмосферных воздействий вокруг соответствующих кабелей.
Шаг 8: подготовьте солнечную панель
Следуйте моим инструкциям, чтобы соединить кабель солнечной панели со стороной вилки водонепроницаемого кабеля питания постоянного тока.
Шаг 9: проверьте это
Подключите аккумулятор и включите цепь, нажав выключатель питания.
Проверьте это и убедитесь, что он отправляет сообщения в Интернет, прежде чем закрывать корпус и устанавливать датчик в вашем саду с травами, драгоценном горшечном растении или другой почве в пределах диапазона сигнала вашей сети Wi-Fi.
После того, как данные с датчика регистрируются в сети, легко настроить рецепт для электронных или текстовых предупреждений на сайте шлюза API If This Then That. Я настроил свой, чтобы он отправлял мне электронное письмо, если уровень влажности почвы упадет ниже 50.
Чтобы протестировать его, не дожидаясь, пока мое растение высохнет, я вручную ввел точку данных для моего канала влажности на Adafruit IO, которая упала ниже порогового значения. Через несколько секунд приходит письмо! Если уровень почвы упадет ниже указанного мной уровня, я буду получать электронное письмо каждый раз, когда корм будет обновлен, пока я не полью почву. Для моего здравомыслия я обновил свой код, чтобы брать образцы почвы гораздо реже, чем каждые 15 минут.
Шаг 10: используйте его снаружи
Это интересный проект, который можно настроить в соответствии с потребностями вашего растения в гидратации, и его легко заменить или добавить датчики или интегрировать функции солнечной энергии в другие проекты Arduino.
Спасибо, что подписались! Я хотел бы услышать, что вы думаете; пожалуйста, оставьте сообщение в комментариях. Этот проект является частью моего бесплатного Solar Class, где вы можете найти простые проекты на заднем дворе и дополнительные уроки по работе с солнечными батареями. Проверьте это и зарегистрируйтесь!
Если вам понравился этот проект, возможно, вас заинтересуют некоторые из моих других:
- бесплатный класс Интернета вещей
- Счетчик подписчиков YouTube с ESP8266
- Отображение трекера социальной статистики с ESP8266
- WiFi-дисплей погоды с ESP8266
- Интернет Валентин
Чтобы не отставать от того, над чем я работаю, подписывайтесь на меня на YouTube, Instagram, Twitter, Pinterest и Snapchat.
Рекомендуемые:
Гидроизоляция емкостного датчика влажности почвы: 11 шагов (с изображениями)
Гидроизоляция емкостного датчика влажности почвы: емкостные датчики влажности почвы - отличный способ контролировать состояние воды в почве в горшках, саду или теплице с помощью Arduino, ESP32 или другого микроконтроллера. Они превосходят датчики сопротивления, часто используемые в проектах DIY. Видеть
Детектор влажности почвы Thirsty Flamingo: 5 шагов (с изображениями)
Детектор влажности почвы Thirsty Flamingo: датчики влажности используются во множестве различных проектов. Вы можете использовать их для проверки уровня влажности различных материалов и даже проверки уровня влажности в стенах вашего дома, если вы подозреваете, что они влажные. В жаждущем проекте фламинго
Монитор влажности почвы своими руками с Arduino и дисплеем Nokia 5110: 6 шагов (с изображениями)
Монитор влажности почвы своими руками с Arduino и дисплеем Nokia 5110: в этом руководстве мы увидим, как построить очень полезный монитор влажности почвы с большим ЖК-дисплеем Nokia 5110 с использованием Arduino. С легкостью измеряйте уровень влажности почвы вашего растения с помощью Arduino и создавайте интересные устройства
План тестирования датчика влажности почвы: 6 шагов (с изображениями)
План тестирования датчика влажности почвы: Задача: Разработайте и выполните план, при котором будет загораться КРАСНЫЙ светодиод, когда почва влажная, и ЗЕЛЕНЫЙ светодиод, когда почва сухая. Для этого потребуется использовать датчик влажности почвы. Цель: Цель данного руководства - увидеть, шел ли дождь и растение
Измерение влажности почвы с помощью амплитуды звука: 6 шагов (с изображениями)
Измерение влажности почвы с помощью амплитуд звука: в этом руководстве мы объясним, как сделать устройство, которое измеряет влажность почвы с помощью амплитуд звука