Làm thế nào để tạo hệ thống tự động hóa nhà thông minh bằng mô-đun ESP32?

Trong kỷ nguyên hiện đại này, khái niệm tự động hóa gia đình đang phát triển với tốc độ chóng mặt. Hệ thống thông minh đang được cài đặt ở hầu hết mọi nơi. Hệ thống nhà thông minh là một khái niệm trong đó tất cả các thiết bị điện hoặc thiết bị được điều khiển bằng một điều khiển từ xa duy nhất. Trong các hệ thống này, hầu hết thời gian, điều khiển từ xa là một ứng dụng di động. Vì điện thoại di động Android là phổ biến nhất trong số mọi người, vì vậy một ứng dụng Android là lựa chọn tốt nhất để kiểm soát tất cả các thiết bị này.



Tự động hóa gia đình

Vì vậy, trong dự án này, chúng tôi sẽ kết nối một số thiết bị điện trong nhà với mô-đun Rơ le và điều khiển nó thông qua Bộ vi điều khiển ESP32. Chúng tôi sẽ tạo cơ sở dữ liệu thời gian thực của firebase và kết nối nó từ ứng dụng android. Ứng dụng android này sẽ gửi dữ liệu lên đám mây và sau đó nó sẽ được gửi đến bộ vi điều khiển để bật hoặc tắt thiết bị điện. Phần tốt nhất là bạn có thể có toàn quyền kiểm soát việc chuyển đổi các thiết bị của mình từ bất kỳ đâu trên thế giới. Bạn chỉ cần có kết nối internet để vận hành ứng dụng Android.



Làm thế nào để kiểm soát thiết bị gia dụng thông qua WiFi?

Hệ thống tự động hóa gia đình đã có sẵn trên thị trường, rất tốn kém. Chúng tôi có thể sử dụng bảng ESP32 để kết nối các thiết bị gia dụng khác nhau và điều khiển chúng bằng Ứng dụng Android. Điều này sẽ có chi phí rất thấp và là một cách hiệu quả để tự động hóa ngôi nhà. Bây giờ chúng ta hãy đi trước một bước và bắt đầu thu thập thông tin để bắt đầu dự án.



Bước 1: Thu thập các thành phần

Cách tiếp cận tốt nhất để bắt đầu bất kỳ dự án nào là lập danh sách các thành phần và nghiên cứu ngắn gọn về các thành phần này vì sẽ không ai muốn mắc kẹt ở giữa dự án chỉ vì thiếu một thành phần. Dưới đây là danh sách các thành phần mà chúng tôi sẽ sử dụng trong dự án này:



  • ESP32
  • Breadboard
  • Kết nối dây

Bước 2: Nghiên cứu các thành phần

Bây giờ khi chúng ta biết phần tóm tắt của dự án này, chúng ta hãy đi trước một bước và đi qua một nghiên cứu ngắn gọn về hoạt động của các thành phần chính mà chúng ta sẽ sử dụng.

ESP32 là bo mạch vi điều khiển công suất thấp và chi phí thấp có tích hợp WiFi và mô-đun Bluetooth chế độ kép. Bo mạch vi điều khiển này được tạo ra và phát triển bởi Hệ thống Espressif . Bo mạch này có bộ khuếch đại công suất tích hợp, bộ khuếch đại thu thấp, bộ lọc và công tắc ăng-ten. Nó được cung cấp bởi một cáp dữ liệu Android và có thể cung cấp lên đến 3.3V trên đầu ra. ESP32 thực thi TCP / IP, quy ước WLAN MAC đầy đủ 802.11 b / g / n / e / I và Wi-Fi Direct cụ thể. Điều này ngụ ý rằng ESP 32 có thể giải quyết một phần lớn các Bộ định tuyến WiFi ngoài đó khi được sử dụng ở chế độ trạm (máy khách). Tương tự như vậy, nó có thể tạo một Access Point với đầy đủ 802.11 b / g / n / e / I. ESP32 không chỉ đơn giản củng cố cho BLE Bluetooth 4.2 mới nhất mà nó còn hỗ trợ Bluetooth tuyệt vời. Về cơ bản, nó ngụ ý rằng nó có thể giải quyết các điện thoại / bàn Bluetooth cũ và mới. Nếu bạn không có mô-đun ESP32, bạn cũng có thể sử dụng ESP8266 hoặc Node MCU. Các bảng này có thể được sử dụng để thực hiện cùng một nhiệm vụ nếu chúng được kết nối với WiFi.

ESP32



