- Trình khởi chạy tên lửa điều khiển bằng giọng nói dựa trên Alexa - Hoạt động
- Bàn di chuột cho Bộ điều khiển khởi động tên lửa NodeMCU của chúng tôi
- Các thành phần cần thiết cho Trình khởi chạy tên lửa được điều khiển bằng Alexa
- Sơ đồ mạch trình khởi chạy tên lửa Arduino
- Xây dựng mạch trên PerfBoard
- Lập trình NodeMCU cho Trình khởi chạy tên lửa được điều khiển bằng Alexa
- Định cấu hình Alexa với Ứng dụng Android Alexa
- Trình khởi chạy tên lửa có điều khiển bằng Alexa - Thử nghiệm
Khi mùa đông đến gần; đến thời điểm đó trong năm khi lễ hội ánh sáng được tổ chức. Vâng, chúng ta đang nói về Diwali, một lễ hội thực sự của Ấn Độ được tổ chức trên toàn cầu. Năm nay, Diwali đã kết thúc, và thấy mọi người đốt pháo, tôi đã nảy ra ý tưởng xây dựng Thiết bị phóng tên lửa điều khiển bằng giọng nói hoặc Igniter dựa trên Alexa, có thể phóng tên lửa chỉ bằng khẩu lệnh, rất an toàn và thú vị cho trẻ em.
Để làm rõ hơn, tôi không ở đây để khuyến khích mọi người đốt bánh quy giòn ở Diwali, chính phủ Ấn Độ đã thực thi các hạn chế đối với bánh quy giòn để hạn chế ô nhiễm và trách nhiệm của chúng tôi là phải tuân thủ. Ý tưởng ở đây là thay vì dành cả ngày để bắn bánh quy, hãy chế tạo một thiết bị đánh lửa tên lửa Arduino điều khiển bằng giọng nói thú vị và bắn một vài tên lửa theo phong cách. Tôi xem đó là đôi bên cùng có lợi.
Trình phóng tên lửa Arduino này sẽ rất khác so với những loại khác. Nó có một khung gầm rất chắc chắn làm từ ván ép, một cơ chế điều khiển dựa trên rơ le đáng tin cậy và một cơ chế rất độc đáo để phóng và nạp đạn cho tên lửa, vì vậy đừng để chậm trễ nữa, hãy bắt tay ngay vào quá trình xây dựng.
Trình khởi chạy tên lửa điều khiển bằng giọng nói dựa trên Alexa - Hoạt động
Cơ chế hoạt động của mạch rất đơn giản, thành phần chính có nhiệm vụ phóng tên lửa là dây nichrome, nó có dạng cuộn dây đốt nóng. Dây nichrome này sẽ hoạt động như bộ phận đánh lửa của tên lửa. Làm sao? Tôi sẽ chỉ cho bạn sau.
Như bạn có thể thấy trong hình trên, dây nichrome có dạng cuộn dây nóng, đối với tôi, đó là cách dễ nhất để lấy nó. Chúng ta phải kéo nó thẳng và uốn cong để tạo thành một hình dạng giống như trong hình dưới đây.
Khi chúng tôi đã hoàn thành việc này, chúng tôi sẽ cung cấp năng lượng cho nó bằng pin axít chì 12V và nó sẽ phát sáng nóng đỏ. Điều này sẽ đủ để đốt cháy lớp bột đen bên trong tên lửa và nó sẽ hoạt động giống như liều cầu chì thông thường. Lưu ý rằng đây là bộ điều khiển phóng tên lửa công suất cao, dòng điện cần thiết để làm cho dây nóng đỏ là cao. Làm theo lời khuyên an toàn khi làm việc với dòng điện cao.
Sau khi kiểm tra xong, điều duy nhất còn lại là quá trình kiểm soát, chúng tôi sẽ thực hiện khi tiếp tục trong bài viết.
Bàn di chuột cho Bộ điều khiển khởi động tên lửa NodeMCU của chúng tôi
Đối với bản dựng này, chúng ta hãy tạo một bệ phóng. Với việc hoàn thành bảng khởi chạy, chúng ta có thể dễ dàng tải lại một số cracker và khởi chạy chúng rất dễ dàng. Tôi đã xây dựng một bệ phóng giống như trong hình bên dưới.
Hãy xem xét từng bước quá trình xây dựng bệ khởi động. Đối với hai bên của khung, tôi đã sử dụng hai miếng ván ép dài (25X3X1,5) inch. Đối với phần trên cùng, tôi đã sử dụng một phần ván ép dài (20X3X1,5) inch và đối với phần đế, tôi đã sử dụng một miếng gỗ dán dài (20X6X1,5) inch, sẽ giúp nó ổn định hơn một chút. Hình ảnh dưới đây sẽ cho bạn một ý tưởng rõ ràng.
Bây giờ, đã đến lúc chế tạo dây tóc nichrome, sẽ hoạt động như một cầu chì cho tên lửa của chúng ta. Đối với điều đó, tôi đã mua một cuộn dây đốt nóng đế bằng dây nichrome 1000W, làm thẳng nó lên và tạo ra cấu trúc được hiển thị bên dưới. Tôi đã phải sử dụng hai chiếc kìm và máy cắt bên để tạo hình dây nichrome như hình dưới đây.
Sau khi hoàn thành việc này, tôi chia miếng ván ép 20 inch thành bảy phần, đo nó và khoan lỗ để đặt các sợi dây nichrome vào, và sau khi hoàn thành, nó trông giống như các hình ảnh bên dưới.
Nhưng trước khi đặt các dây tóc, tôi đã gắn dây đồng dày 1 mm vuông vào mỗi thiết bị đầu cuối và luồn chúng qua các lỗ, khi mọi thứ đã hoàn thành, nó sẽ giống như hình dưới đây.
Như bạn có thể thấy, tôi cũng đã cho keo hai thành phần vào để giữ cố định dây và các sợi. Sau khi hoàn tất, bảng khởi chạy của chúng tôi đã hoàn tất. Và như bạn có thể thấy từ hình ảnh đầu tiên trong phần này, tôi đã gắn trực tiếp dây tóc vào PCB vì chúng tôi đang xử lý dòng điện rất cao nên tôi không bận tâm đến việc đặt một đầu nối vít, và điều đó đánh dấu phần cuối của khung máy của chúng tôi. quy trình xây dựng.
Các thành phần cần thiết cho Trình khởi chạy tên lửa được điều khiển bằng Alexa
Đối với mặt phần cứng của mọi thứ, chúng tôi đã sử dụng các bộ phận rất chung chung mà bạn có thể lấy khá dễ dàng từ cửa hàng sở thích tại địa phương của bạn, danh sách đầy đủ các mặt hàng được cung cấp bên dưới.
- 12V-Relay - 3
- Bóng bán dẫn BD139 - 3
- 1N4004 Diode - 3
- Thiết bị đầu cuối trục vít 5,08 mm - 1
- LM7805 - Bộ điều chỉnh điện áp - 1
- Tụ tách 100uF - 2
- Điốt Zener 5.1V - 1
- Bo mạch NodeMCU (ESP8266-12E) - 1
- Bảng hoàn hảo chấm - ½
- Kết nối dây - 10
Sơ đồ mạch trình khởi chạy tên lửa Arduino
Dưới đây là sơ đồ hoàn chỉnh cho Trình khởi chạy tên lửa có điều khiển bằng Alexa. Tôi đã sử dụng các thẻ để kết nối một ghim này với một ghim khác. Nếu bạn nhìn đủ gần, sẽ không khó để diễn giải giản đồ.
Việc xây dựng mạch khá đơn giản, vì vậy tôi sẽ không đi sâu vào chi tiết.
Đầu tiên, chúng ta có IC1 là một bộ điều chỉnh điện áp LM7805, với các tụ điện tách 100uF của nó được ký hiệu là C1 và C2. Sau đó, chúng tôi có trung tâm của dự án, bảng NodeMCU, nơi chứa mô-đun ESP-12E. Vì chúng ta đang sử dụng pin axit-chì 12V để cung cấp năng lượng cho toàn bộ mạch, đó là lý do tại sao chúng ta phải sử dụng LM7805 để chuyển đổi nó thành 12V sang 5V để cấp nguồn cho bảng NodeMCU. Chúng tôi đang làm như vậy vì bộ điều chỉnh điện áp AMS1117 trên bo mạch không đủ để chuyển đổi trực tiếp 12V thành 3.3V, đó là lý do tại sao 7805 là cần thiết.
Tiếp tục, chúng tôi có ba rơ le 12V, trong phần trình diễn này, chúng tôi đang sử dụng ba rơ le, nhưng như chúng tôi đã đề cập trước đây, bệ phóng có một chỗ dành sẵn cho 7 tên lửa. Bạn có thể chỉnh sửa mã một chút và đặt tất cả bảy tên lửa để phóng hoàn toàn. Ba rơ le được điều khiển bởi một T1, T2 và T3 là ba bóng bán dẫn NPN và chúng đủ để điều khiển tải của một thực. Cuối cùng, chúng ta có ba điốt tự do bảo vệ mạch khỏi các xung điện áp cao do rơle tạo ra.
Xây dựng mạch trên PerfBoard
Như bạn có thể thấy từ hình ảnh chính, ý tưởng là tạo ra một mạch đơn giản có thể xử lý một lượng lớn dòng điện trong một thời gian ngắn, theo thử nghiệm của chúng tôi, 800 mili giây là đủ để thắp sáng một tờ giấy. Vì vậy, chúng tôi xây dựng mạch trên một tấm bảng điều khiển và kết nối tất cả các kết nối chính bằng dây đồng dày 1 mm vuông. Sau khi chúng tôi hàn xong bảng. Sau khi chúng tôi hoàn thành, nó trông giống như một cái gì đó được hiển thị bên dưới.
Lập trình NodeMCU cho Trình khởi chạy tên lửa được điều khiển bằng Alexa
Bây giờ phần cứng đã sẵn sàng, đã đến lúc bắt đầu viết mã cho trình phóng tên lửa điều khiển bằng giọng nói dựa trên Alexa của chúng tôi. Bạn có thể tìm thấy mã hoàn chỉnh ở cuối trang này, nhưng trước khi chúng ta bắt đầu, điều quan trọng là phải thêm các thư viện bắt buộc vào Arduino IDE của bạn. Đảm bảo bạn thêm đúng thư viện từ liên kết được cung cấp bên dưới, nếu không mã sẽ tạo ra lỗi khi biên dịch.
- Tải xuống Thư viện Espalexa
Sau khi thêm các thư viện cần thiết, bạn có thể tải lên trực tiếp mã được cung cấp ở cuối trang này để kiểm tra xem mạch có hoạt động hay không. Nếu bạn muốn biết mã hoạt động như thế nào, hãy tiếp tục đọc.
Giống như mọi khi, chúng tôi bắt đầu chương trình bằng cách thêm các tệp tiêu đề bắt buộc và xác định tên ghim và thông tin đăng nhập cho điểm phát sóng của chúng tôi.
#include
Tiếp tục với mã của chúng tôi, chúng tôi có các nguyên mẫu hàm và định nghĩa hàm gọi lại.
Hàm connectToWiFi () được sử dụng để kết nối với mạng Wi-Fi và hàm này trả về true khi Wi-Fi được kết nối thành công.
Tiếp theo, chúng ta có các hàm gọi lại của mình , các hàm này sẽ được gọi khi chúng ta đưa ra lệnh cho Alexa, API espalexa xử lý các hàm này
void allrockets (uint8_t độ sáng); void firstrocket (uint8_t độ sáng); void secondrocket (uint8_t độ sáng); void thirdrocket (uint8_t độ sáng);
Tiếp theo, chúng tôi xác định Tên thiết bị. Các tên thiết bị đã xác định này sẽ được phản ánh trên ứng dụng Alexa và khi chúng tôi nói một lệnh, Alexa sẽ nhận ra các thiết bị theo những tên này. Vì vậy những cái tên này rất quan trọng.
// Tên thiết bị String First_Device_Name = "Tất cả tên lửa"; String Secound_Device_Name = "Tên lửa Một"; String Third_Device_Name = "Tên lửa Hai"; String Forth_Device_Name = "Tên lửa ba";
Tiếp theo, chúng tôi xác định một biến wifiStatus boolean , sẽ giữ trạng thái kết nối của Wi-Fi. Cuối cùng, chúng ta tạo một đối tượng Espalexa espalexa. Chúng tôi sẽ sử dụng đối tượng này để cấu hình NodeMCU.
// kiểm tra trạng thái wifi boolean wifiStatus = false; // Đối tượng Espalexa Espalexa espalexa;
Tiếp theo, chúng ta có phần void setup () . Trong phần này, chúng tôi khởi tạo giao tiếp nối tiếp để gỡ lỗi bằng hàm Serial.begin () . Chúng tôi đặt tất cả các chân đã xác định trước đó làm đầu ra với hàm pinMode () , tiếp theo chúng tôi gọi hàm connectToWiFi () , nó sẽ cố gắng kết nối với Wi-Fi trong mười lăm lần nếu nó được kết nối, nó sẽ trả về true nếu không được kết nối, nó sẽ trả về false và mã sẽ thực hiện một vòng lặp while () mãi mãi. Nếu kết nối Wi-Fi thành công, chúng tôi thêm các thiết bị đã xác định trước đó vào đối tượng Alexa bằng cách sử dụng hàm espalexa.addDevice (). Hàm này nhận hai đối số, đầu tiên là Tên thiết bị, thứ hai là tên của hàm gọi lại, khi chúng ta đưa ra lệnh cho Alexa, hàm liền kề sẽ được gọi. Sau khi thực hiện xong việc đó cho cả bốn thiết bị của mình, chúng tôi gọi các phương thức begin () cho đối tượng espalexa.
void setup () {Serial.begin (115200); // Bật Serial để gỡ lỗi tin nhắn pinMode (ROCKET_1_PIN, OUTPUT); // thiết lập chân ESP làm pinMode đầu ra (ROCKET_2_PIN, OUTPUT); // thiết lập chân ESP làm pinMode đầu ra (ROCKET_3_PIN, OUTPUT); // thiết lập chân ESP làm đầu ra wifiStatus = connectToWiFi (); // Kết nối với Mạng Wi-Fi cục bộ nếu (wifiStatus) {// thiết lập tất cả thiết bị espalexa // Xác định thiết bị của bạn tại đây. espalexa.addDevice (First_Device_Name, allrockets); // định nghĩa đơn giản nhất, trạng thái mặc định tắt espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Tên_Device_thứ ba, tên miền thứ hai); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {while (1) {Nối tiếp. println ("Không thể kết nối với WiFi. Vui lòng kiểm tra dữ liệu và đặt lại ESP."); chậm trễ (2500); }}}
Trong phần vòng lặp , chúng ta gọi phương thức loop () của đối tượng espalexa sẽ luôn kiểm tra bất kỳ lệnh nào đến và gọi hàm callback nếu thấy nó đúng.
void loop () {espalexa.loop (); trì hoãn (1); }
Tiếp theo, chúng ta xác định tất cả các hàm gọi lại của mình, trong phần này, chúng ta sẽ xác định điều gì sẽ xảy ra khi hàm gọi lại này được gọi. Khi hàm allrockets () được gọi, tất cả các tên lửa sẽ được phóng cùng nhau. Vì vậy, chúng ta sẽ bật rơ le trong 00 ms và sau đó, chúng ta sẽ tắt các rơ le. Trong các thử nghiệm của tôi, tôi nhận thấy rằng đối với chiều dài được chỉ định của dây nichrome, tôi cần độ trễ 800ms để làm nóng hoàn toàn dây, điều này có thể đúng với trường hợp của bạn. Vì vậy hãy chọn độ trễ cho phù hợp.
void allrockets (uint8_t độ sáng) {if (độ sáng == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, CAO); chậm trễ (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Tất cả các tên lửa đã được phóng"); }}
Tiếp theo, chúng ta có tên lửa đầu tiên (), điều này được gọi khi chúng ta gọi Alexa và nói lệnh tie để phóng tên lửa đầu tiên. Quá trình diễn ra tương tự, chúng ta bật rơ le trong 800ms và tắt.
void firstrocket (uint8_t độ sáng) {if (độ sáng == 255) {digitalWrite (ROCKET_1_PIN, HIGH); chậm trễ (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Tên lửa đầu tiên được phóng"); }}
Cuối cùng, chúng ta có hàm connectToWiFi () . Chức năng này khá chung chung và dễ hiểu, vì vậy tôi sẽ không đi vào chi tiết về chức năng này. Chức năng này kết nối ESP với Wi-Fi và trả về trạng thái kết nối.
boolean connectToWiFi () {trạng thái boolean = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, mật khẩu); Serial.println (""); Serial.println ("Đang kết nối với WiFi"); // Chờ kết nối Serial.print ("Đang kết nối…"); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); if (i> 15) {state = false; phá vỡ; } i ++; } Serial.println (""); if (state) {Serial.print ("Đã kết nối với"); Serial.println (ssid); Serial.print ("Địa chỉ IP:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Kết nối không thành công."); } trả về trạng thái; }
Hàm này được định nghĩa đánh dấu sự kết thúc của phần mã hóa.
Định cấu hình Alexa với Ứng dụng Android Alexa
Alexa sẽ chỉ chấp nhận các lệnh nếu và chỉ khi nó nhận ra thiết bị esp8866. Để làm được điều đó, chúng ta cần định cấu hình Alexa với sự trợ giúp của ứng dụng Alexa trên Android. Một điều quan trọng cần làm trước khi tiếp tục là chúng ta cần đảm bảo rằng Alexa được định cấu hình với ứng dụng Android của chúng ta.
Để làm điều đó, hãy chuyển đến phần khác của ứng dụng Alexa và nhấp vào tùy chọn Thêm thiết bị, nhấp vào Ánh sáng, sau đó cuộn xuống ở cuối trang và nhấp vào Khác.
Tiếp theo, bạn nhấn vào KHÁM PHÁ THIẾT BỊ và đợi một lát sau Alexa sẽ tìm thấy thiết bị mới. Khi Alexa tìm thấy các thiết bị, bạn cần nhấp vào chúng và thêm chúng vào các vị trí / danh mục tương ứng và bạn đã hoàn tất.
Trình khởi chạy tên lửa có điều khiển bằng Alexa - Thử nghiệm
Đối với quá trình thử nghiệm, tôi đã đến khu vườn của mình, kéo tất cả các cầu chì từ tên lửa, đặt chúng vào vị trí tương ứng của chúng, và tôi hét lên Alexa…! Bật tất cả Tên lửa bằng các ngón tay của tôi. Và tất cả các tên lửa đã bay đánh dấu nỗ lực của tôi là một thành công lớn. Nó trông giống như thế này.
Cuối cùng, một lần nữa tôi nói Alexa…! Bật tất cả tên lửa để có được hình ảnh hoành tráng về các sợi mà bạn có thể xem bên dưới.
Để có trải nghiệm hoành tráng hơn, tôi thực sự khuyên bạn nên xem video.