Съдържание:

Соларен измервател на влажност на почвата с ESP8266: 10 стъпки (със снимки)
Соларен измервател на влажност на почвата с ESP8266: 10 стъпки (със снимки)

Видео: Соларен измервател на влажност на почвата с ESP8266: 10 стъпки (със снимки)

Видео: Соларен измервател на влажност на почвата с ESP8266: 10 стъпки (със снимки)
Видео: Интелигентна домашна градина 2024, Юли
Anonim

В тази инструкция правим соларен монитор за влажност на почвата. Той използва Wi -Fi микроконтролер ESP8266 с код с ниска мощност и всичко е водоустойчиво, така че може да бъде оставено навън. Можете да следвате точно тази рецепта или да вземете от нея полезните техники за вашите собствени проекти.

Ако сте нов в програмирането на микроконтролери, моля, разгледайте моя Arduino Class и Internet of Things Class, за да се запознаете с основите на окабеляването, кодирането и свързването към интернет.

Този проект е част от моя безплатен слънчев клас, където можете да научите повече начини за използване на слънчевата енергия чрез гравиране и слънчеви панели.

За да сте в крак с това, върху което работя, следвайте ме в YouTube, Instagram, Twitter, Pinterest и се абонирайте за моя бюлетин.

Стъпка 1: Какво ще ви трябва

Какво ще ви трябва
Какво ще ви трябва

Ще ви трябват платка за зареждане на слънчева батерия и ESP8266 пробив, като NodeMCU ESP8266 или Huzzah, както и сензор за замърсяване, батерия, превключвател на захранването, малко проводник и кутия, за да поставите веригата си вътре.

Ето компонентите и материалите, използвани за мониторинг на влажността на почвата:

  • ESP8266 NodeMCU микроконтролер (или подобен, Vin трябва да понася до 6V)
  • Слънчева зареждаща платка Adafruit с опционален термистор и 2.2K ом резистор
  • 2200mAh литиево-йонна батерия
  • Перма-прото платка
  • Сензор за влага/температура на почвата
  • 2 кабелни уплътнения
  • Водоустойчив корпус
  • Водоустойчив DC захранващ кабел
  • Термосвиваеми тръби
  • 3.5W слънчев панел
  • Превключвател за захранване с бутон
  • Двойна лента от пяна

Ето инструментите, които ще ви трябват:

  • Поялник и спойка
  • Инструмент за помощни ръце
  • Машини за сваляне на тел
  • Флаш фрагменти
  • Пинсета (по избор)
  • Топлинен пистолет или запалка
  • Мултицет (по избор, но удобен за отстраняване на неизправности)
  • USB A-microB кабел
  • Ножици
  • Стъпкова тренировка

Ще ви трябват безплатни акаунти на сайтове за данни в облак io.adafruit.com и IFTTT.

Като партньор на Amazon печеля от квалифицирани покупки, които правите с помощта на моите партньорски връзки.

Стъпка 2: Прототип на дъската

Прототип на дъската
Прототип на дъската

Важно е да създадете прототип на макет за спойка за проекти като този, за да можете да се уверите, че сензорът и кодът ви работят, преди да правите постоянни връзки.

Образ
Образ
Образ
Образ
Образ
Образ
Образ
Образ

В този случай сензорът за почвата е окачил проводници, поради което е било необходимо временно да се прикрепят плътни заглавки към краищата на проводниците на сензора с помощта на спойка, помощни ръце и някои термосвиваеми тръби.

Образ
Образ

Следвайте електрическата схема, за да свържете проводниците за захранване, заземяване, часовник и данни на сензора (данните също получават 10K изтеглящ резистор, който се доставя със сензора за почва).

  • Сензорен зелен проводник към GND
  • Червен проводник на сензора до 3.3V
  • Жълт проводник на сензора към NodeMCU щифт D5 (GPIO 14)
  • Сензорен син проводник към NodeMCU щифт D6 (GPIO 12)
  • 10K издърпващ се резистор между син извод за данни и 3.3V

