Სარჩევი:

მცენარეთა მონიტორი ESP32 Thing and Blynk– ის გამოყენებით: 5 ნაბიჯი
მცენარეთა მონიტორი ESP32 Thing and Blynk– ის გამოყენებით: 5 ნაბიჯი

ვიდეო: მცენარეთა მონიტორი ESP32 Thing and Blynk– ის გამოყენებით: 5 ნაბიჯი

ვიდეო: მცენარეთა მონიტორი ESP32 Thing and Blynk– ის გამოყენებით: 5 ნაბიჯი
ვიდეო: Lesson 05: Introduction to Serial Monitor | Robojax Arduino Step By Step Course 2024, ივნისი
Anonim
მცენარეთა მონიტორი ESP32 Thing and Blynk– ის გამოყენებით
მცენარეთა მონიტორი ESP32 Thing and Blynk– ის გამოყენებით
მცენარეთა მონიტორი ESP32 Thing and Blynk– ის გამოყენებით
მცენარეთა მონიტორი ESP32 Thing and Blynk– ის გამოყენებით

მიმოხილვა

ამ პროექტის მიზანია შექმნას კომპაქტური მოწყობილობა, რომელსაც შეუძლია გააკონტროლოს შიდა მცენარეების პირობები. მოწყობილობა მომხმარებელს აძლევს შესაძლებლობას შეამოწმოს ნიადაგის ტენიანობის დონე, ტენიანობის დონე, ტემპერატურა და სმარტფონიდან "იგრძნობა" ტემპერატურა Blynk აპლიკაციის გამოყენებით. გარდა ამისა, მომხმარებელი მიიღებს ელექტრონულ შეტყობინებას, როდესაც ქარხნისთვის შეუსაბამო პირობები გახდება. მაგალითად, მომხმარებელი მიიღებს შეხსენებას მცენარის მორწყვისას, როდესაც ნიადაგის ტენიანობის დონე დაეცემა შესაბამის დონეს.

ნაბიჯი 1: მოთხოვნები

მოთხოვნები
მოთხოვნები
მოთხოვნები
მოთხოვნები
მოთხოვნები
მოთხოვნები

ეს პროექტი იყენებს Sparkfun ESP32 ნივთს, DHT22 სენსორს და ელექტრო აგურის ნიადაგის ტენიანობის სენსორს. გარდა ამისა, საჭიროა wifi ქსელი და ბლინკის აპლიკაცია. სასურველია, შეიქმნას წყალგაუმტარი კორპუსი, რომელიც შეიცავს ESP32 ნივთს. მიუხედავად იმისა, რომ ეს მაგალითი იყენებს სტანდარტულ წყაროს ენერგიის წყაროსთვის, მრავალჯერადი დატენვის ბატარეის, მზის პანელის და დატენვის კონტროლერის დამატება საშუალებას მისცემს მოწყობილობას იკვებებოდეს განახლებადი ენერგიით.

ნაბიჯი 2: ბლინკი

ბლინკი
ბლინკი
ბლინკი
ბლინკი
ბლინკი
ბლინკი

იყავით, ჩამოტვირთეთ ბლინკის აპლიკაცია და შექმენით ახალი პროექტი. გაითვალისწინეთ ავტორიზაციის ნიშანი-ის გამოყენებული იქნება კოდში. შექმენით ახალი ჩვენების ვიჯეტები ბლინკის აპლიკაციაში და შეარჩიეთ კოდით განსაზღვრული შესაბამისი ვირტუალური ქინძისთავები. დააყენეთ განახლების ინტერვალი ბიძგისთვის. თითოეულ ვიჯეტს უნდა მიენიჭოს საკუთარი ვირტუალური პინი.

ნაბიჯი 3: Arduino IDE

Arduino IDE
Arduino IDE

