- Các thành phần cần thiết để tạo rèm tự động Arduino
- Điều khiển rèm cuốn bằng Arduino
- Thiết kế và Xây dựng Cửa sổ Blind Gear
- In 3D Giá đỡ động cơ và Bánh răng mù
- Sơ đồ mạch để điều khiển rèm Arduino
- Ứng dụng Blynk để điều khiển mù Arduino
- Lập trình NodeMCU để điều khiển rèm bằng Blynk
- Điều khiển rèm cửa sổ bằng Google Assistant
- Điều khiển rèm cửa sổ tự động dựa trên Arduino - Trình diễn
"Buổi sáng tốt lành. Bây giờ là 7 giờ sáng Thời tiết ở Malibu là 72 độ… ”đây là những lời đầu tiên của JARVIS khi được giới thiệu trong Vũ trụ Điện ảnh Marvel. Hầu hết những người hâm mộ Iron Man sẽ có thể nhớ lại cảnh này và nhớ rằng JARVIS đã có thể mở một cửa sổ (đại loại là) vào buổi sáng và cập nhật về thời gian và thời tiết. Trong phim, Kính cửa sổ thực sự được làm bằng Màn hình cảm ứng nhìn xuyên thấu và do đó JARVIS có thể làm cho nó chuyển từ màu đen sang trong suốt và cũng hiển thị số liệu thống kê thời tiết trên đó. Tuy nhiên, trên thực tế, chúng ta đang ở rất xa với màn hình cảm ứng Nhìn xuyên qua và càng gần chúng ta càng có thể điều khiển rèm cửa sổ hoặc các ràng buộc tự động.
Vì vậy, trong dự án này, chúng tôi sẽ xây dựng chính xác điều đó, chúng tôi sẽ xây dựng một rèm có động cơ tự động có thể mở và đóng tự động vào những thời điểm được xác định trước. Trước đây, chúng tôi đã xây dựng nhiều dự án tự động hóa gia đình, trong đó chúng tôi tự động hóa đèn, động cơ, v.v. Bạn có thể kiểm tra chúng nếu bạn quan tâm. Vì vậy, quay trở lại, những tấm rèm điều khiển bằng Arduino này cũng có thể nhận lệnh từ trợ lý của Google để bạn có thể mở hoặc đóng rèm cửa sổ của mình từ xa thông qua lệnh thoại. Hấp dẫn? Sau đó, hãy xây dựng nó.
Các thành phần cần thiết để tạo rèm tự động Arduino
Dự án tương đối đơn giản và không có nhiều thành phần yêu cầu. Chỉ cần thu thập các mục được liệt kê dưới đây.
- NodeMCU
- Động cơ bước - 28BYJ-48
- Mô-đun điều khiển động cơ bước
- LM117-3.3V
- Tụ điện (10uf, 1uf)
- Bộ chuyển đổi DC 12V
- Bảng Perf
- Bộ hàn
- máy in 3D
Điều khiển rèm cuốn bằng Arduino
Hiện nay trên thị trường có rất nhiều loại Mành, nhưng loại được sử dụng phổ biến nhất là loại dây có các hạt (như hình bên dưới) có thể kéo để đóng mở rèm.
Khi chúng ta kéo sợi dây tròn này theo chiều kim đồng hồ, rèm cửa sổ sẽ mở ra và khi chúng ta kéo sợi dây này theo hướng ngược chiều kim đồng hồ, rèm cửa sổ sẽ đóng lại. Vì vậy, nếu chúng ta tự động hóa quá trình này, tất cả những gì chúng ta phải làm là sử dụng một động cơ để kéo sợi dây này theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ và chúng ta sẽ hoàn thành nó. Trên thực tế, đây là những gì chúng tôi sẽ làm trong dự án này; chúng ta sẽ sử dụng động cơ bước 28BYJ-48 cùng với NodeMCU để kéo dây cườm.
Thiết kế và Xây dựng Cửa sổ Blind Gear
Phần Điện tử của dự án này khá đơn giản và thẳng tiến, phần thử thách là chế tạo Thiết bị Mù có thể kéo dây cườm. Vì vậy, hãy bắt đầu bài viết này với thiết kế bánh răng mù, tôi sẽ không đi vào chi tiết về cách thiết kế bánh răng, nhưng ý tưởng cơ bản này sẽ giúp ích cho bạn. Hình ảnh của sợi dây với các hạt trên đó được hiển thị bên dưới.
Một lần nữa, có rất nhiều loại dây thừng nhưng dây thừng được sử dụng phổ biến nhất là khoảng cách từ tâm đến tâm của mỗi hạt là 6mm và đường kính của mỗi hạt là 4mm. Sử dụng thông tin này, chúng tôi có thể bắt đầu thiết kế thiết bị của mình. Nếu sợi dây trên rèm của bạn có cùng kích thước như đã thảo luận, bạn chỉ cần bỏ qua bước này và tải xuống tệp STL được cung cấp trong bài viết này và in bánh răng. Nếu dây của bạn có cách sắp xếp hạt khác, thì đây là cách bạn nên thiết kế lại thiết bị mù.
Tôi quyết định có 24 hạt trên bánh răng của mình để có được kích thước bánh răng tối ưu, bạn có thể chọn bất kỳ số nào gần với số này cho bánh răng của bạn lớn hay nhỏ. Vì vậy, bây giờ, chúng ta biết rằng khoảng cách giữa mỗi hạt là 6mm và chúng ta cần 24 hạt trên bánh răng của mình. Nhân cả hai sẽ cho chu vi của bánh răng. Với dữ liệu này, bạn có thể tính toán bán kính của bánh răng. Như bạn có thể thấy trong hình trên, đường kính bánh răng của tôi được tính là khoảng 46 mm. Nhưng hãy nhớ rằng, đây không phải là đường kính thực của bánh răng vì chúng ta chưa tính đến đường kính của hạt là 4mm. Vì vậy, đường kính thực tế của bánh răng sẽ là 42 mm, tôi đã in và thử nghiệm nhiều bánh răng trước khi tìm ra loại hoạt động tốt nhất. Nếu bạn không thích thiết kế,chỉ cần tải xuống và in các tệp STL từ đoạn tiếp theo và tiếp tục với dự án của bạn.
In 3D Giá đỡ động cơ và Bánh răng mù
Cùng với bánh răng, chúng ta cũng sẽ cần một vỏ nhỏ có thể khoan vào tường và giữ động cơ bước ở vị trí, cả vỏ và bánh răng được sử dụng trong dự án này được hiển thị bên dưới.
Bạn có thể tìm thấy các tệp thiết kế hoàn chỉnh và tệp STL trên trang Arduino Blind Control Thingiverse được cung cấp bên dưới. Bạn chỉ cần tải xuống và in hộp đựng động cơ và thiết bị mù của mình.
Tải xuống tệp STL cho Bánh răng mù và Vỏ động cơ
Sơ đồ mạch để điều khiển rèm Arduino
Khi bạn đã sẵn sàng với thiết bị và lắp ráp, bạn có thể dễ dàng tiến hành phần điện tử và phần mềm. Sơ đồ mạch hoàn chỉnh cho dự án điều khiển IoT Blind được hiển thị bên dưới.
Chúng tôi đã sử dụng bộ chuyển đổi 12V để cấp nguồn cho toàn bộ thiết lập; Bộ điều chỉnh LM1117-3.3V chuyển đổi 12V thành 3.3V có thể được sử dụng để cấp nguồn cho bảng NodeMCU. Mô-đun điều khiển động cơ bước được cấp nguồn trực tiếp từ bộ chuyển đổi 12V. Tôi đã thử chạy động cơ bước trên 5V, nhưng sau đó nó không cung cấp đủ mô-men xoắn để kéo rèm, vì vậy hãy đảm bảo rằng bạn cũng đang sử dụng 12V.
Ngoài ra, mạch khá đơn giản, nếu bạn chưa quen với động cơ bước, hãy tìm hiểu những điều cơ bản của bài viết về động cơ bước để hiểu cách hoạt động và cách sử dụng nó với vi điều khiển.
Ứng dụng Blynk để điều khiển mù Arduino
Trước khi chúng ta tham gia vào chương trình Arduino để điều khiển rèm, hãy mở ứng dụng blynk và tạo một số nút bằng cách sử dụng chúng để mở hoặc đóng rèm của mình. Chúng tôi cũng sẽ cần điều này sau này để kiểm soát từ trang chủ Google.
Tôi vừa bổ sung thêm hai nút đóng mở rèm và hẹn giờ mở rèm vào lúc 10:00 sáng hàng ngày. Bạn có thể thêm nhiều bộ hẹn giờ để mở hoặc đóng rèm vào các khoảng thời gian khác nhau trong ngày. Về cơ bản, khi chúng ta phải đóng rèm, chúng ta phải kích hoạt chân ảo V1 và khi chúng ta phải mở rèm, chúng ta phải kích hoạt chân ảo V2. Chương trình điều khiển động cơ bước dựa trên nút được nhấn ở đây sẽ được viết trên Arduino IDE, điều tương tự sẽ được thảo luận bên dưới.
Lập trình NodeMCU để điều khiển rèm bằng Blynk
Bạn có thể tìm thấy mã ESP8266 đầy đủ cho Dự án Kiểm soát Điểm mù này ở cuối trang này. Chương trình của chúng ta phải đợi lệnh từ ứng dụng blynk và dựa trên lệnh đó, chúng ta phải quay động cơ bước theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ. Các phân đoạn quan trọng của mã được thảo luận dưới đây.
Theo sơ đồ mạch của chúng tôi, chúng tôi đã sử dụng các chân kỹ thuật số 1, 2, 3 và 4 trên nút bấm để điều khiển động cơ bước của chúng tôi. Vì vậy, chúng ta phải tạo một thể hiện gọi là bước sử dụng các chân này như hình dưới đây. Lưu ý rằng chúng tôi đã xác định các chân theo thứ tự 1, 3, 2 và 4. Nó được thực hiện có chủ ý và không phải là một sai lầm; chúng ta phải hoán đổi chân 2 và 3 để động cơ hoạt động bình thường.
// tạo một thể hiện của lớp bước bằng cách sử dụng các bước và chân Bước bước (STEPS, D1, D3, D2, D4);
Trong bước tiếp theo, chúng tôi phải chia sẻ mã xác thực ứng dụng blynk của mình và thông tin đăng nhập Wi-Fi mà bộ điều khiển IoT Blind của chúng tôi phải được kết nối. Nếu bạn không chắc chắn về cách lấy mã thông báo xác thực Blynk này, hãy tham khảo dự án Blynk LED Control để hiểu cơ bản về ứng dụng blynk và cách sử dụng nó.
// Bạn sẽ nhận được Mã xác thực trong Ứng dụng Blynk. // Đi tới Cài đặt dự án (biểu tượng hạt). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Thông tin đăng nhập WiFi của bạn. // Đặt mật khẩu thành "" cho mạng mở. char ssid = "CircuitDigest"; char pass = "dummy123";
Tiếp tục với mã của chúng tôi, sau hàm thiết lập, chúng tôi đã xác định hai phương thức cho blynk. Như đã đề cập trước đây, chúng ta phải xác định các chân ảo V1 và V2 nên làm gì. Mã cho cùng một được đưa ra dưới đây.
BLYNK_WRITE (V1) // ĐÓNG BLINDS {Serial.println ("Màn che"); if (opens == true) {for (int c_val = 0; c_val <= 130; c_val ++) // xoay ngược chiều kim đồng hồ để đóng {stepper.step (c_val); năng suất (); } đóng = true; đã mở = sai; disable_motor (); // động cơ bước luôn có thể thay đổi sau khi sử dụng để giảm tiêu thụ điện năng và sưởi ấm}} BLYNK_WRITE (V2) // MỞ BLINDS {Serial.println ("Mở rèm"); if (close == true) {for (int cc_val = 0; cc_val> = -130; cc_val--) // xoay theo chiều kim đồng hồ để mở {stepper.step (cc_val); năng suất (); } đã mở = true; đóng = sai; } disable_motor (); // luôn dùng động cơ bước để giảm điện năng tiêu thụ và sưởi ấm}
Như bạn có thể thấy V1 được sử dụng để đóng rèm và V2 được sử dụng để mở rèm. Một vòng lặp for được sử dụng để xoay động cơ trong một chiều kim đồng hồ hoặc chống chiều kim đồng hồ chỉ đạo cho 130 bước. Tôi đã thử nghiệm với rèm của mình để thấy rằng với 130 bước, tôi có thể mở và đóng rèm hoàn toàn. Số của bạn có thể thay đổi. Các vòng lặp for để động cơ bước xoay trong một chiều kim đồng hồ và ngược chiều kim đồng hồ hướng được hiển thị bên dưới.
for (int c_val = 0; c_val <= 130; c_val ++) // xoay ngược chiều kim đồng hồ để đóng {stepper.step (c_val); năng suất (); } for (int cc_val = 0; cc_val> = -130; cc_val--) // xoay theo Chiều kim đồng hồ để mở {stepper.step (cc_val); năng suất (); }
Bạn cũng có thể nhận thấy hai biến Boolean “mở” và “đóng” trong chương trình của chúng tôi. Hai biến này được sử dụng để ngăn động cơ đóng hoặc mở rèm hai lần. Có nghĩa là, rèm sẽ chỉ mở khi nó đã được đóng trước đó và nó sẽ chỉ đóng lại khi nó đã được mở trước đó.
Làm cách nào để tăng tốc độ của Động cơ bước 28BJY-48?
Một nhược điểm của việc sử dụng động cơ bước 28BJY-48 là nó rất chậm. Những động cơ này ban đầu được sản xuất để sử dụng trong các ứng dụng tốc độ thấp có độ chính xác cao, vì vậy đừng mong đợi những động cơ này quay ở tốc độ cao. Nếu bạn muốn tăng tốc độ của động cơ bước bằng Arduino, có hai tham số mà bạn có thể thay đổi. Một là #define STEPS 64, tôi thấy rằng khi các bước được xác định là 64, động cơ tương đối nhanh hơn. Một tham số khác là stepper.setSpeed (500); một lần nữa tôi thấy 500 là một giá trị tối ưu, bất cứ điều gì hơn thế nữa thực sự làm cho động cơ bước chậm hơn.
Bạn có biết cách nào khác để tăng tốc độ của các động cơ này không? Nếu có, hãy để lại chúng trong phần bình luận bên dưới.
Làm thế nào để ngăn động cơ bước không bị quá nhiệt?
Động cơ bước phải luôn được tắt khi không sử dụng để tránh quá nhiệt. Vô hiệu hóa động cơ bước rất đơn giản; chỉ cần thay đổi trạng thái chân của tất cả bốn chân GPIO đang điều khiển động cơ bước xuống mức thấp. Điều này rất quan trọng, nếu không động cơ của bạn có thể rất nóng ở + 12V và tự hỏng vĩnh viễn. Chương trình vô hiệu hóa động cơ bước được đưa ra dưới đây.
void disable_motor () // tắt động cơ khi hoàn thành để tránh nóng máy {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Điều khiển rèm cửa sổ bằng Google Assistant
Chúng tôi sẽ sử dụng API blynk để điều khiển rèm thông qua trợ lý Google, nó sẽ tương tự như dự án tự động hóa Nhà điều khiển bằng giọng nói của chúng tôi, vì vậy hãy kiểm tra điều đó nếu quan tâm. Về cơ bản, chúng tôi phải kích hoạt liên kết bên dưới khi chúng tôi nói một cụm từ được xác định trước với Trợ lý Google.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Đảm bảo rằng bạn thay đổi mã xác thực thành mã được cung cấp bởi ứng dụng blynk của bạn. Bạn thậm chí có thể kiểm tra liên kết này trên trình duyệt chrome của mình để xem nó có hoạt động như mong đợi hay không. Bây giờ liên kết đã sẵn sàng, chúng ta chỉ cần truy cập IFTTT và tạo hai applet có thể kích hoạt pin ảo V1 và V2 khi chúng ta yêu cầu đóng và mở rèm. Một lần nữa, tôi không đi vào chi tiết của điều này vì chúng tôi đã làm điều này nhiều lần. Nếu bạn cần thêm trợ giúp, hãy tham khảo dự án đài FM được điều khiển bằng giọng nói này, chỉ cần thay thế các dịch vụ adafruit bằng webhook. Tôi cũng đang chia sẻ ảnh chụp màn hình đoạn mã của mình để tham khảo.
Điều khiển rèm cửa sổ tự động dựa trên Arduino - Trình diễn
Sau khi mạch và thùng loa in 3D đã sẵn sàng, chỉ cần lắp ráp thiết bị lên tường bằng cách khoan hai lỗ trên tường. Thiết lập lắp của tôi được hiển thị trong các hình ảnh bên dưới.
Sau đó, hãy đảm bảo rằng rèm của bạn đang trong tình trạng mở rồi mới cấp nguồn cho mạch điện. Bây giờ, bạn có thể thử đóng rèm từ ứng dụng blynk hoặc thông qua Google Assistant và nó sẽ hoạt động. Bạn cũng có thể đặt hẹn giờ trên ứng dụng blynk để tự động mở và đóng cửa mù vào một thời điểm cụ thể trong ngày.
Toàn bộ hoạt động của dự án có thể được tìm thấy trong video dưới đây; Nếu bạn có bất kỳ câu hỏi nào, hãy viết chúng trong phần bình luận bên dưới. Ngoài ra, bạn có thể sử dụng diễn đàn của chúng tôi để thảo luận kỹ thuật khác.