Можете да преведете това в предпочитания от вас микроконтролер. Ако използвате Arduino Uno или подобен, вашата дъска вече се поддържа от софтуера Arduino. Ако използвате ESP8266, моля, разгледайте моя Internet of Things Class за стъпка по стъпка помощ при настройването с ESP8266 в Arduino (чрез добавяне на допълнителни URL адреси към полето Допълнителни URL адреси на мениджърите на табла в предпочитанията на Arduino, след което потърсете и избор на нови дъски от мениджъра на дъски). Склонен съм да използвам тип платка Adafruit ESP8266 Huzzah за програмиране на платката NodeMCU ESP8266, но можете също да инсталирате и използвате поддръжката за обща платка ESP8266. Ще ви е необходим и драйвер за USB комуникационен чип на SiLabs (наличен за Mac/Windows/Linux).

За да стартирам сензора с моята съвместима с Arduino платка, изтеглих библиотеката SHT1x Arduino от страницата на практичния Arduino в github, след това разархивирах файла и преместих папката на библиотеката в папката ми Arduino/библиотеки, след което я преименувах на SHT1x. Отворете примерната скица ReadSHT1xValues и променете номерата на пиновете на 12 (dataPin) и 14 (clockPin) или копирайте променената скица тук:

#включва

#define dataPin 12 // NodeMCU щифт D6 #define clockPin 14 // NodeMCU щифт 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.print (влажност); Serial.println ("%"); забавяне (2000); }

Качете този код на дъската си и отворете серийния монитор, за да видите потока от данни от сензора.

Ако вашият код няма да се компилира и се оплаква, че SHT1x.h не е намерен, нямате правилно инсталирана необходимата сензорна библиотека. Проверете вашата папка Arduino/библиотеки за такава, наречена SHT1x, и ако е някъде другаде, подобно на папката за изтегляне, преместете я в папката си с библиотеки на Arduino и преименувайте, ако е необходимо.

Ако кодът ви се компилира, но няма да се качи на дъската ви, проверете отново настройките на дъската, уверете се, че дъската е включена и изберете правилния порт от менюто Инструменти.

Ако кодът ви се качва, но входът на серийния ви монитор е неразпознаваем, проверете отново скоростта на предаване, която е посочена в скицата ви (в този случай 38400).

Ако входът на вашия сериен монитор не изглежда правилен, проверете отново кабелите си спрямо електрическата схема. Вашият 10K издърпващ резистор на място ли е между извода за данни и 3.3V? Данните и часовникът свързани ли са с правилните щифтове? Свързани ли са захранването и земята както трябва по цялата верига? Не продължавайте, докато тази проста скица не заработи!

Следващата стъпка е специфична за ESP8266 и конфигурира опционалната част за отчитане на безжичния сензор от примерния проект. Ако използвате стандартен (безжичен) съвместим с Arduino микроконтролер, продължете да разработвате последната си скица на Arduino и преминете към Подготовка на слънчева зарядна платка.

Стъпка 3: Настройка на софтуера

Настройка на софтуера
Настройка на софтуера

За да компилирате кода за този проект с ESP8266, ще трябва да инсталирате още няколко библиотеки Arduino (достъпни чрез мениджъра на библиотеки):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Изтеглете кода, приложен към тази стъпка, след това разархивирайте файла и отворете Solar_Powered_Soil_Moisture_Monitor_Tutorial във вашия софтуер Arduino.

#включва

#include #include #include #include // Посочете връзки за данни и часовник и инстанцирайте SHT1x обект #дефинирайте dataPin 12 // NodeMCU щифт D6 #дефинирайте clockPin 14 // NodeMCU щифт D5 SHT1x sht1x (dataPin, clockPin); // настройваме фуража AdafruitIO_Feed *влажност = io.feed ("влажност"); AdafruitIO_Feed *температура = io.feed ("температура"); const int sleepTime = 15; // 15 минути

void setup ()

{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 ()); }

