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 lắp đặ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.

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 Relay 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 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 ta 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 bởi vì sẽ không ai muốn dính vào giữa một 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:

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.

ESP32là một 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 có nghĩa là 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 Điểm truy cập 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ó có nghĩa là 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 MCU Node. 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.

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.

Bước 3: 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 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 một 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 ta đã có tầm nhìn rõ ràng về những gì chúng ta 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à nối đấ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 bây giờ đã đượ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 trên 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à COM14nhưng nó khác nhau trong các máy tính khác nhau.
  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 ”
  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.
  5. Bây giờ goto Phác thảo> Bao gồm 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.
  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.
  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 đó.
  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.

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à các 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 \ library \ 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 trả về 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 \ thư viện \ 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 \ package \ 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 \ architects \ 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 cách làm theo 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ếmArduino JSON của Benoit Blanchonmà bạn đã cài đặt trước đó. Gỡ cài đặt nó trước và sau đó đặ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ẽ được biên dịch thành công.

Để tải xuống mã, bấm vào đâ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 nhận xét 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 kho 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" UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf "abIFI dự án firebasecd_Sdefine" Wbase9lmdf của bạn "// 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. Tốc độ Baud 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à bạn nên mở màn hình nối tiếp và kiểm tra sao 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ángACtừ 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, HIGH); } if (temp1 == 0 && temp2 == 1) {// Để bật quạt và tắt đèn digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } 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 chuyển tiếp 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 theoBấm vào đây

Facebook Twitter Google Plus Pinterest