ჩამოტვირთეთ Arduino IDE. მიჰყევით ჩამოტვირთვის ინსტრუქციას ESP32 რამ დრაივერისთვის და დემოსათვის, რათა უზრუნველყოთ wifi კავშირი. ჩამოტვირთეთ ბლინკისა და DHT ბიბლიოთეკები, რომლებიც შედის კოდში. შეავსეთ ავტორიზაციის ნიშანი, wifi პაროლი, wifi მომხმარებლის სახელი და ელ.ფოსტა საბოლოო კოდში. გამოიყენეთ დემო კოდი ნიადაგის ტენიანობის სენსორისთვის, რათა იპოვოთ მინიმალური და მაქსიმალური მნიშვნელობები ნიადაგის ტიპისთვის. ჩაწერეთ და შეცვალეთ ეს მნიშვნელობები საბოლოო კოდში. მცენარის ტემპერატურის, ნიადაგის ტენიანობისა და ტენიანობის მინიმალური მნიშვნელობები ჩაანაცვლეთ საბოლოო კოდში. ატვირთეთ კოდი.

ნაბიჯი 4: ააშენეთ იგი

ააშენე იგი
ააშენე იგი
ააშენე იგი
ააშენე იგი
ააშენე იგი
ააშენე იგი

პირველ რიგში, შეაერთეთ ნიადაგის ტენიანობის სენსორი 3.3 ვ, მიწასთან და შეყვანის პინთან 34. შენიშვნა, ეს არის ინტეგრალური გადამრთველი დაყენებულია A- ზე, რადგან გამოყენებული იქნება ამ სენსორის ანალოგური პარამეტრი. შემდეგი, დაუკავშირეთ DHT სენსორი 3.3V, მიწასთან და შეყვანის პინთან 27. DHT22 სენსორი მოითხოვს 10K Ohm რეზისტორს VCC- სა და მონაცემების ამონაწერს შორის. დარწმუნდით, რომ შეამოწმეთ DHT დიაგრამა, რათა დარწმუნდეთ, რომ ის სწორად არის დაკავშირებული. დააინსტალირეთ ESP32 წყალგაუმტარი გარსაცმის შიგნით, ტენიანობის სენსორით ნიადაგში და DHT სენსორი ზედაპირზე მაღლა. დაუკავშირდით ენერგიის წყაროს და ისიამოვნეთ მონაცემებით თქვენი ქარხნის გარემოს შესახებ.

ნაბიჯი 5: კოდი

// შედის ბიბლიოთეკები

#განსაზღვრეთ BLYNK_PRINT სერიალი

#მოიცავს #მოიცავს #მოიცავს #მოიცავს #DHT.h"

// DHT სენსორის ინფორმაცია

#განსაზღვრეთ DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #განსაზღვრეთ DHTPIN 27 // ციფრული პინი, რომელიც დაკავშირებულია DHT სენსორთან DHT dht (DHTPIN, DHTTYPE); // DHT სენსორის ინიციალიზაცია.

// განსაზღვრეთ შეყვანის ქინძისთავები და შედეგები

int ნიადაგის_სენსორი = 34; // განსაზღვრეთ ტენიანობის სენსორთან დაკავშირებული ანალოგური შეყვანის პინის ნომერი

int output_value; // განსაზღვრეთ როგორც გამომავალი

int ტენიანობის დონე; // განსაზღვრეთ როგორც გამომავალი

int შეტყობინებული = 0; // განსაზღვრეთ notifed როგორც 0

int timedelay = 60000L; // დააყენეთ ქრონომეტრი, რომ მიიღოთ მონაცემები ყოველ წუთში ან 60, 000 მილიწამში

// მცენარის მინიმალური მნიშვნელობების დაყენება

int min_moisture = 20; int min_temperature = 75; int min_humidity = 60;

// თქვენ უნდა მიიღოთ Auth Token ბლინკის აპლიკაციაში.

char auth = "Auth_Token_Here";

// თქვენი WiFi სერთიფიკატები.

char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";

BlynkTimer ქრონომეტრი;

// ეს ფუნქცია აგზავნის არდუინოს დროს ყოველ წამს ვირტუალურ პინზე (5).

// აპლიკაციაში ვიჯეტის კითხვის სიხშირე უნდა იყოს PUSH. ეს ნიშნავს // რომ თქვენ განსაზღვრავთ რამდენად ხშირად გაგზავნით მონაცემებს ბლინკ აპში.

void სენსორები () // მთავარი ფუნქცია სენსორების წასაკითხად და ბლინკზე გადასატანად