Mô-đun rơle là một thiết bị chuyển mạch. Nó hoạt động ở hai chế độ, Thường mở (KHÔNG)Bình thường Đã đóng (NC) . Ở chế độ KHÔNG, mạch luôn bị hỏng trừ khi bạn gửi tín hiệu CAO đến rơ le thông qua Arduino. Chế độ NC xấu đi theo cách khác, Mạch luôn hoàn thành trừ khi bạn bật mô-đun rơle. Đảm bảo rằng bạn kết nối dây dương của Thiết bị điện với mô-đun rơ le theo cách được hiển thị bên dưới.

Lắp ráp mạch mô-đun chuyển tiếp

Bước 3: Sơ đồ khối

Sơ đồ khối

Trong sơ đồ khối trên, dòng chảy của dự án này được hiển thị. Các rơ le được kết nối với các thiết bị hoặc thiết bị điện trong nhà. Một ứng dụng di động sẽ gửi một Trên hoặc là TẮT lệnh vào cơ sở dữ liệu. Đám mây này được kết nối với bảng vi điều khiển ESP32 thông qua WiFi. Để bật thiết bị điện tử, chúng tôi sẽ gửi “1” trong cơ sở dữ liệu và để tắt nó, chúng tôi sẽ gửi “0” trong cơ sở dữ liệu. Lệnh này sau đó sẽ được tìm nạp bởi bộ vi điều khiển vì nó cũng được kết nối với cơ sở dữ liệu. Dựa trên 0 hoặc 1 này, bộ vi điều khiển sẽ bật hoặc tắt mô-đun rơ le, điều này cuối cùng sẽ dẫn đến việc chuyển đổi các thiết bị điện.

Vì vậy, ở đây, trong bài viết này, tôi sẽ sử dụng hai mô-đun rơle để cho bạn thấy toàn bộ quy trình. Nhưng Bạn có thể tăng số lượng rơ le và thêm cùng một đoạn mã vào chương trình của mình nếu bạn muốn điều khiển số lượng lớn hơn các thiết bị điện trong nhà.

Bước 4: Lắp ráp các thành phần

Bây giờ khi chúng tôi đã có tầm nhìn rõ ràng về những gì chúng tôi muốn làm trong dự án này, chúng ta đừng lãng phí thời gian nữa và bắt đầu lắp ráp các thành phần.

  1. Lấy một breadboard và sửa vi điều khiển ESP32 trong đó. Bây giờ lấy hai mô-đun rơ le và kết nối Vcc và đất của các mô-đun với Vin và đất của bảng vi điều khiển ESP32 song song. Kết nối ghim của các mô-đun chuyển tiếp tới chân34 và chân35 của bảng ESP32. Bạn sẽ thấy rằng các rơ le hiện đã được bật nguồn.
  2. Kết nối các thiết bị gia dụng với mô-đun rơle. Đảm bảo các kết nối của bạn khớp với các kết nối được hiển thị trong hình ở Bước 2.

Bây giờ khi chúng tôi kết nối phần cứng của hệ thống. Chúng tôi sẽ phát triển một ứng dụng android sẽ được kết nối với cơ sở dữ liệu firebase. Chúng tôi sẽ tạo cơ sở dữ liệu và ứng dụng Android trong Phần 2 của bài viết này.

Bước 5: Bắt đầu với ESP32

Nếu bạn chưa làm việc với Arduino IDE trước đây, đừng lo lắng vì từng bước thiết lập Arduino IDE được hiển thị bên dưới.

  1. Tải xuống phiên bản Arduino IDE mới nhất từ Arduino.
  2. Kết nối bảng Arduino của bạn với PC và mở Bảng điều khiển. Bấm vào Phần cứng và Âm thanh. Bây giờ mở Thiết bị và Máy in và tìm cổng mà bo mạch của bạn được kết nối. Trong trường hợp của tôi, nó là COM14 nhưng nó khác nhau trong các máy tính khác nhau.

    Tìm cổng

  3. Bấm vào Tệp và sau đó bấm vào Tùy chọn. Sao chép liên kết sau trong URL của Người quản lý Hội đồng Quản trị bổ sung. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Sở thích

  4. Bây giờ, để sử dụng ESP32 với Arduino IDE, chúng ta cần nhập các thư viện đặc biệt cho phép chúng ta ghi mã trên ESP32 và sử dụng nó. hai thư viện này được đính kèm trong liên kết dưới đây. Để bao gồm thư viện, goto Phác thảo> Bao gồm Thư viện> Thêm Thư viện ZIP . Một hộp sẽ xuất hiện. Tìm thư mục ZIP trên máy tính của bạn và nhấp vào OK để bao gồm các thư mục.

    Bao gồm Thư viện

  5. Bây giờ goto Phác thảo> Bao gồm Thư viện> Quản lý Thư viện.

    Quản lý thư viện

  6. Một Menu sẽ mở ra. Trong thanh tìm kiếm, nhập Arduino JSON. Một danh sách sẽ xuất hiện. Tải về Arduino JSON của Benoit Blanchon.

    Arduino JSON

  7. Bây giờ hãy nhấp vào Công cụ. Một menu thả xuống sẽ xuất hiện. Đặt bảng thành Mô-đun nhà phát triển ESP.

    Ban thiết lập

  8. Nhấp lại vào menu Công cụ và đặt cổng mà bạn đã quan sát trong bảng điều khiển trước đó.

    Thiết lập cổng

  9. Bây giờ Tải lên mã được đính kèm trong liên kết bên dưới và nhấp vào nút tải lên để ghi mã trên vi điều khiển ESP32.

    Tải lên

