การควบคุมเตาของคุณจากสมาร์ทโฟนโดยใช้ WiFi
ในโลกสมัยใหม่หากเรามองไปรอบ ๆ เราจะเห็นว่าทุกสิ่งที่รวมถึงอุปกรณ์อิเล็กทรอนิกส์นั้นเป็นไปโดยอัตโนมัติในระดับหนึ่ง ระบบอัตโนมัติในบ้านหรือบ้านอัจฉริยะเป็นเรื่องปกติมากในปัจจุบัน โดยการใช้ระบบเหล่านี้เครื่องใช้ในบ้านต่างๆสามารถทำงานโดยอัตโนมัติโดยใช้แอปพลิเคชันมือถือ แต่ระบบเหล่านี้ส่วนใหญ่ไม่รวมถึงสิ่งที่ทำให้เตาแก๊สของคุณเป็นแบบอัตโนมัติ ในบทความนี้เราจะพัฒนาระบบที่จะช่วยให้คุณควบคุมเตาแก๊สของคุณโดยใช้แอปพลิเคชันบนมือถือ แอปพลิเคชั่นนี้จะใช้เพื่อเปิดหรือปิดวาล์วแก๊สจากวาล์วหลักและจุดหัวเทียนเพื่อก่อไฟ
วิธีทำเตาแก๊สอัตโนมัติผ่านมือถือของคุณ
เมื่อเราทราบบทคัดย่อของโครงการแล้วให้เราก้าวไปข้างหน้าและรวบรวมข้อมูลต่างๆเพื่อเริ่มทำงาน ก่อนอื่นเราจะจัดทำรายการส่วนประกอบจากนั้นรวบรวมส่วนประกอบทั้งหมดเข้าด้วยกันเพื่อสร้างระบบการทำงาน
ขั้นตอนที่ 1: การรวบรวมส่วนประกอบ
ก่อนที่จะเริ่มโปรเจ็กต์ใด ๆ หากเราต้องการหลีกเลี่ยงความกลัวที่จะติดค้างกลางโปรเจ็กต์เราควรมีรายการส่วนประกอบทั้งหมดที่เราต้องการในขณะที่ทำงานในโปรเจ็กต์นั้น นี่เป็นแนวทางที่ยอดเยี่ยมที่ช่วยประหยัดเวลาและความพยายามได้มาก รายการส่วนประกอบทั้งหมดที่ใช้ในโครงการนี้มีให้ด้านล่าง ส่วนประกอบทั้งหมดนี้หาซื้อได้ง่ายในตลาด
ขั้นตอนที่ 2: การพัฒนาแอปพลิเคชัน Android
ในขณะที่เราจะควบคุมเตานี้โดยใช้แอปพลิเคชัน Android เราต้องพัฒนาก่อน ก่อนหน้านี้เราได้พัฒนาหลาย ๆ แอปพลิเคชัน Android ก่อนหน้านี้เราได้ทำไฟล์ใบสมัคร ที่ประกอบด้วยเพียงปุ่มเดียวในนั้น ปุ่มนี้ใช้ในการส่งข้อมูลเข้าสู่ฐานข้อมูล ถ้า ‘1’ ถูกแทรกลงในฐานข้อมูลรีเลย์จะเปิดขึ้นและถ้า ‘0’ ถูกแทรกลงในฐานข้อมูลรีเลย์จะปิด
เราจะทำการแก้ไขเล็กน้อยในแอปพลิเคชันนี้ โดยทำตามขั้นตอนเดียวกับที่ทำตามเพื่อสร้างปุ่มแรกและเชื่อมต่อกับ firebase เราจะสร้างปุ่มอื่นที่จะเชื่อมต่อกับ firebase
ปุ่มเดียวจะใช้เพื่อเปิดและปิดวาล์วแก๊สและปุ่มที่สองจะถูกใช้เพื่อสร้างประกายไฟที่จะรับผิดชอบต่อ จุดระเบิด.
ขั้นตอนที่ 3: การสร้างวงจร
ดังที่เราทราบประเด็นหลักของโครงการนี้แล้วให้เรารวบรวมส่วนประกอบทั้งหมดเข้าด้วยกันเพื่อสร้างวงจรสุดท้าย
ใช้เขียงหั่นขนมและใส่ไฟล์ บอร์ด ESP32 ในนั้น. นำทั้งทรานซิสเตอร์และตัวต้านทานแล้วใส่เข้าไปในเขียงหั่นขนมในลักษณะที่สามารถใช้ทรานซิสเตอร์เป็นสวิตช์ได้ ทำตามการกำหนดค่าด้านล่างเพื่อไม่ให้เกิดข้อผิดพลาดขณะทำการเปลี่ยน
ในรูปด้านบนให้เชื่อมต่อไฟล์ Vin พอร์ตไปยังหมุดของไฟล์ ESP32เชื่อมต่อพอร์ต Vcc กับแหล่งจ่ายไฟ 5V ภายนอกและเชื่อมต่อ Vo เข้ากับโมดูลรีเลย์ เหตุผลหลักที่เราใช้ทรานซิสเตอร์เป็นสวิตช์คือรีเลย์ต้องการ 5V ในการทำงาน แต่ ESP32 ให้ 3.3V เท่านั้น ดังนั้นเราจึงต้องจัดเตรียม 5V ภายนอกให้กับรีเลย์
ตอนนี้เราจะเชื่อมต่อโมดูลรีเลย์กับทรานซิสเตอร์ ตรวจสอบให้แน่ใจว่าทรานซิสเตอร์ตัวแรกเชื่อมต่อกับพิน 34 ของโมดูล ESP และทรานซิสเตอร์ตัวที่สองเชื่อมต่อกับพิน 35 ของโมดูล ESP เราจะใช้ทั้งโมดูลรีเลย์ในโหมดเปิดตามปกติ เชื่อมต่อวาล์วแก๊สและหัวเทียนเข้ากับขั้วเอาต์พุตของโมดูลรีเลย์ตัวแรกและตัวที่สองตามลำดับ ตรวจสอบให้แน่ใจว่าคุณได้เชื่อมต่อตูดโมดูลรีเลย์ที่แสดงในภาพด้านล่าง
ขั้นตอนที่ 4: ทำงาน
หัวใจสำคัญของโครงการนี้คือ ESP32 ที่เป็นบอร์ดไมโครคอนโทรลเลอร์ วาล์วแก๊สและหัวเทียนเชื่อมต่อกับ ESP ผ่านโมดูลรีเลย์ วาล์วแก๊สจะปิดในตอนแรก เมื่อเปิดจากแอปพลิเคชันมือถือวาล์วแก๊สจะเปิด เช่นเดียวกันในกรณีของหัวเทียน สามารถเปิดหรือปิดผ่านแอพมือถือ หัวเทียนนี้จะต่อเข้ากับเตาที่ปล่อยแก๊ส หัวเทียนนี้จะจุดไฟ
ขั้นตอนที่ 5: เริ่มต้นใช้งาน ESP32
หากคุณไม่เคยทำงานกับ Arduino IDE มาก่อนไม่ต้องกังวลเพราะขั้นตอนในการตั้งค่า Arduino IDE แสดงอยู่ด้านล่าง
- ดาวน์โหลด Arduino IDE เวอร์ชันล่าสุดจาก Arduino
- เชื่อมต่อบอร์ด Arduino ของคุณกับพีซีและเปิดแผงควบคุม คลิกที่ ฮาร์ดแวร์และเสียง.เปิดให้บริการแล้ว อุปกรณ์และเครื่องพิมพ์ และค้นหาพอร์ตที่บอร์ดของคุณเชื่อมต่ออยู่ ในกรณีของฉันมันคือ COM14แต่จะแตกต่างกันในคอมพิวเตอร์เครื่องอื่น
- คลิกที่ไฟล์จากนั้นคลิกที่การตั้งค่า คัดลอกลิงค์ต่อไปนี้ในไฟล์ URL ของ Board Manager เพิ่มเติม “https://dl.espressif.com/dl/package_esp32_index.json”
- ตอนนี้ในการใช้ ESP32 กับ Arduino IDE เราจำเป็นต้องนำเข้าไลบรารีพิเศษที่จะช่วยให้เราสามารถเบิร์นโค้ดบน ESP32 และใช้งานได้ ไลบรารีทั้งสองนี้แนบอยู่ในลิงค์ด้านล่าง หากต้องการรวมไลบรารี goto ร่าง> รวมไลบรารี> เพิ่มไลบรารี ZIP. กล่องจะปรากฏขึ้น ค้นหาโฟลเดอร์ ZIP ในคอมพิวเตอร์ของคุณและคลิกตกลงเพื่อรวมโฟลเดอร์
- ตอนนี้ goto ร่าง> รวมไลบรารี> จัดการไลบรารี
- เมนูจะเปิดขึ้น ในแถบค้นหาพิมพ์ Arduino JSONรายการจะปรากฏขึ้น ติดตั้ง Arduino JSON โดย Benoit Blanchon
- ตอนนี้คลิกที่ไฟล์ เครื่องมือเมนูแบบเลื่อนลงจะปรากฏขึ้น ตั้งค่าบอร์ดเป็น โมดูล ESP Dev
- คลิกที่เมนูเครื่องมืออีกครั้งและตั้งค่าพอร์ตที่คุณสังเกตเห็นในแผงควบคุมก่อนหน้านี้
- ตอนนี้อัปโหลดรหัสที่แนบมาในลิงค์ด้านล่างและคลิกที่ปุ่มอัปโหลดเพื่อเบิร์นโค้ดบนไมโครคอนโทรลเลอร์ ESP32
ตอนนี้เมื่อคุณจะอัปโหลดโค้ดอาจเกิดข้อผิดพลาดขึ้น นี่เป็นข้อผิดพลาดทั่วไปที่อาจเกิดขึ้นหากคุณใช้ Arduino IDE และ Arduino JSON เวอร์ชันใหม่ ต่อไปนี้เป็นข้อผิดพลาดที่คุณอาจเห็นบนหน้าจอ
ในไฟล์รวมจาก C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 จาก C: \ Users \ Pro \ Desktop \ smartHome \ code \ code.ino: 2: C : \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer เป็นคลาสจาก ArduinoJson 5 โปรดดู arduinojson.org/upgrade เพื่อเรียนรู้วิธีอัปเกรดโปรแกรมของคุณเป็น ArduinoJson รุ่น 6 StaticJsonBufferjsonBuffer; ^ ในไฟล์ที่มาจาก C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, จาก C: \ Users \ Pro \ Desktop \ smartHome \ code \ code.ino: 2: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer เป็นคลาสจาก ArduinoJson 5 โปรดดู arduinojson.org/upgrade เพื่อเรียนรู้วิธีอัปเกรดโปรแกรมของคุณเป็น ArduinoJson เวอร์ชัน 6 ส่งคืน StaticJsonBuffer () .parseObject (_data); ^ พบหลายไลบรารีสำหรับ "WiFi.h" ที่ใช้: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ package \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFi ไม่ได้ใช้: C: \ Program Files ( x86) \ Arduino \ libraries \ WiFi โดยใช้ไลบรารี WiFi ที่เวอร์ชัน 1.0 ในโฟลเดอร์: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ package \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFi โดยใช้ไลบรารี IOXhop_FirebaseESP32-master ในโฟลเดอร์: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master (ดั้งเดิม) โดยใช้ไลบรารี HTTPClient ที่เวอร์ชัน 1.2 ในโฟลเดอร์: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ package \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ HTTPClient การใช้ไลบรารี WiFiClientSecure ที่เวอร์ชัน 1.0 ในโฟลเดอร์: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ package \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFiClientSecure โดยใช้ไลบรารี ArduinoJson ที่ เวอร์ชัน 6.12.0 ในโฟลเดอร์: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ ArduinoJson สถานะการออก 1 ข้อผิดพลาดในการคอมไพล์สำหรับบอร์ด ESP32 Dev Module
ไม่มีอะไรต้องกังวลเพราะเราสามารถกำจัดข้อผิดพลาดเหล่านี้ได้โดยทำตามขั้นตอนง่ายๆ ข้อผิดพลาดเหล่านี้เกิดขึ้นเนื่องจาก Arduino JSON เวอร์ชันใหม่มีคลาสอื่นแทน StaticJsonBuffer.นี่คือคลาสของ JSON 5 ดังนั้นเราจึงสามารถกำจัดข้อผิดพลาดนี้ได้โดยการดาวน์เกรด Arduino JSON เวอร์ชัน Arduino IDE ของเรา เพียงไปที่ ร่าง> รวมไลบรารี> จัดการไลบรารีค้นหาArduino JSON โดย Benoit Blanchonที่คุณเคยติดตั้งมาก่อน ถอนการติดตั้งก่อนจากนั้นตั้งค่าเวอร์ชันเป็น 5.13.5. ตอนนี้เมื่อเราได้ตั้งค่า Arduino JSON เวอร์ชันเก่าแล้วให้ติดตั้งอีกครั้งและคอมไพล์โค้ดใหม่ คราวนี้โค้ดของคุณจะคอมไพล์สำเร็จ
ดาวน์โหลดรหัสคลิกที่นี่
ขั้นตอนที่ 6: รหัส
โค้ดที่แนบมานั้นค่อนข้างแสดงความคิดเห็นได้ดี แต่ก็ยังมีการอธิบายบางส่วนไว้ด้านล่าง
1. ในตอนเริ่มต้นมีการรวมไลบรารีสองไลบรารีเพื่อให้เปิดใช้งาน WiFi และบอร์ด ESP สามารถเชื่อมต่อกับฐานข้อมูล firebase ได้ จากนั้นโฮสต์ firebase การรับรองความถูกต้องชื่อของการเชื่อมต่อ wifi ในพื้นที่ของคุณและรหัสผ่านของการเชื่อมต่อ wifi เดียวกันจะรวมอยู่ด้วย กำหนดพินบนบอร์ด ESP ที่จะใช้เชื่อมต่อกับอุปกรณ์ภายนอก
# รวม// รวมไลบรารีเพื่อใช้ WiFi #include // รวมไลบรารีเพื่อเชื่อมต่อกับ Firebase #define FIREBASE_HOST "xxxxxxxxxx" // แทนที่ xxxxxxxxxx โดยโฮสต์ firebase ของคุณที่นี่ #define FIREBASE_AUTH "xxxxxxxxxx" // แทนที่ xxxxxxxxxx โดยการตรวจสอบสิทธิ์ firebase ที่นี่ #define WIFI_SSID "xxxxxxxxxx" // แทนที่ xxxxxxxxxx โดย ชื่อการเชื่อมต่อ Wifi ของเรา #define WIFI_PASSWORD "xxxxxxxxxx" // แทนที่ xxxxxxxxxx ด้วยรหัสผ่าน wifi ของคุณ #define วาล์ว 34 // เชื่อมต่อวาล์วแก๊สกับพินนี้ #define spark 35 // เชื่อมต่อหัวเทียนกับขานี้
2. การตั้งค่าเป็นโมฆะ () เป็นฟังก์ชันที่ทำงานเพียงครั้งเดียวเมื่อเปิดไมโครคอนโทรลเลอร์หรือกดปุ่มเปิดใช้งาน ในฟังก์ชั่นนี้มีการกำหนดอัตราการส่งข้อมูลซึ่งโดยพื้นฐานแล้วความเร็วในการสื่อสารเป็นบิตต่อวินาที หลังจากนั้นบอร์ด ESP จะเชื่อมต่อกับ Wifi
การตั้งค่าเป็นโมฆะ () {Serial.begin (115200); // กำหนด pinMode อัตราการส่งข้อมูล (วาล์ว, เอาท์พุท); // กำหนดพิน 34 เพื่อใช้เป็น OUTPUT pinMode (spark, OUTPUT); // กำหนดพิน 35 เพื่อใช้เป็น OUTPUT // เชื่อมต่อกับ wifi WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ("การเชื่อมต่อ"); ในขณะที่ (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); ล่าช้า (500); } Serial.println (); Serial.print ("เชื่อมต่อ:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }
3. ห่วงเป็นโมฆะ () คือฟังก์ชันที่ทำงานซ้ำ ๆ ในวง ในลูปนี้ค่าจะถูกอ่านจาก firebase และได้รับการตรวจสอบว่าเป็นศูนย์หรือเป็นค่าเดียว หากค่าเป็นค่าเดียวสัญญาณ HIGH จะถูกส่งไปยังพินซึ่งจะส่งผลให้เปิดโมดูลรีเลย์ หากค่าเป็นศูนย์สัญญาณ LOw จะถูกส่งไปที่ขาของ ESP ซึ่งจะส่งผลให้รีเลย์ปิด
void loop () {// รับค่า temp1 = Serial.println (Firebase.getFloat ("light")); // รับค่าสำหรับการสลับวาล์วแก๊ส temp2 = Serial.println (Firebase.getFloat ("AC")); // รับค่าว่างสำหรับการเปลี่ยนหัวเทียน if (temp1 == 1) {digitalWrite (วาล์ว, สูง) // เปิดรีเลย์หนึ่ง} else if (temp1 == 0) {digitalWrite (วาล์ว, LOW) // เลี้ยว ปิดรีเลย์ one} else if (temp2 == 1) {digitalWrite (spark, HIGH) // เปิดรีเลย์สอง} else if (temp2 == 0) {digitalWrite (spark, LOW) // ปิดรีเลย์สอง} // จัดการข้อผิดพลาดหาก (Firebase.failed ()) {Serial.print ("setting / number failed:"); Serial.println (Firebase.error ()); กลับ; } ล่าช้า (1,000); }
นั่นคือทั้งหมดสำหรับวันนี้ ตอนนี้คุณสามารถทำเตาอัจฉริยะของเราเองที่บ้านได้แล้ว ตรวจสอบเว็บไซต์ของเราเพื่อดูบทความที่น่าสนใจเพิ่มเติมเช่นนี้ในอนาคต