{output_value = analogRead (ნიადაგის_სენსორი); // წაიკითხეთ ანალოგური სიგნალი ნიადაგის_სენსორიდან და განსაზღვრეთ როგორც output_value // რუქა output_vlaue წუთიდან, მაქსიმალური მნიშვნელობები 100 -დან 0 -მდე და შეზღუდვა 0 -დან 100 -მდე // გამოიყენეთ კოდის ნიმუში და სერიული მონიტორი მინისა და მაქსიმალური მნიშვნელობები ინდივიდუალური სენსორისთვის და ნიადაგის ტიპი უკეთესი კალიბრაციისათვის ტენიანობის დონე = შეზღუდვა (რუკა (გამომავალი_ ღირებულება, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // წაკითხვის ტენიანობა float t = dht.readTemperature (); // წაიკითხეთ ტემპერატურა ცელსიუსით (ნაგულისხმევი) float f = dht.readTemperature (ჭეშმარიტი); // წაიკითხეთ ტემპერატურა ფარენჰეიტზე (isFahrenheit = true) // გამოთვალეთ სითბოს ინდექსი ფარენჰეიტში (ნაგულისხმევი) float hif = dht.computeHeatIndex (f, h); // შეამოწმეთ თუ წაკითხული ვერ მოხერხდა და გამოდით ადრე (ხელახლა ცდა). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("DHT სენსორიდან წაკითხვა ვერ მოხერხდა!")); დაბრუნების; } // ეს აკავშირებს vales– ს ვირტუალურ ქინძისთავებთან ვილჯეტებში განსაზღვრული Blynk app Blynk.virtualWrite (V5, ტენიანობის დონე); // ტენიანობის დონის გაგზავნა ვირტუალურ პინზე 5 Blynk.virtualWrite (V6, f); // ტემპერატურის გაგზავნა ვირტუალურ pin 6 Blynk.virtualWrite (V7, h); // ტენიანობის გაგზავნა ვირტუალურ pin 7 Blynk.virtualWrite (V8, hif); // სითბოს ინდექსის გაგზავნა ვირტუალურ pin 8 -ზე

თუ (შეტყობინებულია == 0)

{თუ (ტენიანობის დონე <= min_moisture) // თუ ტენიანობის დონე უდრის მინ ან მინიმალურ მნიშვნელობას {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // ელ.ფოსტის გაგზავნა წყლის ქარხანაში} დაგვიანებით (15000); // ბლინკის წერილებს შორის მანძილი უნდა იყოს 15 წამი. დააყოვნეთ 15000 მილიწამი თუ (f <= min_temperature) // თუ ტემპერატურა უდრის მინ მინუს ღირებულებას {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // გააგზავნე ელ.წერილი, რომ ტემპერატურა დაბალია

}

დაგვიანება (15000); // ბლინკის წერილებს შორის მანძილი უნდა იყოს 15 წამი. დააგვიანეთ 15000 მილიწამი თუ (h <= min_hidity) // თუ ტენიანობა უდრის მინ მინუს ღირებულებას {Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // გააგზავნეთ წერილი, რომ ტენიანობა დაბალია} შეატყობინეს = 1; timer.setTimeout (timedelay *5, resetNotified); // დროის გამეორება გამეორებით გამაფრთხილებელ წერილებს შორის სასურველი წუთების რაოდენობის მიხედვით}}

void resetNotified () // ელ.ფოსტის სიხშირის გადატვირთვის ფუნქცია

{შეტყობინებული = 0; }

ბათილად დაყენება ()

{Serial.begin (9600); // გამართვის კონსოლი Blynk.begin (auth, ssid, pass); // დაკავშირება blynk timer.setInterval- თან (timedelay, Sensors); // დააყენეთ ფუნქცია, რომელსაც უნდა დაურეკოთ ყოველ წუთს ან რა დროის მითითება არის მითითებული dht.begin (); // გაუშვით DHT სენსორი}

// ბათილი მარყუჟი უნდა შეიცავდეს მხოლოდ blynk.run და ტაიმერს

void loop () {Blynk.run (); // გაუშვით blynk timer.run (); // იწყებს BlynkTimer}

გირჩევთ: