สารบัญ:
- ขั้นตอนที่ 1: ข้อกำหนด
- ขั้นตอนที่ 2: Blynk
- ขั้นตอนที่ 3: Arduino IDE
- ขั้นตอนที่ 4: สร้างมัน
- ขั้นตอนที่ 5: รหัส
วีดีโอ: ตรวจสอบโรงงานโดยใช้ ESP32 Thing และ Blynk: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ภาพรวม
เป้าหมายของโครงการนี้คือการสร้างอุปกรณ์ขนาดกะทัดรัดที่สามารถตรวจสอบสภาพของกระถางได้ อุปกรณ์นี้ช่วยให้ผู้ใช้สามารถตรวจสอบระดับความชื้นในดิน ระดับความชื้น อุณหภูมิ และอุณหภูมิที่ "ให้ความรู้สึกเหมือน" จากสมาร์ทโฟนโดยใช้แอป Blynk นอกจากนี้ ผู้ใช้จะได้รับอีเมลแจ้งเตือนเมื่อเงื่อนไขไม่เหมาะสมสำหรับโรงงาน ตัวอย่างเช่น ผู้ใช้จะได้รับการแจ้งเตือนให้รดน้ำต้นไม้เมื่อระดับความชื้นในดินลดลงต่ำกว่าระดับที่เหมาะสม
ขั้นตอนที่ 1: ข้อกำหนด
โปรเจ็กต์นี้ใช้สิ่ง Sparkfun ESP32, เซ็นเซอร์ DHT22 และเซ็นเซอร์ความชื้นในดินอิฐอิเล็กทรอนิกส์ นอกจากนี้ จำเป็นต้องมีเครือข่าย wifi และแอป Blynk ควรสร้างกล่องกันน้ำเพื่อบรรจุสิ่งของ ESP32 ในขณะที่ตัวอย่างนี้ใช้เต้ารับมาตรฐานสำหรับแหล่งพลังงาน การเพิ่มแบตเตอรี่แบบชาร์จไฟได้ แผงโซลาร์เซลล์ และตัวควบคุมการชาร์จจะทำให้อุปกรณ์ใช้พลังงานหมุนเวียนได้
ขั้นตอนที่ 2: Blynk
หากต้องการเป็นให้ดาวน์โหลดแอป Blynk และสร้างโครงการใหม่ จดบันทึกโทเค็นการพิสูจน์ตัวตน -- จะถูกใช้ในรหัส สร้างวิดเจ็ตการแสดงผลใหม่ในแอป Blynk และเลือกหมุดเสมือนที่เกี่ยวข้องซึ่งกำหนดไว้ในโค้ด ตั้งค่าช่วงเวลารีเฟรชที่จะพุช แต่ละวิดเจ็ตควรกำหนดพินเสมือนของตัวเอง
ขั้นตอนที่ 3: Arduino IDE
ดาวน์โหลด Arduino IDE ทำตามคำแนะนำในการดาวน์โหลดสำหรับไดรเวอร์ของ ESP32 และการสาธิตเพื่อให้แน่ใจว่ามีการเชื่อมต่อ wifi ดาวน์โหลดไลบรารี Blynk และ DHT ที่รวมอยู่ในโค้ด กรอกโทเค็นการตรวจสอบสิทธิ์ รหัสผ่าน wifi ชื่อผู้ใช้ wifi และอีเมลในรหัสสุดท้าย ใช้รหัสสาธิตสำหรับเซ็นเซอร์ความชื้นในดินเพื่อค้นหาค่าต่ำสุดและสูงสุดสำหรับประเภทของดิน บันทึกและแทนที่ค่าเหล่านี้ในโค้ดสุดท้าย แทนที่ค่าต่ำสุดสำหรับอุณหภูมิ ความชื้นในดิน และความชื้นของพืชในรหัสสุดท้าย อัปโหลดรหัส
ขั้นตอนที่ 4: สร้างมัน
ขั้นแรก ให้เชื่อมต่อเซ็นเซอร์ความชื้นในดินกับ 3.3V กราวด์ และพินอินพุต 34 โปรดทราบว่าสวิตช์นี้ถูกกำหนดเป็น A เนื่องจากจะใช้การตั้งค่าแอนะล็อกสำหรับเซ็นเซอร์นี้ ถัดไป เชื่อมต่อเซ็นเซอร์ DHT กับ 3.3V, กราวด์ และพินอินพุต 27 เซ็นเซอร์ DHT22 ต้องการตัวต้านทาน 10K Ohm ระหว่าง VCC และพินข้อมูลขาออก อย่าลืมตรวจสอบไดอะแกรม DHT เพื่อให้แน่ใจว่าได้ต่อสายอย่างถูกต้อง กำหนดค่า ESP32 ภายในตู้กันน้ำที่มีเซ็นเซอร์ความชื้นในดินและเซ็นเซอร์ DHT เหนือพื้นผิว เชื่อมต่อกับแหล่งพลังงานและเพลิดเพลินกับข้อมูลสภาพแวดล้อมของโรงงานของคุณ
ขั้นตอนที่ 5: รหัส
//รวมห้องสมุด
#define BLYNK_PRINT ซีเรียล
#รวม #รวม #รวม #รวม "DHT.h"
//ข้อมูลเซ็นเซอร์ DHT
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // พินดิจิตอลเชื่อมต่อกับเซ็นเซอร์ DHT DHT dht (DHTPIN, DHTTYPE); // เริ่มต้นเซ็นเซอร์ DHT
//กำหนดพินอินพุตและเอาต์พุต
int soil_sensor = 34; //กำหนดหมายเลขพินอินพุตแบบอะนาล็อกที่เชื่อมต่อกับเซ็นเซอร์ความชื้น
int output_value;//กำหนดเป็น output
int moisturelevel;//กำหนดเป็นเอาต์พุต
แจ้ง int = 0; //กำหนดการแจ้งเตือนเป็น0
int หน่วงเวลา = 60000L; //ตั้งเวลาให้รันรับข้อมูลทุกๆ นาที หรือ 60,000 miliseconds
//ตั้งค่าขั้นต่ำสำหรับพืช
int min_moisture = 20; int min_temperature =75; int min_humidity = 60;
// คุณควรได้รับ Auth Token ในแอป Blynk
char auth = "Auth_Token_Here";
// ข้อมูลรับรอง WiFi ของคุณ
ถ่าน ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";
ตัวจับเวลา BlynkTimer;
// ฟังก์ชันนี้จะส่งเวลาการทำงานของ Arduino ทุกวินาทีไปยัง Virtual Pin (5)
// ในแอพ ความถี่ในการอ่านของ Widget ควรตั้งไว้ที่ PUSH ซึ่งหมายความว่า // คุณกำหนดความถี่ในการส่งข้อมูลไปยัง Blynk App
โมฆะเซ็นเซอร์ () //ฟังก์ชั่นหลักในการอ่านเซ็นเซอร์และกดเพื่อ blynk
{ output_value = analogRead (soil_sensor); // อ่านสัญญาณแอนะล็อกจาก soil_sensor และกำหนดเป็น output_value // แผนที่ output_vlaue จาก min ค่าสูงสุดเป็น 100, 0 และจำกัดระหว่าง 0, 100 // ใช้โค้ดตัวอย่างและมอนิเตอร์แบบอนุกรมเพื่อค้นหาค่าต่ำสุดและ ค่าสูงสุดสำหรับเซ็นเซอร์แต่ละตัวและชนิดของดินสำหรับการสอบเทียบระดับความชื้นที่ดีขึ้น = ข้อจำกัด (map(output_value, 1000, 4095, 100, 0), 0, 100); ลอย h = dht.readHumidity(); // อ่านความชื้นลอย t = dht.readTemperature(); // อ่านอุณหภูมิเป็นเซลเซียส (ค่าเริ่มต้น) float f = dht.readTemperature(true); // อ่านอุณหภูมิเป็นฟาเรนไฮต์ (isFahrenheit = true) // คำนวณดัชนีความร้อนใน Fahrenheit (ค่าเริ่มต้น) float hif = dht.computeHeatIndex(f, h); // ตรวจสอบว่าการอ่านล้มเหลวและออกก่อนกำหนดหรือไม่ (เพื่อลองอีกครั้ง) ถ้า (isnan (h) || isnan (t) || isnan (f)) { Serial.println (F ("ไม่สามารถอ่านจากเซ็นเซอร์ DHT!")); กลับ; } // สิ่งนี้เชื่อมต่อ vales กับพินเสมือนที่กำหนดไว้ในวิดเจ็ตในแอป Blynk Blynk.virtualWrite (V5, moisturelevel); // ส่งระดับความชื้นไปยังพินเสมือน 5 Blynk.virtualWrite (V6, f);// ส่งอุณหภูมิไปยังเสมือน พิน 6 Blynk.virtualWrite(V7, h);// ส่งความชื้นไปยังพินเสมือน 7 Blynk.virtualWrite(V8, hif);// ส่งดัชนีความร้อนไปยังพินเสมือน 8
ถ้า (แจ้ง==0)
{ if (moisturelevel <= min_moisture) // ถ้าระดับความชื้นเท่ากับหรือต่ำกว่าค่าต่ำสุด { Blynk.email("Email_Here", "Plant Monitor", "Water Plant!"); // ส่งอีเมลไปที่โรงงานน้ำ } ล่าช้า (15000); // อีเมล Blynk ต้องห่างกัน 15 วินาที หน่วงเวลา 15,000 มิลลิวินาที if (f <= min_temperature) // หากอุณหภูมิเท่ากับหรือต่ำกว่าค่าต่ำสุด { Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // ส่งอีเมลแจ้งว่าอุณหภูมิต่ำ
}
ล่าช้า (15000); // อีเมล Blynk ต้องห่างกัน 15 วินาที หน่วงเวลา 15,000 มิลลิวินาที if (h <= min_humidity) // ถ้าความชื้นเท่ากับหรือต่ำกว่าค่าต่ำสุด { Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // ส่งอีเมลแจ้งว่าความชื้นต่ำ } แจ้งเตือน = 1; timer.setTimeout (การหน่วงเวลา *5, รีเซ็ตการแจ้งเตือน); // คูณการหน่วงเวลาด้วยจำนวนนาทีที่ต้องการระหว่างอีเมลเตือนซ้ำ } }
ถือเป็นโมฆะ resetNotified() // เรียกฟังก์ชันเพื่อรีเซ็ตความถี่ของอีเมล
{ แจ้ง = 0; }
การตั้งค่าเป็นโมฆะ ()
{ Serial.begin(9600); // ดีบักคอนโซล Blynk.begin(auth, ssid, pass); // เชื่อมต่อกับ blynk timer.setInterval (การหน่วงเวลา, เซ็นเซอร์); // ตั้งค่าฟังก์ชันที่จะเรียกทุกนาทีหรือตั้งค่าการหน่วงเวลาเป็น dht.begin(); // เรียกใช้เซ็นเซอร์ DHT }
//วนเป็นโมฆะควรมีเพียง blynk.run และ timer
วงเป็นโมฆะ () { Blynk.run (); // เรียกใช้ blynk timer.run(); // เริ่มต้น BlynkTimer }
แนะนำ:
Arduino Keyboard Joystick Extender Box และ Sound Controller Thing โดยใช้ Deej: 8 ขั้นตอน
Arduino Keyboard Joystick Extender Box และ Sound Controller Thing โดยใช้ Deej: ทำไมฉันจึงต้องการเพิ่มจอยสติ๊กขนาดเล็กลงในแป้นพิมพ์เพื่อควบคุมองค์ประกอบอินเทอร์เฟซหรืองานขนาดเล็กอื่นๆ ในเกมและเครื่องจำลอง (MS Flight Sim, Elite: Dangerous, Star Wars: ฝูงบิน ฯลฯ) สำหรับ Elite: Dangerous ฉันเคย
ติดตาม: ศูนย์สื่อขั้นสูงพร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): 3 ขั้นตอน
ติดตาม: Advanced Media Center พร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): บทความนี้เป็นบทความต่อจากบทความก่อนหน้าของฉันที่ประสบความสำเร็จค่อนข้างมากเกี่ยวกับการสร้างศูนย์สื่ออเนกประสงค์ โดยอ้างอิงจาก Raspberry PI ที่ได้รับความนิยมมากในตอนแรก แต่ ในภายหลัง เนื่องจากไม่มีเอาต์พุตที่สอดคล้องกับ HEVC, H.265 และ HDMI 2.2 จึงมีสวิตช์
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: 3 ขั้นตอน
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: Story A beacon จะส่งสัญญาณอย่างต่อเนื่องเพื่อให้อุปกรณ์บลูทู ธ อื่น ๆ รู้ว่ามีอยู่ และฉันอยากได้บีคอนบลูทูธเพื่อติดตามกุญแจมาตลอด เพราะฉันลืมเอามันมาเหมือน 10 ครั้งในปีที่แล้ว และฉันก็เกิดขึ้น
รดน้ำต้นไม้ในร่มด้วย NodeMCU, Local Blynk Server และ Blynk Apk, Set Point ที่ปรับได้: 3 ขั้นตอน
รดน้ำต้นไม้ในร่มด้วย NodeMCU, Local Blynk Server และ Blynk Apk, Set Point ที่ปรับได้: ฉันสร้างโปรเจ็กต์นี้เพราะต้นไม้ในร่มของฉันต้องแข็งแรงแม้ในขณะที่ฉันพักร้อนเป็นระยะเวลานาน และฉันชอบแนวคิดที่มี ควบคุมหรืออย่างน้อยก็เฝ้าติดตามเหตุการณ์ที่เป็นไปได้ทั้งหมดที่เกิดขึ้นในบ้านของฉันผ่านทางอินเทอร์เน็ต