Điều khiển bếp từ điện thoại thông minh của bạn bằng WiFi
Trong thế giới hiện đại, nếu chúng ta nhìn xung quanh, chúng ta có thể thấy rằng mọi thứ bao gồm cả thiết bị điện tử đều được tự động hóa ở một mức độ nào đó. Hệ thống tự động hóa gia đình hoặc nhà thông minh đang rất phổ biến hiện nay. Bằng cách sử dụng các hệ thống này, các thiết bị gia dụng khác nhau có thể được tự động hóa bằng ứng dụng di động. Nhưng hầu hết các hệ thống này không bao gồm bất kỳ thứ gì có thể tự động hóa bếp gas của bạn. Trong bài viết này, chúng tôi sẽ phát triển một hệ thống cho phép bạn điều khiển bếp gas của mình bằng ứng dụng di động. Ứng dụng này sẽ được sử dụng để mở hoặc đóng van gas từ van chính và châm vào bugi để tạo lửa.
Làm thế nào để tự động hóa bếp gas thông qua điện thoại di động của bạn?
Bây giờ khi chúng ta biết phần tóm tắt của dự án, chúng ta hãy tiếp tục và thu thập các thông tin khác nhau để bắt đầu làm việc. Đầu tiên chúng ta sẽ lập một danh sách các thành phần và sau đó lắp ráp tất cả các thành phần lại với nhau để tạo thành một hệ thống hoạt động.
Bước 1: Thu thập các thành phần
Trước khi bắt đầu bất kỳ dự án nào, nếu chúng ta muốn tránh bị mắc kẹt ở giữa dự án, chúng ta nên có một danh sách đầy đủ tất cả các thành phần mà chúng ta sẽ cần khi làm việc trên dự án. Đây là một cách tiếp cận tuyệt vời giúp tiết kiệm rất nhiều thời gian và công sức. Dưới đây là danh sách đầy đủ của tất cả các thành phần được sử dụng trong dự án này. Tất cả các thành phần này dễ dàng có sẵn trên thị trường.
Bước 2: Phát triển ứng dụng Android
Vì chúng ta sẽ điều khiển bếp này bằng ứng dụng Android, trước tiên chúng ta cần phát triển nó. Trước đây, chúng tôi đã phát triển một số ứng dụng android. Trước đây, chúng tôi đã thực hiện mộtứng dụng chỉ bao gồm một nút trong đó. Nút này được sử dụng để gửi dữ liệu vào cơ sở dữ liệu. Nếu ‘1’ được đưa vào cơ sở dữ liệu, rơ le sẽ được bật và nếu ‘0’ được đưa vào cơ sở dữ liệu, rơle sẽ bị tắt.
Chúng tôi sẽ sửa đổi một chút trong ứng dụng này. Bằng cách làm theo quy trình tương tự đã được thực hiện để tạo nút đầu tiên và kết nối nó với firebase, chúng tôi sẽ tạo một nút khác sẽ được kết nối với firebase.
Một nút sẽ được sử dụng để mở và đóng van gas và nút thứ hai sẽ được sử dụng để tạo ra tia lửa sẽ chịu trách nhiệm về đánh lửa.
Bước 3: Tạo mạch
Như bây giờ chúng ta đã biết điểm mấu chốt chính của dự án này, chúng ta hãy lắp ráp tất cả các thành phần lại với nhau để tạo thành mạch cuối cùng.
Lấy một breadboard và chèn Bảng ESP32 trong đó. Lấy cả hai bóng bán dẫn và điện trở và lắp chúng vào bảng mạch điện theo cách sao cho bóng bán dẫn có thể được sử dụng như một công tắc. Thực hiện theo cấu hình bên dưới để bạn không mắc phải bất kỳ lỗi nào khi thực hiện chuyển đổi.
Trong hình trên, kết nối Vin chuyển đến các chân của ESP32, kết nối cổng Vcc với nguồn 5V bên ngoài và kết nối Vo với mô-đun rơle. Lý do chính mà chúng ta đang sử dụng bóng bán dẫn làm công tắc là rơ le cần 5V để hoạt động nhưng ESP32 chỉ có thể cung cấp 3,3V. Vì vậy chúng ta cần cung cấp nguồn 5V bên ngoài cho rơ le.
Bây giờ chúng ta sẽ kết nối mô-đun rơle với các bóng bán dẫn. Đảm bảo rằng bóng bán dẫn đầu tiên được kết nối với chân34 của mô-đun ESP và bóng bán dẫn thứ hai được kết nối với chân35 của mô-đun ESP. Chúng tôi sẽ sử dụng cả hai mô-đun rơle ở chế độ thường mở. Kết nối van gas và bugi với đầu ra của mô-đun rơle thứ nhất và thứ hai tương ứng. Đảm bảo rằng bạn kết nối với ass mô-đun chuyển tiếp được hiển thị trong hình dưới đây.
Bước 4: Làm việc
Trái tim của dự án này là ESP32 là bo mạch vi điều khiển. Một van gas và một bugi được kết nối với ESP thông qua các mô-đun rơle. Ban đầu van gas đóng. Khi nó được bật từ ứng dụng di động, van gas sẽ được bật. Tương tự trong trường hợp của bugi. Nó có thể được chuyển sang hoặc tắt thông qua ứng dụng dành cho thiết bị di động. Bugi này sẽ được kết nối với bếp nơi thoát khí. Bugi này sẽ châm lửa.
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.
- Tải xuống phiên bản Arduino IDE mới nhất từ Arduino.
- 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.
- 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 ”
- 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.
- Bây giờ goto Phác thảo> Bao gồm Thư viện> Quản lý Thư viện.
- 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.
- 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.
- 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 đó.
- 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à 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 StaticJsonBufferjsonBuffer; ^ Trong tệp được bao gồm từ C: \ Users \ Pro \ Documents \ Arduino \ architects \ 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 \ 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 \ 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 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: Mã
Mã đính kèm được nhận xét khá tốt nhưng vẫn còn, một số phần của nó được giải thích bên dưới.
1. Khi bắt đầu, hai thư viện được bao gồm để bật WiFi và bảng ESP có thể được kết nối với cơ sở dữ liệu firebase. Sau đó, máy chủ lưu trữ firebase, xác thực, tên của kết nối wifi cục bộ của bạn và mật khẩu của cùng một kết nối wifi được bao gồm. Ngoài ra, xác định các chân trên bảng ESP sẽ được sử dụng để kết nối các thiết bị bên ngoài.
#include// bao gồm thư viện để sử dụng WiFi #include // bao gồm thư viện để kết nối với Firebase #define FIREBASE_HOST "xxxxxxxxxx" // thay xxxxxxxxxx bằng máy chủ firebase của bạn tại đây #define FIREBASE_AUTH "xxxxxxxxxx" // thay xxxxxxxxxx bằng xác thực firebase của bạn tại đây #define WIFI_SSID "xxxxxxxxxx" // thay xxxxxxxxxx tên kết nối Wifi của chúng tôi #define WIFI_PASSWORD "xxxxxxxxxx" // thay thế xxxxxxxxxx bằng mật khẩu wifi của bạn #define valve 34 // kết nối van gas với chân này #define spark 35 // kết nối bugi với chân này
2. void setup () là chức năng chỉ chạy một lần khi bật nguồn bộ vi điều khiển hoặc nhấn nút bật. Trong chức năng này, tốc độ truyền được đặt, về cơ bản là tốc độ truyền thông tính bằng bit trên giây. Sau đó, bảng ESP được kết nối với Wifi.
void setup () {Serial.begin (115200); // thiết lập tốc độ baud pinMode (van, OUTPUT); // đặt chân 34 được sử dụng làm OUTPUT pinMode (spark, OUTPUT); // đặt chân 35 dùng làm OUTPUT // kết nố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. Vòng lặp rỗng () là 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, các giá trị đang được đọc từ firebase và được kiểm tra xem chúng bằng 0 hay bằng một. Nếu các giá trị là một, thì tín hiệu CAO sẽ được gửi đến chân, dẫn đến việc bật mô-đun rơle. Nếu giá trị bằng 0, tín hiệu LOw sẽ được gửi đến chân của ESP, dẫn đến tắt rơ le.
void loop () {// lấy giá trị temp1 = Serial.println (Firebase.getFloat ("light")); // lấy giá trị cho sự chuyển đổi của van gas temp2 = Serial.println (Firebase.getFloat ("AC")); // lấy vaue để chuyển đổi bugi if (temp1 == 1) {digitalWrite (van, HIGH) // bật rơ le một} else if (temp1 == 0) {digitalWrite (van, LOW) // lần lượt tắt rơ le một} else if (temp2 == 1) {digitalWrite (spark, HIGH) // bật relay hai} else if (temp2 == 0) {digitalWrite (spark, LOW) // tắt relay hai} // xử lý lỗi if (Firebase.failed ()) {Serial.print ("setting / number failed:"); Serial.println (Firebase.error ()); trở về; } delay (1000); }
Đó là tất cả cho ngày hôm nay. Giờ đây, bạn có thể tự làm bếp thông minh tại nhà. Hãy tiếp tục kiểm tra trang web của chúng tôi để biết thêm những bài viết thú vị như thế này trong tương lai.