Vì vậy, bây giờ khi bạn tải lên mã, một lỗi có thể xảy ra. Đây là lỗi phổ biến nhất có thể xảy ra nếu bạn đang sử dụng phiên bản mới của Arduino IDE và Arduino JSON. Sau đây là những lỗi mà bạn có thể thấy trên màn hình.

Trong tệp được bao gồm từ C:  Users  Pro  Documents  Arduino  thư viện  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, từ C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer là một lớp từ ArduinoJson 5. Vui lòng xem arduinojson.org/upgrade để tìm hiểu cách nâng cấp chương trình của bạn lên ArduinoJson phiên bản 6 StaticJsonBuffer jsonBuffer; ^ Trong tệp được bao gồm từ C:  Users  Pro  Documents  Arduino  thư viện  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, từ C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer là một lớp từ ArduinoJson 5. Vui lòng xem arduinojson.org/upgrade để tìm hiểu cách nâng cấp chương trình của bạn lên ArduinoJson phiên bản 6 return StaticJsonBuffer (). ParseObject (_data); ^ Đã tìm thấy nhiều thư viện cho 'WiFi.h' Được sử dụng: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  thư viện  WiFi Không được sử dụng: C:  Program Files ( x86)  Arduino  thư viện  WiFi Sử dụng thư viện WiFi tại phiên bản 1.0 trong thư mục: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  thư viện  WiFi Sử dụng thư viện IOXhop_FirebaseESP32-master trong thư mục: C:  Users  Pro  Documents  Arduino  architects  IOXhop_FirebaseESP32-master (kế thừa) Sử dụng thư viện HTTPClient tại phiên bản 1.2 trong thư mục: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  thư viện  HTTPClient Sử dụng thư viện WiFiClientSecure tại phiên bản 1.0 trong thư mục: C:  Users  Pro  AppData  Local  Arduino15  pack  esp32  hardware  esp32  1.0.2  thư viện  WiFiClientSecure Sử dụng thư viện ArduinoJson tại phiên bản 6.12.0 trong thư mục: C:  Users  Pro  Documents  Arduino  library  ArduinoJson trạng thái thoát 1 Lỗi biên dịch cho bảng ESP32 Dev Module.

Không có gì phải lo lắng vì chúng ta có thể loại bỏ những lỗi này bằng một số bước đơn giản. Những lỗi này đang phát sinh do phiên bản mới của Arduino JSON có một lớp khác thay vì StaticJsonBuffer. Đây là lớp của JSON 5. Vì vậy, chúng tôi có thể đơn giản loại bỏ lỗi này bằng cách hạ cấp phiên bản Arduino JSON của Arduino IDE của chúng tôi. Đơn giản chỉ cần đi đến Phác thảo> Bao gồm Thư viện> Quản lý Thư viện. Tìm kiếm Arduino JSON của Benoit Blanchon mà bạn đã cài đặt trước đó. Gỡ cài đặt nó trước rồi đặt phiên bản của nó thành 5.13.5. Bây giờ khi chúng ta đã thiết lập phiên bản Arduino JSON cũ, hãy cài đặt lại nó và biên dịch lại mã. Lần này, mã của bạn sẽ biên dịch thành công.

Để tải xuống mã, nhấp chuột đây.

Bước 6: Tìm hiểu Quy tắc

Mã của dự án này rất đơn giản và được bình luận tốt. Tuy nhiên, mã được giải thích ngắn gọn bên dưới.

