Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng cross-platform
(đa nền tảng) được viết bằng Java, và từ IDE này sẽ được sử dụng cho Ngôn ngữ lập trình xửlý (Processing programming language) và project Wiring. Nó được thiết kế để
dành cho những người mới tập làm quen với lĩnh vực phát triển phần mềm. Nó bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng như compile(biên dịch) và upload chương
trình lên board chỉ với 1 cú nhấp chuột. Một chương trình hoặc code viết cho Arduino
được gọi là một sketch.
Các chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các
thao tác input/output được dễ dàng hơn. Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy được:
38 setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các
cài đặt
loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch
4.5.2 Cài đặt arduino IDE
Bước 1: Truy cập địa chỉ https://www.arduino.cc/. Đây là nơi lưu trữ cũng như cập nhật các bản IDE của Arduino. Bấm vào mục WINDOWS ZIPfile for non admin install như hình minh họa.
Hình IV-10Giao diện web arduino.cc
Bạn sẽ được chuyển đến một trang mời quyền góp tiền để phát triển phần mềm cho Arduino, tiếp tục bấmJUST DOWNLOAD để bắt đầu tải.
39
Hình IV-11Giao diện tải arduino IDE
Hình IV-12 Đã tải xong arduino IDE
Bước 2: Sau khi download xong, bấm chuột phải vào file vừa downloadarduino-1.6.4- windows.zip và chọn “Extract here” để giải nén.
40
Hình IV-13Giải nén arduino IDE
Bước 3:Copy thư mục arduino-1.6.4vừa giải nén đến nơi lưu trữ.
Bước 4:Chạy file trong thư mụcarduino-1.6.4\ để khởi độngArduino IDE
41
Hình IV-14Giao diện lập trình arduino IDE
4.6 Lập trình esp32 bằng arduino IDE
Bước 1: Vào File→ Preferences, tại ô Additional Board Manager URLs thêm
42
Hình IV-15Giao diện nhập link để tải thư viện arduino
Bước 2: Vào Tool→Board→Boards Manager, nhập vào ô tìm kiếm từ khóa esp32,
43
Hình IV-16Giao diện tải thư viện arduino IDE
Bước 3: Để nạp code cho ESP32 các bạn vào Tools → Board → DOIT ESP32 DEVKIT V1
44
Hình IV-17Chọn KIT arduino để biên dịch và nạp code
Vào Tools → Port và chọn đúng cổng COM mà ESP32 kết nối vào máy tính, sau đó thựchiệnnạp code.
45
Hình IV-18Chọn cổng để nạp code
Cuối cùng, sau khi cài đặt thành công, các bạn vào File → Example sẽ có các ví dụ mẫuvề các chứcnăngphổbiếncủa ESP32, đâysẽ là nguồn code mẫuđể các bạn nghiên
46
47
CHƯƠNG V Kết quả - nhận xét - đánh giá
5.1 Cấu hình cho hệ thống kết nối internet
Chuyển chếđộ hệ thống thành access point.
Bước 1: Đăng nhập vào giao diện chính của hệ thống
48
Bước 2: Cài đặt kết nối wifi
Hình V-2Cài đặt wifi để kết nối internet
Bước 3: Cài đặt API để lấy dữ liệu thời tiết, chất lượng không khí, tia uv.
49 Ngoài ra hệ thống cũng được thiết kế để có thể chạy thêm thông báo tùy chỉnh
được ví dụnhư có hội thảo hay là thông tin đánh rơi đồ,...
Hình V-4Giao diện nhập để chạy thông báo
Giao diện đã được thiết kế 5 thông báo có thể chỉnh được 7 màu chữ và 5 cấp tốc độ.
Hình V-5Chỉnh màu và tốc độ của chữ chạy thông báo
50
Hình V-6Giao diện cài đặt mật khẩu
Thêm vào đó hệ thống cũng cung cấp mật khẩu để nhiều vị trí có thể sử dụng. Ví dụ như phòng công tác sinh viên cần đăng thông tin gì thì có thể sử dụng bảng led để
hiển thị thông tin.
51 Hệ thống còn thiết kế thêm chương trình cài đặt thời gian bật tắt để tiết kiệm điện
năng và tăng tuổi thọ cho hệ thống tránh việc phải hoạt động liên tục.
5.2 Mô hình chạy thực tế
52
53
5.3 Nhận xét & đánh giá:
Sau khi thực hiện xong đềtài thì em đã biết: 5.3.1 Nhận xét:
- Lập trình esp32 bằng Arduino IDE. - Gửi dữ liệu từ webserver xuống esp32. - Tạo được font tiếng việt.
- Thi công được bảng led.
- Hiểu được cách vận hành của module led
5.3.2 Đánh giá:
Củng cố được kiến thức lập trình vi điều khiển ESP32, tiếp cận được công nghệ
mới theo xu hướng IOT 4.0.
Cần học hỏi thêm nhiều kiến thức về IOT và kinh nghiệm của thầy cô, anh chị
sinh viên, doanh nghiệp. Từđó mới phát triển nâng cao tay nghề. Bản thân phải thường xuyên trau dồi cập nhật những kiến thức mới nhất để theo kịp thời đại mới đặc biệt là
54
CHƯƠNG VI Kết luận và hướng phát triển
6.1 Kết luận
Sau thời gian nghiên cứu và tìm hiểu, nhóm đã hoàn thành đề tài “Bảng điện tử
hiện thị thông tin thời tiết trực tuyến” Đềtài đã đạt được yêu cầu như sau:
- Đã giới thiệu sơ lược về các phần cứng sử dụng trong mô hình. - Giới thiệu phần mềm lập trình.
- Có thểthay đổi thông báo tùy ý.
- Thi công và lắp đặt được bảng led kích thước 128x64 bằng 16 module led p10 full color.
Trong quá trình thực hiện đề tài, em đã gặp nhiều khó khăn như phải nghiên cứu nhiều nguồn tài liệu cả tiếng việt lẫn tiếng anh nên có nhiều nhầm lẫn. Trong khi lập trình gặp nhiều lỗi phát sinh mà không thể giải quyết. Quá trình thi công cũng gặp nhiều
khó khăn nhưng em đã cố gắng giải quyết vấn đề phát sinh và hoàn thiện được đề tài.
Do đây là lần đầu tiên làm đồ án tốt nghiệp có nhiều bỡ ngỡ với kiến thức còn nhiều hạn chế, thiếu sót. Em mong được sự giúp đỡ cũng các thầy cô giáo để đề tài
được hoàn thiện hơn và thêm nhiều cải tiến đáng kể, ứng dụng tốt vào thực tiễn.
6.2 Hướng phát triển
Sản phẩm tương lai sẽ phát triển trên module led p5 hoặc p3 để có mật độ điểm
ảnh dày hơn, để có thể hiển thị hình ảnh và video.
Tương lai sẽ sử dụng thêm thingspeak để gửi dữ liệu lên clound. Có thể gửi dữ
55
CHƯƠNG VII Phụ Lục
7.1 Đoạn chương trình hàm loop
void loop(){ if(!wificonf) checkWifi(); httpProcess(); if(delayState==0){ if(dispState==1) {dispDateTime(0);delayState=5;} else if(dispState==3) {dispClrAll(0xff);dispWeather();delayState=5;} else if(dispState==5) {dispClrAll(0xff);dispForecastHourly();delayState=8;} else if(dispState==6) {dispClrAll(0xff);dispForecastDaily();delayState=8;} else if(dispState==7) {dispClrAll(0xff);dispEnviroment();delayState=3;} Else {dispInfoText();delayState=2;} } if(count2%60==5) {getDateTime();count2++;}
56 if((count2%60==15)&&((count2<60)||(getAqiError>0))) {getAQI();count2++;} if((count2%60==25)&&(onlineMin%3==0)) {getWeather();count2++;} if((count2%60==25)&&(onlineMin%3==1)) {getForecastHourly();count2++;} if((count2%60==25)&&(onlineMin%3==2)) {getForecastDaily();count2++;} if((count2%60==50)&&(onlineHour>5)&&((onlineMin%15==1)||(getUViError >0))) {getUVI();count2++;} if(lastMin!=onlineMin){ lastMin=onlineMin; for(char i=0;i<6;i++){ if(onOffTime[i].mode==0)continue; if(onOffTime[i].min!=onlineMin)continue; if(onOffTime[i].hour!=onlineHour)continue; if(onOffTime[i].mode==1)dispOn=0; else if(onOffTime[i].mode==2)dispOn=1; } } }
57 TÀI LIỆU THAM KHẢO [1] http://iot47.com/category/ma-tran-led/ [2] http://iot47.com/matrix-ledbai-13-thiet-ke-bo-font-tieng-viet/ [3] https://en.wikipedia.org/wiki/Internet_of_things [4] https://vi.wikipedia.org/wiki/Internet_V%E1%BA%A1n_V%E1%BA%ADt [5] https://en.wikipedia.org/wiki/ESP32 [6] http://arduino.vn/tutorial/1570-gioi-thieu-module-esp32-va-huong-dan-cai-trinh- bien-dich-tren-arduino-ide [7] https://tapit.vn/huong-dan-cai-dat-arduino-ide-de-lap-trinh-cho-esp32/ [8] https://vi.wikipedia.org/wiki/Wi-Fi [9] https://vi.wikipedia.org/wiki/M%C3%A1y_ch%E1%BB%A7_web [10] https://www.w3schools.com/html/ [11] https://openweathermap.org/ [12] https://www.openuv.io/ [13] https://www.iqair.com/