จะสร้างระบบอัตโนมัติในบ้านอัจฉริยะโดยใช้โมดูล ESP32 ได้อย่างไร

ในยุคปัจจุบันนี้แนวคิดของระบบอัตโนมัติในบ้านกำลังเติบโตอย่างรวดเร็ว มีการติดตั้งระบบอัจฉริยะในเกือบทุกแห่ง ระบบบ้านอัจฉริยะเป็นแนวคิดที่ควบคุมเครื่องใช้ไฟฟ้าหรืออุปกรณ์ทั้งหมดโดยใช้รีโมทคอนโทรลเพียงชุดเดียว ในระบบเหล่านี้โดยส่วนใหญ่รีโมทคอนโทรลเป็นแอปพลิเคชันบนมือถือ เนื่องจากแอนดรอยด์มือถือเป็นสิ่งที่คนทั่วไปใช้บ่อยที่สุดดังนั้นแอปพลิเคชัน Android จึงเป็นตัวเลือกที่ดีที่สุดในการควบคุมอุปกรณ์เหล่านี้



ระบบอัตโนมัติในบ้าน

ดังนั้นในโครงการนี้เราจะเชื่อมต่อเครื่องใช้ไฟฟ้าในบ้านกับโมดูลรีเลย์และควบคุมผ่านไมโครคอนโทรลเลอร์ ESP32 เราจะสร้างฐานข้อมูลเรียลไทม์ของ firebase และเชื่อมต่อจากแอพ android แอป Android นี้จะส่งข้อมูลไปยังระบบคลาวด์จากนั้นจะส่งไปยังไมโครคอนโทรลเลอร์เพื่อเปิดหรือปิดเครื่องใช้ไฟฟ้า ส่วนที่ดีที่สุดคือคุณสามารถควบคุมการเปลี่ยนเครื่องใช้ไฟฟ้าของคุณได้อย่างเต็มที่จากทุกที่ในโลก คุณต้องเชื่อมต่ออินเทอร์เน็ตเพื่อใช้งานแอปพลิเคชัน Android



วิธีควบคุมเครื่องใช้ในบ้านผ่าน WiFi

ระบบ Home Automation ที่มีอยู่แล้วในตลาดมีค่าใช้จ่ายสูงมาก เราสามารถใช้บอร์ด ESP32 เพื่อเชื่อมต่อเครื่องใช้ในบ้านต่างๆและควบคุมโดยใช้แอพ Android ซึ่งจะมีต้นทุนต่ำมากและเป็นวิธีที่มีประสิทธิภาพในการทำให้บ้านเป็นอัตโนมัติ ตอนนี้ให้เราก้าวไปข้างหน้าและเริ่มรวบรวมข้อมูลเพื่อเริ่มโครงการ



ขั้นตอนที่ 1: รวบรวมส่วนประกอบ

แนวทางที่ดีที่สุดในการเริ่มต้นโครงการคือการจัดทำรายการส่วนประกอบและทำการศึกษาส่วนประกอบเหล่านี้โดยสังเขปเนื่องจากไม่มีใครต้องการยึดติดอยู่ตรงกลางของโครงการเพียงเพราะส่วนประกอบที่ขาดหายไป รายการส่วนประกอบที่เราจะใช้ในโครงการนี้มีดังต่อไปนี้:



  • ESP32
  • เขียงหั่นขนม
  • การเชื่อมต่อสายไฟ

ขั้นตอนที่ 2: ศึกษาส่วนประกอบ

เมื่อเราทราบบทคัดย่อของโครงการนี้แล้วให้เราก้าวไปข้างหน้าหนึ่งก้าวและศึกษาสั้น ๆ เกี่ยวกับการทำงานของส่วนประกอบหลักที่เราจะใช้

