3. Nhiệm vụ nghiên cứu Nghiên cứu về vi điều khiển Arduino, cảm biến nhiệt độ và độ ẩm DHT11, phần mềm mô phỏng proteus, ngôn ngữ C và môi trường phát triển tích hợp Arduino IDE. Nghiên cứu Module Wifi Esp8266, phần mềm Virtuino trên điện thoại. 4. Phương pháp nghiên cứu Trong đề tài này em đã sử dụng các phương pháp nghiên cứu: Phương pháp nghiên cứu lí thuyết: tìm hiểu khái niệm, cấu tạo, các thông số kĩ thuật, sơ đồ nối chân giữa Arduino Uno với DHT11 và Esp8266. Tìm hiểu cách sử dụng Apps Virtuino, proteus, ngôn ngữ C và Arduino IDE. Phương pháp nghiên cứu thực nghiệm: thiết kế mạch điều khiển từ xa về nhiệt độ và độ ẩm trên điện thoại di động thông qua Module Wifi Esp8266. 5. Đối tượng nghiên cứu Vi điều khiển Arduino Uno, Module Wifi Esp8266 và cảm biến nhiệt độ và độ ẩm DHT11. 6. Phạm vi nghiên cứu Điều khiển thiết bị nhiệt độ, độ ẩm từ xa bằng điện thoại di dộng thông qua Module Wifi Esp8266. 7. Cấu trúc khóa luận Ngoài phần mở đầu, kết luận, hướng phát triển và tài liệu tham khảo. Khóa luận còn có phần nội dung được chia làm 3 chương. Chương 1. Tổng quan. Chương 2. Mô phỏng và lập trình cho Arduino. Chương 3. Thiết kế, lập trình và lắp đặt mạch điều khiển từ xa về nhiệt độ, độ ẩm trên điện thoại di động thông qua Module Wifi Esp8266.
NỘI DUNG
TỔNG QUAN
1.1 Giới thiệu vi điều khiển Arduino Uno
1.1.1 Lịch sử hình thành Arduino
Arduino ra đời với mục tiêu giúp sinh viên nhanh chóng tạo ra thiết bị điện tử Vào năm 2002, Massimo Banzi, một giáo sư phần mềm, được mời đến IDII (Viện thiết kế tương tác Ivrea) để phát triển lĩnh vực “máy tính vật lý” trong bối cảnh ngân sách hạn hẹp và ít công cụ hỗ trợ.
Vào thời điểm đó, sinh viên sử dụng vi điều khiển Stamp BASIC do công ty California Parallax phát triển Stamp BASIC là một bo mạch nhỏ gọn, tích hợp các thành phần thiết yếu như nguồn điện, vi điều khiển, bộ nhớ và cổng vào-ra để kết nối với các phần cứng khác, sử dụng ngôn ngữ lập trình BASIC.
Banzi phát hiện ra hai vấn đề ở Stamp BASIC [1]:
Không có đủ khả năng xử lý cho một số dự án của sinh viên.
Có giá khoảng 100 USD khá cao so với sinh viên.
Mẫu thử nghiệm ban đầu của Arduino được thực hiện vào năm 2005 với một thiết kế đơn giản Một năm sau đó, Massimo Banzi chính thức đặt tên cho nó là Arduino.
Hình 1.1 Mẫu thử nghiệm ban đầu [1]
1.1.2.1 Định nghĩa về vi điều khiển Arduino
Arduino là bo mạch vi xử lý cho phép lập trình và tương tác với các thiết bị phần cứng như cảm biến và động cơ Điểm nổi bật của Arduino là môi trường phát triển dễ sử dụng và ngôn ngữ lập trình dễ học Sự phổ biến của Arduino đến từ mức giá thấp và tính chất nguồn mở của cả phần cứng lẫn phần mềm.
Arduino là nền tảng điện tử mã nguồn mở, cho phép người dùng xây dựng ứng dụng điện tử dễ dàng Nó bao gồm một board mạch vi điều khiển có thể lập trình và phần mềm IDE (Integrated Development Environment) hỗ trợ soạn thảo, biên dịch mã và nạp chương trình vào board.
Hệ thống Arduino có khả năng tương tác đa dạng với nhiều thiết bị khác nhau, bao gồm các cảm biến đo nhiệt độ, độ ẩm, vận tốc và màu sắc vật thể Ngoài ra, nó còn kết nối với các thiết bị hiển thị như màn hình LCD và đèn LED Hệ thống này hỗ trợ kết nối có dây và không dây thông qua các module chức năng như 3G, Wifi và Bluetooth, cùng với các tính năng định vị GPS và nhắn tin SMS.
Arduino là một board mạch nhỏ nhưng rất đa năng, có thể áp dụng trong nhiều lĩnh vực khác nhau Với phần mềm Arduino IDE, kết nối USB và board mạch Arduino, người dùng có thể dễ dàng phát triển nhiều ứng dụng sáng tạo.
Board mạch Arduino được phân loại thành hai loại chính: loại board mạch chính với chip ATMega và loại mở rộng chức năng, thường được gọi là Shield.
Arduino, từ khi ra đời, đã tiến hóa từ một hệ thống phức tạp với nhiều linh kiện và kết nối thành một mạch nhỏ gọn, dễ dàng sử dụng trong lòng bàn tay Ngày nay, Arduino được nhiều hãng điện tử trên toàn thế giới nghiên cứu và sản xuất, với nhiều loại và kích thước khác nhau, mang lại sự tiện lợi trong việc điều khiển thiết bị.
Hình 1.2 Một số board Arduino thông dụng [1]
Arduino boards and Arduino-compatible boards utilize shields, which are expansion boards that connect via the header pins of the Arduino These shields can serve various functions, including motor control, GPS, Ethernet connectivity, LCD displays, or even breadboards.
1.1.3 Giới thiệu về Board Arduino Uno
Arduino có nhiều phiên bản với các chức năng và mục đích khác nhau, trong đó Arduino Uno nổi bật với chi phí hợp lý và tính linh động cao Đây là một trong những phiên bản được ứng dụng rộng rãi nhất và hiện đã phát triển đến thế hệ thứ.
Board Arduino Uno bao gồm nhiều thành phần khác nhau, nhưng để hiểu và sử dụng hiệu quả, chúng ta cần chú ý đến các thành phần được đánh số trong hình 1.3.
1 Cổng USB là cổng giao tiếp để nạp chương trình điều khiển từ máy vi tính lên vi điều khiển Đồng thời nó cũng là giao tiếp nối tiếp để truyền dữ liệu giữa vi điều khiển với máy tính [3].
2 Jack nguồn để cung cấp nguồn từ 9V đến 12V lấy năng lượng trực tiếp từ pin hoặc Ắc – quy trong trường hợp không thể lấy nguồn từ cổng USB như đã nói ở trên [3].
3 Hàng chân thứ nhất được đánh số từ 0 đến 13 là các chân Digital, nhận vào hoặc xuất ra các tín hiệu số Ngoài ra có một chân đất (GND) và chân điện áp tham chiếu (AREF) [3].
4 Hàng chân thứ hai là các chân năng lượng, chủ yếu liên quan đến điện áp đất, nguồn [3].
MÔ PHỎNG VÀ LẬP TRÌNH CHO ARDUINO
2.1 Phần mềm mô phỏng Proteus.
2.1.1 Tổng quan về phần mềm
Proteus là phần mềm mô phỏng mạch điện tử, cho phép giả lập linh kiện trên máy tính Phần mềm này giúp người dùng thao tác dễ dàng và xử lý trực tiếp mà không cần nối dây hay sử dụng các dụng cụ chuyên dụng để thực hành.
Proteus nổi bật hơn các phần mềm khác nhờ khả năng mô phỏng đa dạng linh kiện điện tử và thiết bị hiển thị, mang lại kết quả mô phỏng trực quan giống như mạch điện tử thực tế Phần mềm cũng hỗ trợ mô phỏng các chip vi điều khiển với chương trình do người dùng nạp.
Phần mềm bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều khiển như PIC, AVR, MCS-51,
Phần mềm gồm 2 chương trình chính:
- ISIS cho phép mô phỏng mạch.
- ARES dùng để vẽ mạch in.
2.1.2 Cách sử dụng phần mềm Proteus
Phần mềm Proteus là công cụ hỗ trợ đắc lực trong việc thiết kế sơ đồ nguyên lý, mô phỏng mạch điện và thiết kế mạch in Để sử dụng hiệu quả phần mềm này, máy tính cần đáp ứng cấu hình tối thiểu.
- Bộ xử lí Pentium 1.6 GHz trở lên, bộ nhớ RAM tối thiểu là 128Mb, ổ cứng
40 Gb trở lên, ổ CD – ROM 52X, màn hình 17 inchs trở lên.
- Chạy trên môi trường Windows 2000, Nt hoặc Windows XP.
Click vào biểu tượng ISIS trên màn hình để chạy chương trình.
Hình 2.1 Khung làm việc chung của phần mềm Proteus
Phần mềm Proteus bao gồm các thanh sau:
- Thanh công cụ chuẩn với các nút lệnh được thể hiện như ở bảng 2.1
Bảng 2.1 Thanh công cụ chuẩn [8]
Dùng để vẽ sơ đồ nguyên lí và mô phỏng Liên thông ARES để vẽ mạch in
Làm “tươi” màn hình và các chỉnh sửa Bật/tắt lưới cho bản vẽ
Chọn gốc tọa độ Các công cụ phóng to, thu nhỏ toàn mạch Các công cụ chỉnh sửa, tạo thư viện linh kiện Xuất danh sách linh kiện
Kiểm tra lỗi mạch điện (ERC) Tìm kiếm linh kiện
Undo/Redo Các lệnh tác động lên đối tượng đã được chọn trước Chỉnh sửa thuộc tính chung
- Thanh linh kiện với các nút lệnh cho ở bảng 2.2
Chỉnh sửa nhanh thuộc tính linh kiện Nhóm các linh kiện vừa sử dụng Thêm điểm nối nơi giao nhau của đường dây Đặt tên cho dây dẫn
Thêm văn bản vào bảng vẽ Nối dây dạng bus
Mạch phụ Nguồn và GND
Vẽ đồ thị mô phỏng Các thiết bị tạo tính hiệu (sin, vuông, ) Đầu dò dòng điện, điện áp
Các thiết bị đo dạng sóng cho phép người dùng dễ dàng đưa linh kiện vào vùng làm việc thông qua thao tác kéo và thả (drag-and-drop) Để thực hiện điều này, người dùng chỉ cần chọn linh kiện và giữ chuột trái, sau đó di chuyển đến vị trí thiết kế mong muốn Nếu linh kiện không có sẵn trên thanh linh kiện, người dùng có thể thêm mới từ các thư viện có sẵn bằng cách chọn menu Library/Pick parts from library hoặc nhấn phím P.
2.1.3 Thư viện Arduino trong Proteus
Chương trình Proteus không tích hợp sẵn mạch Arduino, vì vậy bạn cần tải thư viện từ LIB_PROTEUS 8 Sau khi tải về, hãy sao chép thư viện vào thư mục Lib trong thư mục cài đặt của Proteus.
Thư viện bao gồm các linh kiện sau [8]:
- Arduino Uno (phiên bản chip ATMega328 chân DIP).
- Arduino Uno (phiên bản chip ATMega328 chân SMD).
- Cảm biến siêu âm Ultrasonic V2.
2.2 Giới thiệu về môi trường tích hợp Arduino IDE.
Môi trường phát triển tích hợp (IDE) Arduino là ứng dụng đa nền tảng được phát triển bằng Java, dựa trên IDE cho ngôn ngữ lập trình xử lý Nó được thiết kế để giúp người mới bắt đầu làm quen với lập trình và phát triển phần mềm IDE Arduino bao gồm trình soạn thảo với các tính năng như làm nổi bật cú pháp, khớp dấu ngoặc, thụt đầu dòng tự động, và cho phép biên dịch cũng như tải lên chương trình vào bo mạch chỉ với một cú nhấp chuột Chương trình viết cho Arduino được gọi là “sketch”.
Hình 2.2 Giao diện của Arduino IDE
Giao diện của Arduino IDE được chia thành ba vùng chính, trong đó vùng Toolbar bao gồm các phím lệnh quan trọng như kiểm tra chương trình, nạp chương trình, lưu, mở hoặc tạo mới chương trình.
Hình 2.3 Vùng Toolbar của Arduino IDEBảng 2.3 các chức năng trong vùng Toolbar [9]
Kiểm tra chương trình có viết đúng cú pháp hay không Biên dịch chương trình và nạp vào Arduino
Mở một Sketch đã lưu trước đó Lưu chương trình lại
Mở màn hình hiển thị Serial Monitor để gửi và nhận dữ liệu giữa máy tính và board Arduino (thông qua chuẩn RS232)
Current tab: Sketch đang được mở hiện tại, có thể có nhiều tab tương ứng với nhiều Sketch hiện trên thanh đó [9].
+ File: trong file menu, ở mục Examples Đây là nơi chứa code mẫu, ví dụ như cách sử dụng chân digital, analog, sensor,
+ Sketch: trong menu Sketch có [9]:
1 Verify/Compile: chức năng kiểm tra lỗi code.
2 Show Sketch Folder: hiển thị nơi code được lưu.
3 Include Library: thêm thư viện cho IDE.
4 Add File: thêm vào một tab code mới.
+ Tool: trong Tool ta quan tâm đến các mục mạch và cổng nối tiếp là Board và Serial Port.
Mục Board giúp người dùng chọn lựa bo mạch phù hợp với loại bo mạch đang sử dụng Việc lựa chọn bo mạch rất quan trọng, vì nếu chọn sai, sẽ xảy ra lỗi khi nạp chương trình vào chip.
Mục Serial Port cho phép thiết lập cổng giao tiếp giữa máy tính và board Arduino, nơi người dùng chọn cổng COM phù hợp Sau khi cài đặt Driver, máy tính sẽ hiển thị thông báo về cổng COM của Arduino, và người dùng chỉ cần chọn đúng cổng để nạp code; nếu chọn sai, việc nạp code sẽ không thành công Vùng viết chương trình là nơi người dùng viết các dòng lệnh để điều khiển hoạt động của vi điều khiển.
Hình 2.4 Minh họa vùng viết chương trình
Chương trình Arduino được phát triển bằng ngôn ngữ C hoặc C++, với Arduino IDE cung cấp thư viện phần mềm “Wring” từ dự án lắp ráp ban đầu, giúp đơn giản hóa việc thực hiện các thao tác đầu vào/ra Người dùng chỉ cần định nghĩa hai hàm để xây dựng chương trình điều hành theo chu kỳ.
Setup (): hàm chạy một lần duy nhất vào lúc bắt đầu một chương trình dùng để khởi tạo các thiết lập.
Loop (): hàm được gọi lặp lại liên tục cho đến khi bo mạch được tắt đi.
Khi bật điện cho bảng mạch Arduino hoặc khi thực hiện reset hay nạp chương trình mới, hàm setup() sẽ được gọi đầu tiên Sau khi hàm setup() hoàn tất, Arduino sẽ chuyển sang thực hiện hàm loop() và tiếp tục lặp lại hàm này một cách vô hạn cho đến khi nguồn điện được tắt.
Vùng thông báo chính là khu vực màu đen nằm ở cuối giao diện, có chức năng thông báo về tình trạng lỗi của chương trình cũng như vị trí lưu file.
Hình 2.6 Minh họa vùng thông báo 2.3 Lập trình điều khiển với Arduino
2.3.1 Cấu trúc của một chương trình
Một chương trình hiển thị trên giao diện của Arduino được gọi là sketch Sketch bao gồm hai hàm cơ bản là setup() và loop(), và cả hai hàm này là bắt buộc trong mọi chương trình Arduino.
Hàm setup() được gọi khi hàm sketch khởi động, có chức năng khởi tạo biến, thiết lập chế độ chân (nhận hoặc xuất tín hiệu) và khởi động thư viện Hàm này chỉ chạy một lần duy nhất sau khi cấp nguồn hoặc reset mạch.
Hàm loop() là phần cốt lõi của chương trình Arduino, chạy liên tục sau khi hàm setup() hoàn thành Nó thực hiện tất cả các đoạn mã trong vòng lặp cho đến khi nguồn bị mất hoặc công tắc reset được nhấn Thời gian hoàn thành một vòng loop phụ thuộc vào nội dung mã bên trong Chức năng của hàm loop() tương tự như vòng lặp while() trong ngôn ngữ C, điều khiển toàn bộ mạch của chương trình.
Một chương trình Arduino với hai hàm setup () và loop () sẽ được viết như sau: void setup() {
// code khởi tạo sẽ đưuọc viết ở đây
// code phân công việc mà ta muốn board Arduino thực hiện sẽ viết ở đây }
2.3.2 Ngôn ngữ lập trình cho Arduino
THIẾT KẾ, LẬP TRÌNH VÀ LẮP ĐẶT MẠCH ĐIỀU KHIỂN TỪ XA VỀ NHIỆT ĐỘ, ĐỘ ẨM TRÊN ĐIỆN THOẠI DI ĐỘNG THÔNG
3.1 Phân tích mạch điều khiển
Phân tích mạch là một bước quan trọng trong việc xác định kết cấu và thông số của thiết bị, từ đó tạo nền tảng cho thiết kế, điều khiển và lắp đặt hiệu quả.
Phân tích mạch điều khiển thiết bị sử dụng Module Wifi ESP8266 V1 bao gồm sơ đồ khối tổng quát, nguyên lý hoạt động, lưu đồ thuật toán và chương trình điều khiển Sơ đồ khối cung cấp cái nhìn tổng quan về cấu trúc mạch, trong khi nguyên lý hoạt động giải thích cách thức hoạt động của module Wifi Lưu đồ thuật toán mô tả quy trình điều khiển, giúp người dùng hiểu rõ hơn về các bước thực hiện Cuối cùng, chương trình điều khiển là phần mềm cần thiết để điều khiển thiết bị thông qua module ESP8266, đảm bảo sự kết nối và tương tác hiệu quả.
3.1.1 Sơ đồ khối tổng quát
Mạch điều khiển thiết bị sử dụng Arduino Uno kết nối với Module Wifi ESP8266 V1 và cảm biến DHT11 được mô tả qua sơ đồ khối tổng quát như hình 3.1.
Hình 3.1 Sơ đồ khối tổng quát
- Khối nguồn: gồm có nguồn cấp cho Arduino Uno là 5V-DC lấy từ máy tính điện tử thông qua cổng USB.
- Khối điều khiển trung tâm: board Arduino Uno có chức năng nhận tín hiệu từ cảm biến DHT11 và gủi tín hiệu sang Module Wifi Esp8266 V1.
Khối phát tín hiệu điều khiển sử dụng smartphone với Module Wifi ESP8266, cho phép nhận tín hiệu từ Arduino Uno và truyền tải qua wifi lên nền tảng web ThingSpeak.
- Khối thiết bị ngoại vi: cảm biến nhiệt độ và độ ẩm DHT11 có chức năng nhận giá trih nhiệt độ và độ ẩm từ môi trường.
Quy trình kết nối (khi giới thiệu các thiết bị đã có sơ đồ kết nối):
- Trước tiên, kết nối Arduino Uno với Module Wifi Esp8266 V1.
- Tiếp theo, kết nối cảm biến nhiệt độ, độ ẩm DHT11 với Arduino Uno.
- Cắm dây USB 5V vào Arduino.
3.1.2 Nguyên lý hoạt động của hệ thống Đầu tiên, khởi động phần mềm Virtuino Tiếp theo, khởi động chương trình - hệ thống sẽ thiết lập các thông số cần thiết và nhận tín hiệu từ Arduino IDE.
Để thiết lập các cổng của bo mạch Arduino, người dùng cần sử dụng phần mềm Arduino IDE để viết chương trình điều khiển Mạch điều khiển sẽ kiểm tra tiêu chuẩn truyền UART (9600) và đọc giá trị nhiệt độ, độ ẩm từ cảm biến DHT11 để gửi đến Arduino Khi nhận được dữ liệu, Arduino sẽ truyền thông tin qua Module Wifi Esp8266 V1, cho phép gửi dữ liệu lên trang web ThingSpeak Cuối cùng, kết quả sẽ được hiển thị trên màn hình điện thoại thông qua ứng dụng Virtuino.
Mạch điều khiển thiết bị dùng Module Wifi Esp8266 V1 có lưu đồ thuật toán như hình 3.2:
Hình 3.2 Lưu đồ thuật toán mạch điều khiển
3.1.4 Nạp code và chạy chương trình
- Đầu tiên để có thể viết chương trình cho mạch điều khiển thì ta cần chọn thư viện SoftwareSerial cho phần mềm Arduino IDE.
- Viết code để nạp cho chương trình kết nối giữa Arduino + Esp8266 V1 + DHT11 gửi lên Thingspeak như sau:
// Tạo giao tiếp với esp8266
SoftwareSerial espSerial = SoftwareSerial(2,3); // arduino RX pin=2
#include //thư viện cảm biến
#define DHTPIN 5 // chân input cảm biến
String apiKey = "OG23B22NRB99H1D2"; // key API trên thingSpeak String ssid="WIFI CHUA"; // Nhập wifi
String password ="0988366493"; // Nhập pass wifi boolean DEBUG=true;
// kiểm tra phản hồi void showResponse(int waitTime){ long t=millis(); char c; while (t+waitTime>millis()){ if (espSerial.available()){ c=espSerial.read(); if (DEBUG) Serial.print(c);
//Hàm gửi giá trị lên thingSpeak boolean thingSpeakWrite(float value1, float value2){
To establish a TCP connection, the command string is initialized with "AT+CIPSTART=\"TCP\",\"" followed by the IP address "184.106.153.149" for api.thingspeak.com, and the port number 80 is appended The command is sent via espSerial, and if debugging is enabled, the command is printed to the Serial monitor If an "Error" is detected in the response, an error message is printed, and the function returns false.
String getStr = "GET /update?api_key="; getStr += apiKey; getStr +="&field1="; getStr += String(value1); getStr +="&field2="; getStr += String(value2); getStr += "\r\n\r\n";
To send data to the ESP8266, the command "AT+CIPSEND=" is used to specify the length of the data file This is achieved by appending the length of the string obtained from `getStr` to the command The command is then sent to the ESP8266 via `espSerial.println(cmd)` If debugging is enabled, the command is printed to the Serial monitor for verification After a short delay, the code checks for a response character ">" from the ESP8266, indicating readiness to receive data If the response is found, the actual data in `getStr` is transmitted to ThingSpeak Debugging information is printed to the Serial monitor to confirm the data being sent.
} else{ espSerial.println("AT+CIPCLOSE");
// alert user if (DEBUG) Serial.println("AT+CIPCLOSE"); return false;
Serial.begin(9600); dht.begin(); espSerial.begin(115200); espSerial.println("AT+CWMODE=1"); // set esp8266 as client showResponse(1000); espSerial.println("AT+CWJAP=\""+ssid+"\",\""+password+"\""); showResponse(5000); if (DEBUG) Serial.println("Setup completed");
// chương trình chính void loop() {
// Read sensor values float t = dht.readTemperature(); float h = dht.readHumidity(); if (isnan(t) || isnan(h)) { if (DEBUG) Serial.println("Failed to read from DHT");
} else { if (DEBUG) Serial.println("Temp="+String(t)+" *C"); if (DEBUG) Serial.println("Humidity="+String(h)+" %"); thingSpeakWrite(t,h);
3.2 Thiết kế mạch và thi công mạch điều khiển
3.2.1 Xác định mạch điều khiển
Mạch điều khiển thiết bị qua Module Wifi Esp8266 dùng Arduino bao gồm:
- Cảm biến nhiệt độ và độ ẩm DHT11.
- Smartphone chạy hệ điều hành Android.
- Nguồn 5V cấp cho Arduino từ cổng USB.
Mạch điều khiển thiết bị sử dụng Module Wifi Esp8266 với Arduino cho phép điều khiển nhiều thiết bị cùng lúc Tuy nhiên, để tối ưu hóa chi phí và đơn giản hóa quá trình, mạch này chủ yếu được áp dụng để điều chỉnh nhiệt độ và độ ẩm.
- Mạch sử dụng board Arduino Uno, Module Wifi Esp8266 V1 và cảm biến nhiệt độ, độ ẩm DHT11.
- Ngôn ngữ lập trình trên Arduino IDE.
- Lắp rắp mạch điều khiển với các board Arduino Unovà Module Wifi Esp8266 V1; board Arduino Uno và Cảm biến DHT11 với các thiết bị ngoại vi.
- Viết chương trình cho mạch điều khiển.
3.2.4 Yêu cầu của mạch điều khiển
- Mạch điều khiển đơn giản.
- Giá thành thấp, tính ứng dụng cao trong thực tế.
- Có khả năng mở rộng.
3.2.5 Thi công mạch điều khiển
3.2.5.1 Kết nối phần cứng và nạp chương trình mạch điều khiển
Kết nối chân cảm biến DHT11 với bo mạch Arduino Uno, sau đó thực hiện kết nối chân của Module Wifi Esp8266 V1 với bo mạch Arduino Uno.
Hình 3.3 Kết nối phần cứng của mạch điều khiển
Bước 2: Tiến hành cấp nguồn cho Arduino.
Kết nối máy tính với Arduino bằng cắm jack USB 5V, khi đó các đèn báo trên board Arduino và module wifi Esp8266 V1 sẽ sáng lên, cho biết mạch đã được khởi động thành công.
Hình 3.4 Đèn trên Arduino mà module wifi Esp8266 sáng khi cấp nguồn
Bước 3: Nạp chương trình điều khiển.
Mở Arduino IDE để viết chương trình cho mạch điều khiển gửi dữ liệu lên Thingspeak Để kiểm tra lỗi trong chương trình, nhấn vào biểu tượng kiểm tra Nếu không có lỗi, giao diện sẽ hiển thị thông báo “Done compiling”.
Hình 3.5 Kiểm tra lỗi của chương trình phát tín hiệu
Khi nhận thông báo chương trình đã sẵn sàng ta tiến hành nạp chương trình xuống vi điều khiển Arduino Kích chọn biểu tượng
Hình 3.6 Nạp chương trình xuống cho mạch điều khiển
Nếu quá trình nạp thành công:
Hình 3.7 Quá trình nạp thành công
3.2.5.2 Hoạt động của mạch điều khiển
Sau khi nạp chương trình cho Arduino thì hệ thống bắt đầu làm việc và cho giá trị nhiệt độ, độ ẩm như hình 3.8.
Hình 3.8 Kết quả đo nhiệt độ, độ ẩm hiển thị trên máy tính
Tín hiệu nhận được về giá trị nhiệt độ và độ ẩm sẽ được đưa lên thingSpeak như hình 3.9 dưới đây.
Hình 3.9 Kết quả đo nhiệt độ và độ ẩm được đưa lên thingSpeak
Cuối cùng Module Wifi Esp8266 V1 sẽ đưa tín hiệu về nhiệt độ và độ ẩm nhận được hiển thị trên Smartphone.
Hình 3.10 Kết quả nhiệt độ và độ ẩm hiển thị trên Smartphone
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Sau một thời gian thực hiện đề tài với sự giúp đỡ, hướng dẫn tận tình của thầy
Lê Văn Chung đã hoàn thành đề tài “Điều khiển thiết bị qua Module Wifi Esp8266” đúng thời hạn nhờ vào sự nỗ lực cá nhân Do mạch đã được thực hiện thực tế với các phần cứng đã trình bày, nên trong đề tài này không cần tiến hành mô phỏng mạch điều khiển.
Khóa luận đã trình bày những nội dung chủ yếu sau:
- Thứ nhất, giới thiệu tổng quan về Arduino, Module Wifi Esp8266 và cảm biến nhiệt độ, độ ẩm DHT11 được sử dụng trong mạch điều khiển.
- Thứ hai, giới thiệu phần mềm ứng dụng Virtuino trên Android, phần mềm mô phỏng Proteus, phần mềm Arduino IDE và ngôn ngữ lập trình cho Arduino.
- Thứ ba, thiết kế mạch điều khiển dùng Module Wifi Esp8266 và đưa ra một số hình ảnh thực tế của phần thi công mạch.
Đề tài nghiên cứu hiện tại tập trung vào việc điều khiển nhiệt độ và độ ẩm, nhưng có thể mở rộng bằng cách kết nối Arduino với module Relay để điều khiển các thiết bị điện 220V trong gia đình Ngoài ra, có thể phát triển thêm để thiết kế mạch điều khiển cho xe điều khiển từ xa hoặc tạo ra mô hình tưới nước tự động.
Arduino có nhiều ứng dụng đa dạng, bao gồm việc điều khiển máy móc cần độ chính xác cao, máy bay không người lái và xe mô hình Hơn nữa, Arduino cũng được sử dụng làm bộ xử lý trung tâm cho nhiều loại robot.