- Hoạt động của Bộ điều chỉnh quạt trần dựa trên IoT
- Vật liệu cần thiết cho mạch điều khiển tốc độ quạt AC
- Mạch điều khiển bộ điều chỉnh quạt AC
- Thiết kế PCB cho Bộ điều chỉnh quạt trần được điều khiển bằng IoT
- Thiết lập tài khoản Firebase
- Mã Arduino để điều khiển bộ điều chỉnh quạt với NodeMCU
- Xây dựng ứng dụng Fan Regulator với MIT App Inventor
- Kiểm tra mạch cảm biến cảm ứng dựa trên ESP32
- Cải tiến hơn nữa
Trong bài viết này, chúng tôi đang xây dựng một mạch điều chỉnh quạt AC, có thể điều khiển tốc độ của quạt bằng cách hạn chế dòng điện chạy vào quạt. Thuật ngữ Bộ điều chỉnh Quạt trần AC là một cái miệng, do đó chúng tôi sẽ gọi nó đơn giản là một bộ điều chỉnh quạt từ bây giờ. Một mạch ổn quạt là một thành phần quan trọng được sử dụng để tăng hoặc giảm tốc độ của một AC Fan / động cơ theo nhu cầu. Vài năm trước, bạn có sự lựa chọn giữa bộ điều chỉnh quạt loại điện trở thông thường hoặc bộ điều chỉnh điện tử, nhưng ngày nay tất cả đã được thay thế bằng mạch điều chỉnh quạt điện tử.
Trong một bài viết trước, chúng tôi đã hướng dẫn bạn cách xây dựng Mạch điều khiển góc pha AC với Arduino có thể điều khiển độ sáng của bóng đèn sợi đốt và cũng có thể điều khiển tốc độ của Quạt, vì vậy hãy nâng cấp nó lên một bậc. trong bài viết này, chúng tôi sẽ xây dựng một mạch Điều chỉnh quạt trần xoay chiều dựa trên IoT. Điều này sẽ có thể điều khiển tốc độ quạt trần của bạn với sự trợ giúp của Ứng dụng Android.
Hoạt động của Bộ điều chỉnh quạt trần dựa trên IoT
Mạch Điều chỉnh Quạt là một mạch đơn giản có thể điều khiển tốc độ của quạt trần xoay chiều bằng cách thay đổi góc pha của sóng sin AC hay nói cách đơn giản là điều khiển chính xác TRIAC. Như tôi đã đề cập đến tất cả các hoạt động cơ bản của mạch điều chỉnh quạt xoay chiều trong bài viết Điều khiển góc pha AC với Bộ hẹn giờ và PWM 555, chúng tôi sẽ tập trung vào cấu tạo thực tế của mạch. Và một lần nữa nếu bạn muốn biết thêm về chủ đề này, vui lòng kiểm tra bài viết về AC Light Dimmer sử dụng Arduino và Dự án TRIAC.
Sơ đồ khối cơ bản ở trên cho thấy cách thức hoạt động thực tế của mạch. Như tôi đã nói trước đó, chúng ta sẽ tạo tín hiệu PWM với sự trợ giúp của Firebase IoT và NodeMCU, sau đó tín hiệu PWM sẽ được chuyển qua bộ lọc thông thấp sẽ điều khiển cổng của MOSFET sau đó bộ hẹn giờ 555 sẽ điều khiển TRIAC thực tế với sự trợ giúp của bộ ghép quang.
Trong trường hợp này, ứng dụng android thay đổi giá trị trong firebaseDB và ESP liên tục kiểm tra bất kỳ thay đổi nào đang xảy ra với DB đó nếu bất kỳ thay đổi nào xảy ra bị kéo xuống và giá trị được chuyển đổi thành tín hiệu PWM
Vật liệu cần thiết cho mạch điều khiển tốc độ quạt AC
Hình ảnh dưới đây cho thấy vật liệu được sử dụng để xây dựng mạch này, vì nó được làm bằng các thành phần rất chung chung, bạn sẽ có thể tìm thấy tất cả các vật liệu được liệt kê trong cửa hàng sở thích tại địa phương của bạn.
Tôi cũng đã liệt kê các thành phần trong bảng dưới đây với loại và số lượng vì nó là một dự án trình diễn, tôi đang sử dụng một kênh duy nhất để làm như vậy. Nhưng mạch có thể dễ dàng mở rộng theo yêu cầu.
- Đầu nối trục vít 5.04mm - 2
- Đầu nối đầu đực 2,54mm - 1
- Điện trở 56K, 1W - 2
- 1N4007 Diode - 4
- Tụ điện 0,1uF, 25V - 2
- Bộ điều chỉnh điện áp AMS1117 - 1
- Tụ 1000uF, 25V - 1
- Giắc cắm nguồn DC - 1
- Điện trở 1K - 1
- Điện trở 470R - 2
- Điện trở 47R - 2
- Điện trở 82 K - 1
- Điện trở 10 K - 5
- PC817 Optocoupler - 1
- IC NE7555 - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- Tụ điện 3.3uF - 1
- Kết nối dây - 5
- Tụ điện 0,1uF, 1KV - 1
- Bộ vi điều khiển ESP8266 (ESP-12E) - 1
Mạch điều khiển bộ điều chỉnh quạt AC
Sơ đồ cho mạch điều chỉnh quạt IoT được hiển thị bên dưới, mạch này rất đơn giản và sử dụng các thành phần chung để đạt được điều khiển góc pha.
Mạch này được tạo thành từ các thành phần được thiết kế rất cẩn thận. Tôi sẽ đi qua từng cái và giải thích từng khối.
Chip Wi-Fi ESP8266 (ESP-12E):
Đây là phần đầu tiên trong mạch của chúng tôi và là phần mà chúng tôi đã thay đổi rất nhiều thứ, các phần khác vẫn y nguyên, tức là nếu bạn đã theo dõi bài viết trước.
Trong phần này, chúng tôi đã kéo lên các chân Enable, Reset và GPIO0, ngoài ra, chúng tôi đã kéo xuống GPIO15 và Ground Pin, được khuyến nghị bởi datasheet của chip. Đối với lập trình, chúng tôi đã đặt một tiêu đề 3 chân để lộ TX, RX và chân nối đất qua đó chúng tôi có thể lập trình chip rất dễ dàng. Ngoài ra, chúng tôi đã đặt một công tắc xúc giác để đưa GPIO0 xuống đất, đây là bước cần thiết để đưa ESP vào chế độ lập trình. Chúng tôi đã chọn chân GPIO14 làm đầu ra mà qua đó tín hiệu PWM được tạo ra.
Ghi chú! Tại thời điểm lập trình, chúng ta phải nhấn nút và cấp nguồn cho thiết bị bằng giắc thùng DC.
Mạch phát hiện không cắt ngang:
Đầu tiên, trong danh sách của chúng tôi là mạch phát hiện điểm giao nhau không được làm bằng hai điện trở 56K, 1W kết hợp với bốn điốt 1n4007 và bộ ghép quang PC817. Và mạch này có nhiệm vụ cung cấp tín hiệu xuyên 0 cho IC định thời 555. Ngoài ra, chúng tôi đã loại bỏ tín hiệu pha và tín hiệu trung tính để tiếp tục sử dụng nó trong phần TRIAC.
Bộ điều chỉnh điện áp AMS1117-3.3V:
Ổn áp AMS1117 dùng để cấp nguồn cho mạch, mạch có nhiệm vụ cung cấp nguồn cho toàn mạch. Ngoài ra, chúng tôi đã sử dụng hai tụ điện 1000uF và một tụ điện 0,1uF làm tụ điện tách cho IC AMS1117-3.3.
Mạch điều khiển với bộ hẹn giờ NE555:
Hình ảnh trên cho thấy mạch điều khiển bộ định thời 555, bộ định thời 555 được cấu hình theo cấu hình đơn ổn, vì vậy khi một tín hiệu kích hoạt từ mạch phát hiện giao nhau không chạm vào bộ kích hoạt, bộ hẹn giờ 555 bắt đầu sạc tụ điện với sự trợ giúp của điện trở (nói chung), nhưng mạch của chúng tôi có MOSFET thay cho điện trở và bằng cách điều khiển cổng của MOSFET, chúng tôi kiểm soát dòng điện đi đến tụ điện, đó là lý do tại sao chúng tôi kiểm soát thời gian sạc do đó chúng tôi kiểm soát đầu ra của bộ định thời 555.
TRIAC và mạch điều khiển TRIAC:
TRIAC hoạt động như một công tắc chính bật và tắt do đó điều khiển đầu ra của tín hiệu AC. Điều khiển TRIAC bằng cách sử dụng ổ MOC3021 Opto-Triac, nó không chỉ điều khiển TRIAC mà còn cung cấp khả năng cách ly quang học, tụ điện cao áp 0,01uF 2KV và điện trở 47R tạo thành một mạch gọn gàng, bảo vệ mạch của chúng tôi khỏi Các xung điện áp cao xảy ra khi nó được kết nối với tải cảm ứng, Bản chất không hình sin của tín hiệu xoay chiều chuyển mạch là nguyên nhân gây ra các xung đột. Ngoài ra, nó chịu trách nhiệm về các vấn đề hệ số công suất, nhưng đó là một chủ đề cho một bài báo khác.
Bộ lọc thông thấp và MOSFET kênh P (Hoạt động như điện trở trong mạch):
Điện trở 82K và tụ điện 3,3uF tạo thành bộ lọc thông thấp có nhiệm vụ làm mịn tín hiệu PWM tần số cao do Arduino tạo ra. Như đã đề cập trước đó, P-Channel MOSFET hoạt động như một biến trở, điều khiển thời gian sạc của tụ điện. Điều khiển nó là tín hiệu PWM được làm mịn bằng bộ lọc thông thấp.
Thiết kế PCB cho Bộ điều chỉnh quạt trần được điều khiển bằng IoT
PCB cho mạch Điều chỉnh quạt trần IoT của chúng tôi được thiết kế trong một bảng một mặt. Tôi đã sử dụng phần mềm thiết kế Eagle PCB để thiết kế PCB của mình nhưng bạn có thể sử dụng bất kỳ phần mềm thiết kế nào bạn chọn. Hình ảnh 2D của thiết kế bảng của tôi được hiển thị bên dưới.
Việc lấp đất đầy đủ được sử dụng để tạo kết nối đất thích hợp giữa tất cả các bộ phận. Đầu vào 3.3V DC và đầu vào 220 Volt AC được đặt ở phía bên trái, đầu ra nằm ở phía bên phải của PCB. Tệp thiết kế hoàn chỉnh cho Eagle cùng với Gerber có thể được tải xuống từ liên kết bên dưới.
- Thiết kế PCB, GERBER & tệp PDF cho Mạch điều chỉnh quạt trần
PCB thủ công:
Để thuận tiện, tôi đã làm phiên bản PCB thủ công của mình và nó được hiển thị bên dưới.
Với điều này, phần cứng của chúng tôi đã sẵn sàng theo sơ đồ mạch của chúng tôi, bây giờ chúng tôi phải chuẩn bị sẵn ứng dụng Android và Google firebase.
Thiết lập tài khoản Firebase
Đối với bước tiếp theo, chúng tôi cần thiết lập tài khoản firebase. Tất cả thông tin liên lạc sẽ thông qua tài khoản firebase. Để thiết lập tài khoản firebase, hãy truy cập trang web Firebase và nhấp vào 'bắt đầu'.
Sau khi nhấp vào, bạn cần đăng nhập bằng tài khoản Google của mình và
khi bạn đã đăng nhập, bạn cần tạo một dự án bằng cách nhấp vào nút tạo dự án.
Làm như vậy sẽ chuyển hướng bạn đến một trang giống như hình trên. Nhập tên dự án của bạn và nhấp vào tiếp tục.
Một lần nữa, nhấp vào tiếp tục.
Sau khi thực hiện, bạn cần đồng ý với một số điều khoản và điều kiện bằng cách nhấp vào hộp kiểm, tiếp theo, bạn cần nhấp vào nút tạo dự án.
Nếu bạn đã làm mọi thứ một cách chính xác, sau một thời gian, bạn sẽ nhận được một thông báo như thế này. Sau khi hoàn tất, bảng điều khiển firebase của bạn sẽ giống như hình dưới đây.
Bây giờ chúng ta cần thu thập hai thứ từ đây. Để làm điều đó, bạn cần nhấp vào tên của dự án mà bạn vừa tạo. Đối với tôi, đó là CelingFanRegulator, một khi bạn nhấp vào nó, bạn sẽ nhận được một bảng điều khiển tương tự như hình ảnh bên dưới.
Nhấp vào cài đặt, sau đó cài đặt dự án, trang bạn sẽ nhận được sẽ giống như hình ảnh bên dưới.
Bấm vào tài khoản dịch vụ -> bí mật cơ sở dữ liệu.
Sao chép bí mật cơ sở dữ liệu và giữ nó ở nơi nào đó để sử dụng sau này.
Tiếp theo, nhấp vào cơ sở dữ liệu thời gian thực và sao chép URL. cũng giữ đó để sử dụng sau này.
Và đó là tất cả, về phía cơ sở lửa của mọi thứ.
Mã Arduino để điều khiển bộ điều chỉnh quạt với NodeMCU
Một mã Arduino đơn giản chăm sóc giao tiếp giữa firebase và mô-đun ESP-12E, giải thích về mạch và mã được đưa ra bên dưới, Đầu tiên, chúng tôi xác định tất cả các thư viện cần thiết được yêu cầu, bạn có thể tải xuống các thư viện sau từ các liên kết đã cho Thư viện Arduino JSON và thư viện FirebaseArduino
#include
Chúng tôi sẽ sử dụng thư viện FirebaseArduino để thiết lập giao tiếp với firebase.
// Đặt chúng để chạy các ví dụ. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "your SSID" #define WIFI_PASSWORD "pass của bạn
Tiếp theo, chúng tôi đã xác định máy chủ firebase, xác thực firebase, mà chúng tôi đã lưu trước đó khi tạo tài khoản firebase. Sau đó, chúng tôi đã xác định SSID và mật khẩu của bộ định tuyến của chúng tôi.
String Resivedata; # xác định PWM_PIN 14;
Tiếp theo, chúng tôi đã xác định một biến kiểu chuỗi, Resivedata , nơi tất cả dữ liệu sẽ được lưu trữ và chúng tôi cũng xác định PWM_PIN nơi chúng tôi sẽ nhận được đầu ra PWM.
Tiếp theo, trong phần void setup () , chúng tôi làm những việc cần thiết,
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("đ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); Firebase.setString ("Biến / Giá trị", "FirstTestStrig");
Đầu tiên, chúng tôi kích hoạt nối tiếp bằng cách gọi hàm Serial.begin () . Tiếp theo, chúng tôi đã đặt chân PWM là OUTPUT. Chúng tôi bắt đầu kết nối Wi-Fi với sự trợ giúp của hàm WiFi.begin () và chúng tôi chuyển SSID và Mật khẩu vào hàm. Chúng tôi kiểm tra trạng thái kết nối trong vòng lặp trong khi và sau khi kết nối, chúng tôi ngắt vòng lặp và tiếp tục. Tiếp theo, chúng tôi in thông báo được kết nối với địa chỉ IP.
Cuối cùng, chúng tôi bắt đầu liên lạc với căn cứ hỏa lực với Firebase.begin () chức năng và chúng tôi vượt qua FIREBASE_HOST và FIREBASE_AUTH thông số mà chúng tôi đã xác định trước đó. Và chúng ta đặt chuỗi bằng hàm setString () , hàm này đánh dấu sự kết thúc của hàm thiết lập. Trong phần void loop () ,
Resivedata = Firebase.getString ("Biến / Giá trị"); Serial.println (Dữ liệu sống lại); analogWrite (PWM_PIN, map (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Dữ liệu sống lại); chậm trễ (100);
Chúng tôi gọi hàm getString () với Biến / Giá trị nơi dữ liệu được lưu trữ trong firebase, một ví dụ sẽ giống như hình dưới đây-
Sau đó, chúng tôi in giá trị chỉ để gỡ lỗi. Tiếp theo, chúng tôi sử dụng chức năng bản đồ để ánh xạ giá trị, 80 được sử dụng vì trong phạm vi 0 - 80, chúng tôi có thể kiểm soát chính xác cổng của MOSFET và bộ lọc thông thấp RC chịu trách nhiệm phần nào cho giá trị này. Trong phạm vi này, mạch điều khiển góc pha hoạt động chính xác, bạn có thể gọi giá trị là điểm ngọt phần cứng-phần mềm. Nếu bạn đang thực hiện dự án này và phải đối mặt với các vấn đề, bạn cần phải chơi với giá trị và tự xác định kết quả.
Và sau đó, chúng tôi sử dụng hàm analogWrite () để cung cấp dữ liệu và kích hoạt PWM, sau đó, chúng tôi sử dụng lại hàm Serial.println () chỉ để xem lại kết quả và cuối cùng, chúng tôi sử dụng hàm trì hoãn để giảm số lần truy cập vào API firebase sẽ kết thúc chương trình của chúng tôi.
Xây dựng ứng dụng Fan Regulator với MIT App Inventor
Với sự trợ giúp của AppInventor, chúng tôi sẽ tạo ra một ứng dụng android sẽ giao tiếp với firebase và có quyền thay đổi dữ liệu được lưu trữ trong cơ sở dữ liệu firebase.
Để làm điều đó, hãy truy cập trang web appInventors, đăng nhập bằng tài khoản Google của bạn và chấp nhận các điều khoản và điều kiện. Sau khi thực hiện, bạn sẽ được hiển thị với một màn hình giống như hình dưới đây.
Nhấp vào biểu tượng bắt đầu một dự án mới và đặt tên cho nó và nhấn OK, sau khi thực hiện, bạn sẽ được hiển thị với một màn hình như hình dưới đây.
Khi đến đó, trước tiên bạn cần đặt hai nhãn, ở đây là đặt thanh trượt xuống một chút, tiếp theo bạn cần kéo một số mô-đun vào và chúng là mô-đun FirebaseDB và mô-đun web.
Các firebaseDB Module giao tiếp với các căn cứ hỏa lực, các mô-đun web được sử dụng để h andle yêu cầu. Trông giống như hình dưới đây.
Sau khi hoàn tất, bạn cần kéo thanh trượt và một nhãn mà chúng tôi đặt tên là PWM, nếu bạn cảm thấy bối rối tại thời điểm này, bạn có thể xem một số hướng dẫn khác liên quan đến việc tạo ứng dụng với trình phát minh ứng dụng.
Sau khi chúng tôi thực hiện xong quy trình, hãy nhấp vào biểu tượng firebase DB và đặt mã thông báo firebase và URL firebase mà chúng tôi đã lưu trong khi tạo tài khoản firebase.
Bây giờ, chúng ta đã hoàn thành phần thiết kế và chúng ta cần thiết lập phần khối. Để làm điều đó, chúng ta cần nhấp vào nút khối ở góc trên bên phải bên cạnh trình thiết kế.
Sau khi nhấp vào thanh trượt và bạn sẽ thấy một danh sách dài các mô-đun, kéo mô-đun đầu tiên ra và di chuột qua nút vị trí ngón tay cái, bạn sẽ được chào đón với hai mô-đun nữa, kéo cả hai mô-đun ra. Chúng tôi sẽ sử dụng chúng sau.
Bây giờ chúng tôi đính kèm biến thumbposition , chúng tôi làm tròn nó và chúng tôi nhận được giá trị vị trí ngón tay cái. Tiếp theo, chúng tôi nhấp vào firebasedb và kéo ra giá trị thẻ FirebaseDB.storeValue để lưu trữ, mô-đun và gắn nó vào cuối giá trị vị trí ngón tay cái.
Sau khi hoàn tất, chúng tôi lấy ra một hộp văn bản trống bằng cách nhấp vào khối văn bản và đính kèm nó với thẻ, đây là thẻ mà chúng tôi đã đặt trong Arduino IDE để đọc và ghi dữ liệu trên firebase. Bây giờ, hãy đính kèm biến giá trị ngón tay cái vào thẻ giá trị để lưu trữ. Nếu bạn đã thực hiện mọi thứ một cách chính xác, bằng cách di chuyển thanh trượt, bạn sẽ có thể thay đổi các giá trị trong firebaseDB.
- .Aia (tệp đã lưu) và.apk (tệp đã biên dịch)
Điều này đánh dấu sự kết thúc của quá trình tạo ứng dụng của chúng tôi. Ảnh chụp nhanh của ứng dụng android mà chúng tôi vừa tạo hiển thị bên dưới.
Kiểm tra mạch cảm biến cảm ứng dựa trên ESP32
Để kiểm tra mạch, tôi đã kết nối một bóng đèn sợi đốt song song với quạt trần và tôi đã cấp nguồn cho mạch bằng bộ chuyển đổi DC 5V, như bạn thấy trong hình trên, thanh trượt ứng dụng được đặt ở mức thấp, đó là lý do bóng đèn phát sáng ở độ sáng thấp. Và quạt cũng quay chậm.
Cải tiến hơn nữa
Đối với phần trình diễn này, mạch được làm trên PCB thủ công nhưng mạch có thể dễ dàng được xây dựng trên PCB chất lượng tốt, trong các thí nghiệm của tôi, kích thước của PCB thực sự nhỏ do kích thước thành phần, nhưng trong môi trường sản xuất, nó có thể được giảm bớt bằng cách sử dụng các linh kiện SMD rẻ tiền, tôi thấy việc sử dụng bộ định thời 7555 thay vì bộ định thời 555 giúp tăng khả năng kiểm soát rộng rãi, hơn nữa, độ ổn định của mạch cũng tăng lên.