ESP32 เป็นบอร์ดไมโครคอนโทรลเลอร์ที่ใช้พลังงานต่ำและราคาประหยัดซึ่งมี WiFi ในตัวและโมดูลบลูทู ธ แบบดูอัลโหมด บอร์ดไมโครคอนโทรลเลอร์นี้สร้างและพัฒนาโดย ระบบ Espressif . บอร์ดนี้มีเพาเวอร์แอมป์ในตัวแอมพลิฟายเออร์รับสัญญาณต่ำตัวกรองและสวิตช์เสาอากาศ ใช้พลังงานจากสายเคเบิลข้อมูล Android และสามารถให้ได้ถึง 3.3V ที่เอาต์พุต ESP32 รัน TCP / IP, 802.11 b / g / n / e / I แบบเต็มรูปแบบ WLAN MAC และ Wi-Fi Direct โดยเฉพาะ นี่หมายความว่า ESP 32 สามารถจัดการกับเราเตอร์ WiFi ส่วนใหญ่ได้เมื่อใช้ในโหมดสถานี (ไคลเอนต์) ในทำนองเดียวกันสามารถสร้างจุดเชื่อมต่อที่มี 802.11 b / g / n / e / I เต็มรูปแบบ ESP32 ไม่ได้เป็นเพียงแค่รองรับ BLE Bluetooth 4.2 ล่าสุดเท่านั้น แต่ยังเสริมบลูทู ธ ที่ยอดเยี่ยมอีกด้วย โดยพื้นฐานแล้วมันสามารถระบุโทรศัพท์ / ตารางบลูทู ธ เก่าและใหม่ได้ หากคุณไม่มีโมดูล ESP32 คุณยังสามารถใช้ ESP8266 หรือ Node MCU ได้ บอร์ดเหล่านี้สามารถใช้เพื่อทำงานเดียวกันได้หากเชื่อมต่อกับ WiFi

ESP32



โมดูลรีเลย์เป็นอุปกรณ์สวิตชิ่ง ทำงานในสองโหมด ปกติเปิด (ไม่) และ โดยปกติ ปิด (NC) . ในโหมด NO วงจรจะเสียเสมอเว้นแต่คุณจะส่งสัญญาณสูงไปยังรีเลย์ผ่าน Arduino โหมด NC แย่ลงในทางกลับกันวงจรจะสมบูรณ์เสมอเว้นแต่คุณจะเปิดโมดูลรีเลย์ ตรวจสอบให้แน่ใจว่าคุณได้เชื่อมต่อสายบวกของเครื่องใช้ไฟฟ้าเข้ากับโมดูลรีเลย์ตามวิธีที่แสดงด้านล่าง

การประกอบวงจรโมดูลรีเลย์

ขั้นตอนที่ 3: บล็อกไดอะแกรม

แผนภาพบล็อก

ในแผนภาพบล็อกด้านบนจะแสดงขั้นตอนของโครงการนี้ รีเลย์เชื่อมต่อกับเครื่องใช้ไฟฟ้าหรืออุปกรณ์ภายในบ้าน แอปพลิเคชันมือถือจะส่งไฟล์ บน หรือ ปิด คำสั่งไปยังฐานข้อมูล ระบบคลาวด์นี้เชื่อมต่อกับบอร์ดไมโครคอนโทรลเลอร์ ESP32 ผ่าน WiFi ในการเปิดอุปกรณ์อิเล็กทรอนิกส์เราจะส่ง“ 1” ในฐานข้อมูลและหากต้องการปิดเราจะส่ง“ 0” ในฐานข้อมูล คำสั่งนี้จะถูกดึงโดยไมโครคอนโทรลเลอร์เนื่องจากมีการเชื่อมต่อกับฐานข้อมูลด้วย ตาม 0 หรือ 1 นี้ไมโครคอนโทรลเลอร์จะเปิดหรือปิดโมดูลรีเลย์ซึ่งจะส่งผลให้เครื่องใช้ไฟฟ้าเปลี่ยนไปในที่สุด

ดังนั้นในบทความนี้ฉันจะใช้โมดูลรีเลย์สองโมดูลเพื่อแสดงขั้นตอนทั้งหมด แต่คุณสามารถเพิ่มจำนวนรีเลย์และเพิ่มโค้ดกลุ่มเดียวกันในโปรแกรมของคุณได้หากคุณต้องการควบคุมเครื่องใช้ไฟฟ้าในบ้านจำนวนมากขึ้น

ขั้นตอนที่ 4: การประกอบส่วนประกอบ

ตอนนี้เมื่อเรามีวิสัยทัศน์ที่ชัดเจนว่าเราต้องการทำอะไรในโครงการนี้อย่าให้เสียเวลาอีกต่อไปและเริ่มประกอบชิ้นส่วนต่างๆ

  1. ใช้เขียงหั่นขนมและติดตั้งไมโครคอนโทรลเลอร์ ESP32 ไว้ในนั้น ตอนนี้ใช้โมดูลรีเลย์สองตัวแล้วเชื่อมต่อ Vcc และกราวด์ของโมดูลเข้ากับ Vin และกราวด์ของบอร์ดไมโครคอนโทรลเลอร์ ESP32 แบบขนาน เชื่อมต่อ ในพิน ของโมดูลรีเลย์ไปยังพิน 34 และพิน 35 ของบอร์ด ESP32 คุณจะเห็นว่าตอนนี้รีเลย์เปิดอยู่
  2. เชื่อมต่อเครื่องใช้ภายในบ้านกับโมดูลรีเลย์ ตรวจสอบให้แน่ใจว่าการเชื่อมต่อของคุณตรงกับการเชื่อมต่อที่แสดงในรูปในขั้นตอนที่ 2

ตอนนี้เมื่อเราเชื่อมต่อส่วนฮาร์ดแวร์ของระบบของเรา เราจะพัฒนาแอปพลิเคชัน Android ที่จะเชื่อมต่อกับฐานข้อมูล firebase เราจะสร้างฐานข้อมูลและแอปพลิเคชัน Android ในส่วนที่ 2 ของบทความนี้

ขั้นตอนที่ 5: เริ่มต้นใช้งาน ESP32

หากคุณไม่เคยทำงานกับ Arduino IDE มาก่อนไม่ต้องกังวลเพราะขั้นตอนในการตั้งค่า Arduino IDE แสดงอยู่ด้านล่าง

  1. ดาวน์โหลด Arduino IDE เวอร์ชันล่าสุดจาก Arduino
  2. เชื่อมต่อบอร์ด Arduino ของคุณเข้ากับพีซีและเปิดแผงควบคุม คลิกที่ ฮาร์ดแวร์และเสียง. เปิดให้บริการแล้ว อุปกรณ์และเครื่องพิมพ์ และค้นหาพอร์ตที่บอร์ดของคุณเชื่อมต่ออยู่ ในกรณีของฉันมันคือ COM14 แต่คอมพิวเตอร์คนละเครื่องกัน

    กำลังค้นหาพอร์ต

  3. คลิกที่ไฟล์จากนั้นคลิกที่การตั้งค่า คัดลอกลิงค์ต่อไปนี้ในไฟล์ URL ของ Board Manager เพิ่มเติม “ https://dl.espressif.com/dl/package_esp32_index.json '

    ค่ากำหนด

  4. ตอนนี้ในการใช้ ESP32 กับ Arduino IDE เราจำเป็นต้องนำเข้าไลบรารีพิเศษที่จะช่วยให้เราสามารถเบิร์นโค้ดบน ESP32 และใช้งานได้ ไลบรารีทั้งสองนี้แนบอยู่ในลิงค์ด้านล่าง หากต้องการรวมไลบรารี goto ร่าง> รวมไลบรารี> เพิ่มไลบรารี ZIP . กล่องจะปรากฏขึ้น ค้นหาโฟลเดอร์ ZIP ในคอมพิวเตอร์ของคุณและคลิกตกลงเพื่อรวมโฟลเดอร์

    รวมห้องสมุด

  5. ตอนนี้ goto ร่าง> รวมไลบรารี> จัดการไลบรารี

    จัดการไลบรารี

  6. เมนูจะเปิดขึ้น ในแถบค้นหาพิมพ์ Arduino JSON รายการจะปรากฏขึ้น ติดตั้ง Arduino JSON โดย Benoit Blanchon

    Arduino JSON

  7. ตอนนี้คลิกที่ไฟล์ เครื่องมือ เมนูแบบเลื่อนลงจะปรากฏขึ้น ตั้งบอร์ดเป็น โมดูล ESP Dev

    คณะกรรมการการตั้งค่า

  8. คลิกที่เมนูเครื่องมืออีกครั้งและตั้งค่าพอร์ตที่คุณสังเกตเห็นในแผงควบคุมก่อนหน้านี้

    การตั้งค่าพอร์ต

  9. ตอนนี้อัปโหลดรหัสที่แนบมาในลิงค์ด้านล่างและคลิกที่ปุ่มอัปโหลดเพื่อเบิร์นโค้ดบนไมโครคอนโทรลเลอร์ 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 StaticJsonBuffer jsonBuffer; ^ ในไฟล์ที่มาจาก 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. ในการเริ่มต้นจะมีการรวมไลบรารีเพื่อให้บอร์ด ESP32 สามารถเชื่อมต่อกับการเชื่อมต่อ WiFi ภายในบ้านหรือที่ทำงาน หลังจากนี้จะมีการกำหนดลิงก์ไปยังโปรเจ็กต์ firebase และการตรวจสอบสิทธิ์ของโปรเจ็กต์ firebase จากนั้นชื่อและรหัสผ่านของการเชื่อมต่อ wifi ในพื้นที่ของคุณจะถูกกำหนดเพื่อให้สามารถเชื่อมต่อ ESP32 กับ Wifi ได้ หมุดบางตัวของ ESP32 ถูกกำหนดให้เชื่อมต่อกับโมดูลรีเลย์ และในที่สุดก็มีการประกาศตัวแปรที่จะเก็บข้อมูลชั่วคราวบางส่วนที่จะมาจาก firebase cloud

#include // รวมไลบรารีเพื่อเชื่อมต่อกับการเชื่อมต่อ Wifi ในพื้นที่ #include // รวมไลบรารีเพื่อเชื่อมต่อกับฐานข้อมูล Firebase #define FIREBASE_HOST 'coma-patient.firebaseio.com' // รวมลิงก์ของโครงการ firebase ของคุณ #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuwl '// รวมการตรวจสอบสิทธิ์โครงการ firebase ของคุณ #define WIFI_SSID' abcd '// ชื่อการเชื่อมต่อ WiFi ของบ้านหรือที่ทำงานของคุณ # กำหนด WIFI_PASSWORD' abcd '// รหัสผ่านของการเชื่อมต่อ WiFi ของบ้านหรือที่ทำงานของคุณ int r1 = 34; // พินเพื่อเชื่อมต่อรีเลย์ 1 int r2 = 35; // พินเพื่อเชื่อมต่อรีเลย์ 2 อุณหภูมิ int; // ตัวแปรที่จะนำข้อมูล

2. การตั้งค่าเป็นโมฆะ () เป็นฟังก์ชั่นที่เราเตรียมใช้งานพิน INPUT หรือ OUTPUT ฟังก์ชันนี้ยังกำหนดอัตราการส่งข้อมูลโดยใช้ Serial.begin () คำสั่ง Baud Rate คือความเร็วในการสื่อสารของไมโครคอนโทรลเลอร์ มีการเพิ่มโค้ดบางบรรทัดที่นี่เพื่อเชื่อมต่อ ESP32 กับการเชื่อมต่อ wifi ในพื้นที่ บอร์ดจะพยายามเชื่อมต่อกับการเชื่อมต่อ wifi ท้องถิ่นและจะพิมพ์คำว่า 'connection' ในจอภาพแบบอนุกรม มันจะพิมพ์คำว่า“ Connected” เมื่อสร้างการเชื่อมต่อแล้ว ดังนั้นในการตรวจสอบสิ่งนี้จึงเป็นการดีกว่าที่จะเปิดจอภาพแบบอนุกรมและตรวจสอบจุดหยุดที่นั่น

การตั้งค่าเป็นโมฆะ () {Serial.begin (115200); // การตั้งค่าอัตราการส่งข้อมูล // เชื่อมต่อกับ 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. ห่วงเป็นโมฆะ () เป็นฟังก์ชันที่ทำงานซ้ำ ๆ ในวง ในลูปนี้เราจะเขียนโค้ดเพื่อบอกบอร์ดไมโครคอนโทรลเลอร์ว่าต้องทำอะไรและทำอย่างไร เราได้ดึงข้อมูลจาก เบา และ AC จากฐานข้อมูลและเก็บไว้ในตัวแปรชั่วคราวสองตัว จากนั้นจะใช้เงื่อนไขสี่ประการเพื่อสลับอุปกรณ์ทั้งสองตาม 0 หรือ 1 ที่ดึงมาจากฐานข้อมูล

void loop () {// รับค่า temp1 = Serial.println (Firebase.getFloat ('light')); // รับค่าสำหรับการสลับของ light temp2 = Serial.println (Firebase.getFloat ('AC')); // รับ vaue สำหรับการเปลี่ยน Fan delay (1000); ถ้า (temp1 == 1 && temp2 == 1) {// เปิดไฟและพัดลม digitalWrite (r1, HIGH); digitalWrite (r2, สูง); } if (temp1 == 0 && temp2 == 1) {// ในการเปิดพัดลมและปิดไฟ digitalWrite (r1, LOW); digitalWrite (r2, สูง); } if (temp1 == 1 && temp2 == 0) {// ในการปิดพัดลมและเปิดไฟ digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// ปิดพัดลมและปิดไฟ digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

นี่เป็นส่วนหนึ่งของไฟล์ “ วิธีสร้างระบบบ้านอัจฉริยะโดยใช้ ESP32” คุณสามารถเพิ่มโมดูลรีเลย์เพิ่มเติมได้หากต้องการควบคุมเครื่องใช้ไฟฟ้าภายในบ้านเพิ่มเติมสิ่งเดียวที่คุณต้องทำคืออ่านข้อมูลจาก firebase และเพิ่มเงื่อนไขเพิ่มเติมสำหรับการเปลี่ยน ในบทความถัดไปฉันจะอธิบายวิธีการพัฒนาแอปพลิเคชัน Android และฐานข้อมูล Firebase ฉันจะอธิบายขั้นตอนทีละขั้นตอนเพื่อเชื่อมต่อแอพ Android กับ firebase และส่งข้อมูลไป

เพื่อไปที่บทช่วยสอนถัดไป คลิกที่นี่