1. Ban đầu, các thư viện được bao gồm để bo mạch ESP32 có thể được kết nối với kết nối WiFi cục bộ trong nhà hoặc văn phòng. Sau đó, một liên kết đến dự án firebase của bạn và xác thực dự án firebase của bạn được xác định. Sau đó, tên và mật khẩu của kết nối wifi cục bộ của bạn được xác định để ESP32 có thể được kết nối với Wifi. Một số chân của ESP32 được xác định để kết nối với các mô-đun rơle. và cuối cùng, một biến được khai báo sẽ lưu trữ một số dữ liệu tạm thời đến từ đám mây firebase.

#include // bao gồm thư viện để kết nối với kết nối Wifi cục bộ #include // Bao gồm thư viện để kết nối với cơ sở dữ liệu Firebase #define FIREBASE_HOST'hesia-posystem.firebaseio.com '// bao gồm liên kết của dự án firebase của bạn #define FIREBASE_AUTH' UrzlDZXMBNRhNdc5i73lmdf10KFEuEAN9i73lmdf10 '// Bao gồm xác thực dự án firebase của bạn #define WIFI_SSID' abcd '// tên kết nối WiFi của nhà riêng hoặc văn phòng của bạn #define WIFI_PASSWORD' abcd '// mật khẩu của kết nối WiFi tại nhà hoặc văn phòng của bạn int r1 = 34; // chân kết nối relay 1 int r2 = 35; // chân kết nối relay 2 int temp; // variabe để mang dữ liệu

2. void setup () là một hàm trong đó chúng ta khởi tạo các chân INPUT hoặc OUTPUT. Chức năng này cũng đặt tốc độ truyền bằng cách sử dụng Serial.begin () chỉ huy. Baud Rate là tốc độ truyền thông của vi điều khiển. Một số dòng mã được thêm vào đây để kết nối ESP32 với kết nối wifi cục bộ. Bo mạch sẽ cố gắng kết nối với kết nối wifi cục bộ và sẽ in “kết nối”. trong màn hình nối tiếp. Nó sẽ in “Đã kết nối” khi kết nối được thiết lập. Vì vậy, để theo dõi điều này, tốt hơn là mở màn hình nối tiếp và kiểm tra các cọc của nó ở đó.

void setup () {Serial.begin (115200); // thiết lập tốc độ truyền // kết nối với wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('đang kết nối'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); chậm trễ (500); } Serial.println (); Serial.print ('đã kết nối:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. void loop () là một hàm chạy lặp đi lặp lại trong một vòng lặp. Trong vòng lặp này, chúng tôi viết một đoạn mã cho bảng vi điều khiển biết những công việc cần thực hiện và cách thức thực hiện. Chúng tôi đã tìm nạp dữ liệu chống lại ánh sángAC từ cơ sở dữ liệu và được lưu trữ trong hai biến tạm thời. Sau đó, bốn điều kiện được áp dụng để chuyển đổi hai thiết bị theo 0 hoặc 1 được lấy từ cơ sở dữ liệu.

void loop () {// lấy giá trị temp1 = Serial.println (Firebase.getFloat ('light')); // lấy giá trị cho chuyển đổi của light temp2 = Serial.println (Firebase.getFloat ('AC')); // lấy vaue cho việc chuyển đổi Fan delay (1000); if (temp1 == 1 && temp2 == 1) {// Để bật đèn và quạt, digitalWrite (r1, HIGH); digitalWrite (r2, CAO); } if (temp1 == 0 && temp2 == 1) {// Để bật quạt và tắt đèn digitalWrite (r1, LOW); digitalWrite (r2, CAO); } if (temp1 == 1 && temp2 == 0) {// Để tắt quạt và bật đèn digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Để tắt quạt và tắt đèn digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Đây là Phần một của “Làm thế nào để tạo ra hệ thống nhà thông minh bằng ESP32?”. Bạn có thể thêm nhiều mô-đun rơle hơn nếu bạn muốn điều khiển một số thiết bị gia dụng khác, điều duy nhất bạn cần làm là đọc dữ liệu từ firebase và thêm một số điều kiện khác cho việc chuyển đổi. Trong bài viết tiếp theo, tôi sẽ giải thích cách phát triển một ứng dụng android và cơ sở dữ liệu Firebase. Tôi sẽ giải thích quy trình từng bước để kết nối ứng dụng Android với firebase và gửi dữ liệu đến nó.

Để đi đến hướng dẫn tiếp theo Bấm vào đây