- Sơ đồ mạch cho Tự động hóa gia đình có điều khiển bằng Trợ lý Google
- Thiết lập ứng dụng Blynk
- Thiết lập IFTTT với Trợ lý Google và Blynk để đọc chuỗi
- Lập trình Arduino cho Blynk Home Automation
- Chế tạo PCB bằng PCBGoGo
- Lắp ráp PCB
- Kết nối Bo mạch với Bộ nguồn AC / Bo mạch mở rộng
Với sự tiến bộ trong các trợ lý ảo như Google Assistant và Alexa, các ứng dụng tự động hóa Trang chủ và điều khiển bằng giọng nói đang trở nên bình thường. Giờ đây, bản thân chúng tôi đã xây dựng nhiều dự án tự động hóa gia đình, từ Đèn cầu thang tự động đơn giản đến Tự động hóa gia đình được điều khiển trên web dựa trên IoT bằng Raspberry Pi. Nhưng dự án này ở đây khác, ý tưởng ở đây là tạo ra một bảng tự động hóa gia đình thực tế có thể lắp vào các bộ nguồn AC trên tường của chúng tôi và được giấu bên trong nó. Bo mạch không được làm gián đoạn hoạt động bình thường của các công tắc bộ nguồn của chúng tôi, nghĩa là chúng cũng phải BẬT hoặc TẮT với các công tắc thủ công. Và không cần phải nói, nó cũng có thể kiểm soát tải tương tự bằng giọng nói bằng cách sử dụng trợ lý Google và cũng đặt bộ hẹn giờ để bất kỳ tải nào có thể tự động BẬT hoặc TẮT trong thời gian đặt trước trong ngày.
Dự án này rất giống với phích cắm Wi-Fi thông minh ESP8266 của chúng tôi nhưng ở đây vì chúng tôi sẽ sử dụng ESP12, chúng tôi sẽ có nhiều chân GPIO hơn cho phép chúng tôi điều khiển bốn tải AC đồng thời. Ngoài ra, vì chúng tôi đã tích hợp Blynk và Trợ lý Google, nên dự án trở nên thú vị và thiết thực khi sử dụng. Đối với dự án này, chúng tôi đã chế tạo các bảng mạch sử dụng dịch vụ sản xuất PCB PCBGOGO. Trong phần sau của bài viết, chúng tôi đã cung cấp tệp Gerber được thiết kế cho mạch và cũng giải thích quy trình hoàn chỉnh để đặt mua PCB từ PCBGOGO.
Cảnh báo: Dự án này liên quan đến việc làm việc với điện áp nguồn AC. Lưu ý rằng cần hết sức thận trọng khi làm việc với điện áp AC cao. Đảm bảo rằng bạn được giám sát bởi một người có kinh nghiệm nếu bạn là người mới.
Sơ đồ mạch cho Tự động hóa gia đình có điều khiển bằng Trợ lý Google
Sơ đồ mạch hoàn chỉnh cho tự động hóa gia đình có thể được tìm thấy dưới đây.
Như bạn có thể thấy, mạch rất đơn giản, chúng ta hãy bắt đầu giải thích từ Mô-đun Wi-Fi ESP12E. Bạn cũng có thể xem video dưới đây để biết giải thích chi tiết về dự án. Mô-đun có thể được lập trình giống như các bảng phát triển nodeMCU và nó làm giảm rất nhiều không gian. Theo mặc định, khi bật nguồn, ESP12E sẽ vào chế độ hoạt động. Để lập trình nó, chúng ta phải sử dụng nút Reset và Flash. Đó là đặt ESP12 ở chế độ lập trình, nhấn và giữ cả nút Reset và Flash, sau đó thả nút reset. Thao tác này sẽ khởi động ESP12E với nút flash được nhấn, bây giờ hãy nhả nút flash và ESP12E sẽ vào chế độ lập trình. Sau khi lập trình, bạn phải nhấn lại nút đặt lại để khởi động ESP12E ở chế độ hoạt động bình thường để thực thi Chương trình đã tải lên. Các chân lập trình Rx, Rx,và Ground được mở rộng ra để có thể kết nối với bảng FTDI hoặc bộ chuyển đổi USB sang TTL. Đảm bảo kết nối chân Tx của ESP12 với chân Rx của Bộ lập trình và ngược lại.
Các chân cờ khác I1 đến I4 và R1 đến R4 được sử dụng để kết nối Công tắc và Rơle. Chân I1 đến I4 là chân đế của Đầu vào. Tất cả các chân này đều hỗ trợ điện trở kéo lên bên trong vì vậy chúng ta chỉ cần kết nối các công tắc trên hộp mở rộng với chân Đầu vào của chúng ta thông qua một điện trở kéo xuống như hình dưới đây.
Tương tự, các chân ra của Rơle từ R1 đến R4 được sử dụng để điều khiển các Rơle. Chúng tôi đã sử dụng một mạch điều khiển rơle tiêu chuẩn với BC547 và Diode IN4007 như hình dưới đây. Lưu ý rằng các rơ le nên được kích hoạt với 5V nhưng các chân đầu ra của ESP12E chỉ là 3.3V. Vì vậy, bắt buộc phải sử dụng một bóng bán dẫn để điều khiển các rơ le. Chúng tôi cũng đã đặt một đèn LED trong đường dẫn cơ bản của bóng bán dẫn để bất cứ khi nào bóng bán dẫn được kích hoạt, đèn LED cũng sẽ bật.
Cuối cùng, để cấp nguồn cho tất cả các mạch của chúng tôi, chúng tôi đã sử dụng bộ chuyển đổi AC-DC Hi-Link để chuyển đổi 220V AC thành 5V DC. Sau đó, 5V DC này được chuyển đổi thành 3.3V bằng bộ điều chỉnh điện áp AMS117-3.3V. 5V được sử dụng để kích hoạt Rơle và 3.3V được sử dụng để cấp nguồn cho Mô-đun Wi-Fi ESP21.
Thiết lập ứng dụng Blynk
Trước đây chúng tôi đã xây dựng nhiều dự án Blynk như Robot Arduino được điều khiển bằng Wi-Fi, vì vậy chúng tôi sẽ không đi sâu vào chi tiết thiết lập ứng dụng blynk. Nhưng nói một cách đơn giản, bạn chỉ cần cài đặt ứng dụng, tạo một dự án mới cho NodeMCU và bắt đầu đặt các widget của bạn như hình dưới đây.
Tôi đã sử dụng chân ảo V1 đến V4 để điều khiển rơle 1 đến 4 trong dự án của chúng tôi. Đảm bảo thay đổi loại nút để chuyển đổi. Tùy chọn hẹn giờ cũng có thể được sử dụng để kích hoạt các chân ảo tự động trong thời gian đã đặt, ngay cả khi điện thoại đã tắt. Tôi đã sử dụng bộ đếm thời gian chỉ cho chân ảo V1 ở đây, nhưng bạn có thể sử dụng nó cho cả bốn chân nếu cần.
Đảm bảo nhận được giá trị mã thông báo auth blynk của bạn từ trang dự án của bạn. Chỉ cần nhấp vào biểu tượng quả hạch (khoanh đỏ trong hình trên) và sao chép mã thông báo auth bằng cách sử dụng tùy chọn copy all và dán nó vào nơi an toàn, chúng ta sẽ cần khi lập trình board Arduino.
Thiết lập IFTTT với Trợ lý Google và Blynk để đọc chuỗi
Cách dễ nhất để sử dụng Trợ lý Google cho việc tự động hóa tại nhà là sử dụng IFTTT. Chúng tôi cũng đã xây dựng nhiều dự án IFTTT trước đây với NodeMCU và Raspberry Pi. Trong dự án này, chúng tôi sẽ sử dụng ứng dụng Blynk để kích hoạt webhook bằng trợ lý của Google. Nó rất giống với dự án tự động hóa ngôi nhà được điều khiển bằng giọng nói và đài FM được điều khiển bằng giọng nói của chúng tôi. Ngoại trừ, ở đây chúng tôi sẽ sử dụng blynk với IFTTT để gửi chuỗi, điều này làm cho nó dễ dàng và thú vị hơn rất nhiều.
Về cơ bản, chúng tôi sẽ sử dụng chân ảo V5 và V6 trên blynk để gửi lệnh kích hoạt. V5 sẽ được sử dụng cho các lệnh bật và V6 sẽ được sử dụng cho các lệnh tắt. Ví dụ: nếu chúng ta nói bật TV và đèn. Lệnh chuỗi ở đây “TV và Đèn” sẽ được gửi tới NodeMCU bằng API. Cú pháp của API như dưới đây.
http://188.166.206.43//update/V5?value=TV và Đèn
Bây giờ, tất cả những gì chúng ta phải làm trong IFTTT là sử dụng trợ lý google dưới dạng IF và webhooks dưới dạng ĐÓ, vì vậy hãy lắng nghe lệnh này và gửi thông tin đến NodeMCU bằng cách sử dụng API nói trên. Mẫu applet bật tương tự được hiển thị bên dưới.
Lưu ý rằng bạn phải chọn nói một cụm từ với tùy chọn thành phần văn bản khi tạo công thức cho Trợ lý Google. Tương tự, bạn phải lặp lại tương tự đối với chân ảo V6 để tắt các rơ le. Bạn có thể xem video ở cuối trang này để biết thông tin chi tiết.
Lập trình Arduino cho Blynk Home Automation
Bạn có thể tìm thấy mã Arduino hoàn chỉnh cho dự án này ở cuối trang này. Giải thích tương tự như sau. Trước đó, hãy đảm bảo rằng bạn có thể sử dụng Blynk và Program NodeMCU từ Arduino IDE. Nếu không theo dõi bài viết bắt đầu với ESP12. Ngoài ra, thêm thư viện blynk vào Arduino IDE bằng trình quản lý hội đồng.
Như mọi khi, chúng tôi bắt đầu mã của mình bằng cách xác định các chân đầu vào và đầu ra, ở đây đầu vào sẽ là từ các công tắc và đầu ra sẽ là từ các rơ le. Chúng tôi đã xác định tên pin cho tất cả bốn công tắc là sw và rơ le là rơ le như bạn có thể thấy bên dưới.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
Trong giai đoạn tiếp theo, bạn phải nhập một số thông tin đăng nhập như mã thông báo auth blynk, tên người dùng và mật khẩu cho bộ định tuyến Wi-Fi mà nodeMCU của bạn sẽ kết nối với. Có thể lấy mã thông báo flash auth từ ứng dụng blynk. Chúng ta sẽ tìm hiểu thêm về điều đó trong phần thiết lập ứng dụng blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // lấy từ ứng dụng blynk char ssid = "home_wifi"; char pass = "fakepass123";
Tiếp theo, chúng ta đã đưa ra định nghĩa cho một hàm được gọi là read_switch_toggle () . Trong chức năng này, chúng tôi sẽ so sánh trạng thái hiện tại và trạng thái trước đó của các thiết bị chuyển mạch của chúng tôi. Nếu công tắc đã được bật hoặc tắt tức là Nếu công tắc đã được bật. Sẽ có sự thay đổi trạng thái của công tắc, chức năng sẽ theo dõi sự thay đổi này và trả về số công tắc. Nếu không có thay đổi nào được phát hiện, nó sẽ trả về 0.
int read_switch_toggle () {int result = 0; // Lưu ý tất cả các giá trị trước đó for (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Đọc trạng thái hiện tại của switch crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // so sánh trạng thái hiện tại và pvs for (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // nếu bất kỳ công tắc nào được bật, chúng ta nhận được số chuyển đổi là kết quả trả về kết quả; } else kết quả = 0; // nếu không thay đổi kết quả 0} return result; // trả về resul}
Tiếp theo, chúng ta có mã cho ứng dụng blynk. Chúng tôi sẽ sử dụng chân ảo V1 đến V6 để điều khiển hộp nối thông minh của chúng tôi. Các chân V1 đến V4 sẽ được sử dụng để điều khiển rơ le từ 1 đến 4 tương ứng trực tiếp từ ứng dụng blynk. Đoạn mã dưới đây cho thấy điều gì sẽ xảy ra khi V1 được kích hoạt từ ứng dụng blynk. Chúng tôi chỉ cần đọc trạng thái (CAO hoặc THẤP) và điều khiển rơle cho phù hợp.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Tương tự, các chân ảo cũng có thể được sử dụng để đọc một chuỗi từ ứng dụng blynk. Chúng ta sẽ tìm hiểu cách gửi một chuỗi từ trợ lý google tới NodeMCU bằng IFTTT và trợ lý Google sau nhưng bây giờ, hãy xem cách mã NodeMCU đọc chuỗi này và tìm kiếm một từ khóa cụ thể và kích hoạt chuyển tiếp tương ứng.
Trong đoạn mã dưới đây, bạn có thể thấy rằng khi chân ảo V5 được kích hoạt, chúng tôi nhận được chuỗi được nó chuyển vào một biến chuỗi có tên là ON_message . Sau đó, sử dụng biến chuỗi này và phương thức inderOf, chúng tôi tìm kiếm xem có bất kỳ từ khóa nào như “đèn”, “LED”, “nhạc”, “TV” hay không, nếu có, chúng tôi bật tải cụ thể đó. Nếu từ khóa “mọi thứ” được phát hiện, chúng tôi sẽ bật mọi thứ. Tương tự cũng có thể được thực hiện đối với động cơ V6 để tắt các rơ le. Chúng ta sẽ hiểu thêm về điều này khi chúng ta vào phần IFTTT.
BLYNK_WRITE (V5) {Chuỗi ON_message = param.asStr (); Serial.println (ON_message); if (ON_message.indexOf ("lamp")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("music")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("mọi thứ")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Cuối cùng, bên trong chức năng vòng lặp, chúng ta chỉ phải kiểm tra xem có nút nào được chuyển đổi vị trí hay không. Nếu có, thì chúng ta sử dụng một hộp công tắc như hình dưới đây để chuyển đổi vị trí của rơ le cụ thể đó.
switch (toggle_pin) {case 0: break; case 1: Serial.println ("Chuyển đổi Relay 1"); digitalWrite (rel1, relay_state); phá vỡ; case 2: Serial.println ("Chuyển đổi Relay 2"); digitalWrite (rel2, relay_state); phá vỡ; case 3: Serial.println ("Chuyển đổi Relay 3"); digitalWrite (rel3, relay_state); phá vỡ; case 4: Serial.println ("Chuyển đổi Relay 4"); digitalWrite (rel4, relay_state); phá vỡ; }}
Chế tạo PCB bằng PCBGoGo
Bây giờ chúng ta đã hiểu cách thức hoạt động của các sơ đồ, chúng ta có thể tiến hành xây dựng PCB cho dự án tự động hóa gia đình của mình. Bố cục PCB cho mạch trên cũng có sẵn để tải xuống dưới dạng Gerber từ liên kết.
- Tải xuống GERBER cho Tự động hóa ngôi nhà được điều khiển bằng giọng nói bằng Trợ lý Google
Bây giờ thiết kế của chúng tôi đã sẵn sàng, đã đến lúc chế tạo chúng bằng cách sử dụng tệp Gerber. Để thực hiện PCB từ PCBGOGO khá dễ dàng, chỉ cần làm theo các bước dưới đây-
Bước 1: Truy cập www.pcbgogo.com, đăng ký nếu đây là lần đầu tiên của bạn. Sau đó, trong tab Mẫu thử nghiệm PCB, hãy nhập kích thước của PCB của bạn, số lớp và số lượng PCB bạn yêu cầu. Giả sử PCB là 80cm × 80cm, bạn có thể đặt kích thước như hình dưới đây.
Bước 2: Tiến hành bằng cách nhấp vào nút Trích dẫn ngay . Bạn sẽ được đưa đến một trang để thiết lập một vài tham số bổ sung nếu được yêu cầu như vật liệu được sử dụng khoảng cách theo dõi, v.v. Nhưng hầu hết, các giá trị mặc định sẽ hoạt động tốt. Điều duy nhất mà chúng ta phải xem xét ở đây là giá cả và thời gian. Như bạn có thể thấy Thời gian xây dựng chỉ là 2-3 ngày và chi phí chỉ $ 5 cho PCB của chúng tôi. Sau đó, bạn có thể chọn một phương thức vận chuyển ưa thích dựa trên yêu cầu của bạn.
Bước 3: Bước cuối cùng bạn tải file Gerber lên và tiến hành thanh toán. Để đảm bảo quá trình diễn ra suôn sẻ, PCBGOGO xác minh xem tệp Gerber của bạn có hợp lệ hay không trước khi tiến hành thanh toán. Bằng cách này, bạn có thể chắc chắn rằng PCB của bạn được chế tạo thân thiện và sẽ đến tay bạn theo cam kết.
Lắp ráp PCB
Sau khi bo mạch được đặt hàng, nó đến tay tôi sau một vài ngày thông qua chuyển phát nhanh trong một chiếc hộp được đóng gói cẩn thận có nhãn mác gọn gàng và như mọi khi, chất lượng của PCB thật tuyệt vời. PCB đã được tôi nhận được hiển thị bên dưới. Như bạn thấy, cả lớp trên cùng và dưới cùng đã xuất hiện như mong đợi.
Vias và miếng đệm đều có kích thước phù hợp. Tôi mất khoảng 15 phút để lắp ráp bảng mạch PCB để có được một mạch hoạt động. Bảng lắp ráp được hiển thị bên dưới.
Kết nối Bo mạch với Bộ nguồn AC / Bo mạch mở rộng
Bảng được thiết kế để cố định bên trong ổ cắm điện AC trong nhà của chúng ta. Nhưng vì lợi ích của dự án này, chúng tôi sẽ sử dụng một hộp mở rộng. Nếu bạn muốn có một giải pháp lâu dài hơn, thì hãy nối dây này vào bên trong ổ cắm điện AC của bạn, như bạn có thể thấy bên dưới chiều dài của PCB đủ nhỏ gọn để đặt bên trong ổ cắm điện AC.
Đảm bảo bạn tuân thủ các biện pháp phòng ngừa an toàn khi làm việc với nguồn điện AC. Thực hiện theo sơ đồ mạch bên dưới để hiểu cách kết nối các rơ le và công tắc của bạn với bảng mạch PCB của chúng tôi.
Sơ đồ kết nối chỉ bị hỏng đối với một Relay và công tắc nhưng bạn cũng có thể sao chép giống nhau cho ba phần còn lại. Sau khi kết nối xong, bảng của bạn sẽ trông như thế này
Khi các kết nối đã được tạo xong, hãy đảm bảo rằng bạn đã cố định chúng chặt chẽ bằng các đầu nối bằng vít và cũng sử dụng keo nóng để tăng thêm độ an toàn. Đóng gói mọi thứ lại vào hộp và chúng tôi sẽ sẵn sàng để kiểm tra. Bạn có thể tìm thấy toàn bộ hoạt động của dự án này trong video bên dưới.
Tôi hy vọng bạn thích bài viết và học được điều gì đó hữu ích. Nếu bạn có bất kỳ câu hỏi nào, vui lòng để lại trong phần bình luận bên dưới hoặc sử dụng diễn đàn của chúng tôi.