void loop ()

{io.run (); // io.run (); поддържа клиента свързан и е необходим за всички скици. поплавък 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 (sleepTime * 1000000 * 60); // сън}

Този код представлява смесване на сензорния код от по -рано в този урок и основен пример от услугата за данни в облака Adafruit IO. Програмата влиза в режим на ниска мощност и спи по -голямата част от времето, но се събужда на всеки 15 минути, за да отчете температурата и влажността на почвата и докладва данните си на Adafruit IO. Придвижете се до раздела config.h и попълнете потребителското си име и ключ за Adafruit IO, както и името и паролата на вашата локална wifi мрежа, след което качете кода във вашия микроконтролер ESP8266.

Образ
Образ

Ще трябва да направите малко подготовка на io.adafruit.com. След като създадете емисии за температура и влажност, можете да създадете табло за управление на вашия монитор, включващо графика на стойностите на сензора и данните за входящите емисии. Ако имате нужда от опресняване, за да започнете с Adafruit IO, разгледайте този урок в моя клас Internet of Things.

Стъпка 4: Подгответе слънчева зарядна платка

Подгответе слънчева зарядна платка
Подгответе слънчева зарядна платка

Подгответе платката за зареждане на слънчевата енергия, като запоите върху нейния кондензатор и някои проводници към изходните накладки за натоварване. Персонализирам моята да се зарежда по-бързо с допълнителен допълнителен резистор (2.2K запоен в PROG) и го правя по-безопасно да оставя без надзор, като заменя резистора за повърхностен монтаж с 10K термистор, прикрепен към самата батерия. Това ще ограничи зареждането до безопасен температурен диапазон. Разгледах тези модификации по -подробно в моя проект за слънчево USB зарядно устройство.

Стъпка 5: Изградете схема на микроконтролер

Изградете схема на микроконтролер
Изградете схема на микроконтролер
Образ
Образ
Образ
Образ

Запояйте платката на микроконтролера и превключвателя на захранването към платка perma-proto.

Образ
Образ

Свържете изходната мощност на слънчевото зарядно устройство към входа на вашия превключвател, който трябва да бъде оценен за поне 1 ампер.

Образ
Образ

Създайте и запоявайте връзките на проводниците, описани в схемата по-горе (или според спецификациите на вашата лична версия), включително 10K издърпващ се резистор на линията за данни на сензора.

Натоварващите щифтове на соларното зарядно устройство ще осигурят 3.7V захранване на батерията, когато няма слънчева енергия, но ще се захранват директно от слънчевия панел, ако е включен и слънчев. Следователно микроконтролерът трябва да може да понася различни напрежения, до 3,7 V и до 6 V DC. За тези, които се нуждаят от 5V, PowerBoost (500 или 1000, в зависимост от необходимия ток) може да се използва за модулиране на натоварващото напрежение до 5V (както е показано в проекта за слънчево USB зарядно устройство). Ето някои общи платки и техните диапазони на входното напрежение:

  • NodeMCU ESP8266 (използва се тук): 5V USB или 3.7V-10V Vin
  • Arduino Uno: 5V USB или 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB или 3.4-6V VBat

За да постигнете възможно най -дълъг живот на батерията, трябва да отделите известно време, за да обмислите и оптимизирате общия ток, който изразходвате. ESP8266 има функция за дълбок сън, която използвахме в скицата на Arduino, за да намалим драстично консумацията на енергия. Той се събужда, за да прочете сензора и извлича повече ток, докато се свързва с мрежата, за да отчете стойността на сензора, след което се връща в режим на заспиване за определен период от време. Ако вашият микроконтролер черпи много енергия и не може лесно да бъде приспан, помислете за пренасяне на вашия проект на съвместима платка, която черпи по -малко енергия. Задайте въпрос в коментарите по -долу, ако имате нужда от помощ при определяне коя дъска може да е подходяща за вашия проект.

Стъпка 6: Инсталирайте кабелни уплътнения

Образ
Образ

За да направим устойчиви на атмосферни влияния входни точки за кабела на слънчевия панел и кабела на сензора, ще монтираме две кабелни уплътнения отстрани на корпуса, устойчив на атмосферни влияния.

Образ
Образ
Образ
Образ

Проверете дали вашите компоненти са подходящи, за да определите идеалното разположение, след това маркирайте и пробийте дупки във водоустойчив корпус с помощта на стъпаловидна бормашина. Инсталирайте двете кабелни уплътнения.

Образ
Образ

Стъпка 7: Пълно сглобяване на веригата

Пълен монтаж на веригата
Пълен монтаж на веригата

Поставете страната на порта на водоустойчив захранващ кабел в един и го запоявайте към DC входа на слънчевото зарядно устройство (червено към + и черно към -).

Образ
Образ

Поставете сензора за почвата през другата жлеза и го свържете към perma-proto съгласно схемата на веригата.

Образ
Образ

Залепете сондата на термистора към батерията. Това ще ограничи зареждането до безопасен температурен диапазон, докато проектът е оставен без надзор навън.

Образ
Образ

Зареждането, докато е твърде горещо или твърде студено, може да повреди батерията или да предизвика пожар. Излагането на екстремни температури може да причини повреда и да съкрати живота на батерията, затова я вкарайте вътре, ако е под нулата или над 45 ℃/113F.

Образ
Образ

Затегнете кабелните уплътнения, за да направите водоустойчиво уплътнение около съответните им кабели.

Стъпка 8: Подгответе слънчевия панел

Подгответе слънчевия панел
Подгответе слънчевия панел

Следвайте инструкциите ми за снаждане на кабела за вашия слънчев панел със страната на щепсела на водоустойчивия комплект захранващи кабели с постоянен ток.

Стъпка 9: Тествайте го

Тествайте го
Тествайте го

Включете батерията и включете веригата, като натиснете ключа за захранване.

Образ
Образ

Изпробвайте го и се уверете, че докладва в интернет, преди да затворите заграждението и да инсталирате сензора във вашата билкова градина, скъпоценно саксийно растение или друга почва в обхвата на сигнала на вашата wifi мрежа.

Образ
Образ

След като данните от сензора бъдат регистрирани онлайн, е лесно да настроите рецепта за имейл или текстови сигнали на сайта на шлюза на API Ако това след това. Конфигурирах моя да ми пише по имейл, ако нивото на влажност на почвата падне под 50.

За да го изпробвам, без да чакам растението ми да изсъхне, ръчно въведох точка от данни за моята храна за влажност на Adafruit IO, която падна под прага. Няколко минути по -късно имейлът пристига! Ако нивата на почвата паднат под моето определено ниво, ще получавам имейл всеки път, когато фуражите се актуализират, докато напоя почвата. За да бъда здрав, актуализирах кода си, за да взема проби от почвата много по -рядко, отколкото на всеки 15 минути.

Стъпка 10: Използвайте го навън

Използвайте го навън!
Използвайте го навън!
Използвайте го навън!
Използвайте го навън!

Това е забавен проект за персонализиране според нуждите от хидратация на вашето растение и е лесно да смените или добавите сензори или да интегрирате функциите на слънчевата енергия във вашите други проекти на Arduino.

Благодаря, че ни последвахте! Бих искал да чуя какво мислите; моля, публикувайте в коментарите. Този проект е част от моя безплатен Solar Class, където можете да намерите лесни проекти за задния двор и повече уроци за работа със слънчеви панели. Проверете и се запишете!

Ако този проект ви харесва, може да се интересувате от някои от другите ми:

  • безплатен клас Интернет на нещата
  • Брояч на абонати в YouTube с ESP8266
  • Дисплей за проследяване на социална статистика с ESP8266
  • WiFi Weather Display с ESP8266
  • Интернет Валентин

За да сте в крак с това, върху което работя, следвайте ме в YouTube, Instagram, Twitter, Pinterest и Snapchat.

Препоръчано: