Phần mềm lập trình cho vi điều khiển ESP8266

Một phần của tài liệu Thiết kế và thi công hệ thống báo chuông giờ học (Trang 68 - 78)

Nhóm sử dụng phần mềm lập trình Arduino IDE để lập trình cho vi điều khiển wifi ESP8266-V12. Nhóm sử dụng USB TTL-PL203 để nạp chương trình cho vi điều khiển(Hình 4.28)

Phần mềm Arduino IDE đang được sử dụng rất rộng rãi trên thế giới để lập trình cho các mạch Arduino, phần mềm được thiết kế rất dễ dàng cho người sử dụng kể cả những người không chuyên về lập trình về các vi điều khiển cũng dễ dàng tiếp cận và lập trình được, dựa trên thư viện nguồn mở nên rất dễ trong việc tìm kiếm tài liệu và các chương trình liên quan, giúp người sử dụng có thể dễ dàng tạo ra các dự án của riêng mình mà cũng không cần quá am hiểu về phần cứng của vi điều khiển. Ngôn ngữ sử dụng để lập trình là ngôn ngữ C và ngôn ngữ C++. Các bước sử dụng phần mềm lập trình Arduino IDE để lập trình: -Tải phần mềm và mở phần mềm.

-Để sử dụng được chương trình lập trình chúng ta tiến hành tải phần mềm từ trang web:arduino.cc

-Nhóm sử dụng phần mềm để lập trình cho mạch vi điều khiển ESP8266 nên nhóm lựa chọn phiên bản Arduino IDE1.8.9 hoặc cao hơn và cụ thể là phiên bản ArduinoIDE.1.9.1.

Sau khi tải phần mềm về thành công, mở phần mềm và phần mềm sẽ xuất hiện giao diện như hình và chúng ta có thể tiến hành lập trình.(Hình 4.32).

Hình 4. 32 Giao diện phần mềm Arduino IDE khi hoạt động

Hình 4. 33 Lấy tên ngoại vi nạp vào máy tính

Sau đó sẽ hiện ra một cửa sổ khác và nhóm sẽ tiến hành chọn vào “Device Manager” và phía bên phải màn hình chọn tiếp tục vào “Ports (COM & LPT) và lúc đó sẽ hiện ra “USB-SERIAL PL2303 (COM3)”, đây là thiết bị nạp chương trình cho Modul wifi ESP8266 và COM lựa chọn trong phần mềm Arduino là COM3.Tiếp tục nhóm sẽ tiến hành cài đặt trong phần mềm COM tương ứng với thiết bị mạch nạp và lựa chọn là COM3

Hình 4. 34 Lựa chọn cổng COM thích hợp với thiết bị nạp

Tạo project, viết chương trình và biên dịch chương trình cho Modul wifi ESP8266. Để có thể lập trình cho mạch vi điều khiển ESP8266 trên phần mềm Arduino IDE thì chúng ta cần cài bộ thư viện hỗ trợ.

Để cài thư viện cần mở phần mềm Arduino IDE sau đó lựa chọn vào “File” sau đó lựa chọn “Preferences” và thêm đường dẫn để cài đặt bộ thư viện tại “Manager.

URLs: http://arduino.esp8266.com/stable/package_esp8266com_index.json”.

Hình 4. 35 Đường dẫn để cài gói thư viện lập trình cho Modul wifi ESP8266

Sau đó nhóm sẽ tiến hành vào mục “Tools” và lựa chọn vào “Board” tiếp sau đó là “Boards Manager” để cài đặt thêm thư viện cho Modul wifi ESP8266 NodeMCU. Sau đó chọn phiên bản và chọn “Install”.

Hình 4. 36 Tiến hành cài gói thư viện cho mo dule ESP8266

Tiếp sau đó nhóm sẽ cài đặt các thông số để có thể lập trình, biên dịch và nạp chương trình cho ESP8266, nhóm sẽ tiến hành chọn vào “Tools” sau đó chọn “Board”và tiếp tục chọn NodeMCU 1.0 (ESP-12E Module)

Sau đó thiết lập các thông số như tốc độ xử lý của CPU (CPU Frequency) lựa chọn tùy theo mục đích sử dụng, bộ nhớ Flash, tốc độ nạp chương trình 115200 (Upload Speed) là tốc độ nạp chương trình cao nhất, tốc độ càng cao nạp càng nhanh..

Hình 4. 37 Thiết lập các thông số cho ESP8266 cho Arduino

Sau đó tiến hành kết nối mạch nạp cho Modul wifi ESP8266.

Sau khi đã cài đặt xong nhóm sẽ tiến hành lập trình mẫu cho mạch vi điều khiển:

Hình 4. 38 Lập chương trình mẫu cho ESP8266 cho Arduino

Sau khi chọn nạp chương trình thì quá trình biên dịch và nạp sẽ tiến hành như hình bên dưới, sẽ có thông báo hiện lên số % chương trình được nạp. Khi đủ 100% thì chương trình đã nạp hoàn thành và Module wifi ESP8266 sẽ hoạt động theo chương trình đã lập trình.

Lưu đồ giải thuật chính của mạch vi điền khiển ESP8266

BẮT ĐẦU

Các bộ phận vi xử lý, hạ áp, relay sẽ được cấp nguồn

Vi xử lý ESP8266 sẽ phát Wifi có IP, để truy cập Wifi cho ESP

Tiến hành kết nối Wifi

Mạng Wifi được kết nối

Kết nối với cở sở dữ liệu FIREBASE, BUTTON, DISPLAY

Thực thi điều khiển

Kết thúc

Đ S

Hình 4. 39 Lưu đồ giải thuật chương trình chính ESP8266

Giải thích: Khi ta cấp nguồn vi điều khiển, lúc này ESP8266 sẽ kích hoạt vào chế độ Station, thiết bị có kết nối wifi (điện thoại, laptop…) truy cập vào ESP8266 (tên và mật khẩu do ta thiết lập trong code), nhập địa chỉ IP mặc định của nó (192.168.4.1) vào trình duyệt web để vào trang config. Ở trang config, nó sẽ hiện ra danh sách các điểm wifi gần ESP8266, ta chọn vào một điểm rồi nhập mật khẩu để kết nối. Tên và mật khẩu sẽ được lưu trong bộ nhớ để phục vụ cho lần kết nối sau.– Hệ thống sẽ tự reset lại và kết nối đến với điểm wifi được lưu trong bộ nhớ. Có thể thay đổi dễ dàng các thông số về mạng Wifi để có thể kết nối mỗi khi có sự thay đổi về mạng

Hình 4. 40 Danh sách các Wifi gần nhất Hình 4. 41 Điềm Wifi cố định do ta cài đặt

Khi có nguồn cấp cho ESP, ESP sẽ kích hoạt chế độ Station, phát ra điểm Wifi cố định do ta thiết lập trước( điểm kết nối này không có dữ liệu), sau đó ta nhập IP của ESP lên Webserver(192.168.4.1-mặc định). Tiếp tục sẽ hiện các danh sách Wifi gần nhất mà vi điều khiển quét được. Ta đăng nhập tài khoản và mật khẩu, lập tức ESP sẽ kết nối với Wifi đó để thực thi truyền dữ liệu.

Giúp ta linh hoạt kết nối mọi Wifi ở mọi lúc mọi nơi, sẽ tiện hơn rất nhiều trong việc config cứng cố định một Wifi.

#define QUOTE(...) #__VA_ARGS__ // hỗ trợ write các đoạn mã http dễ dàng hơn

#include <ESP8266WiFi.h>

#include <ESP8266WebServer.h> //tạo ra 1 sever wifi để save vào bộ nhớ

#include "Nextion.h"

#include "FS.h" // quản lý bộ nhớ

#include <SoftwareSerial.h>

#include <Wire.h> // Comes with Arduino IDE

ESP8266WebServer server(80); // dùng sever cổng 80

#define DS3231_I2C_ADDRESS 0x68

#include <FirebaseArduino.h>

#define.FIREBASE_AUTH"Pjo5ZTsJTnFSU63eUzyNGkrhKaX7xG8goTgTD hmQ"

#define FIREBASE_HOST "timerrtc-30fc8.firebaseio.com"

Các thư viện cần thiết thực hiện các tính năng của vi điều khiển, đọc và ghi dữ liệu lên cơ sở dữ liệu thời gian thực FIREBASE thông qua thư viện #include<FirebaseArduino.h>

#define.FIREBASE_AUTH"Pjo5ZTsJTnFSU63eUzyNGkrhKaX7xG8goTgTD hmQ"

#define FIREBASE_HOST "timerrtc-30fc8.firebaseio.com"

Ta sẽ lấy 2 thông tin này ở trên trang web Firebase nơi ta đã tạo project.

Khởi tạo tên và mật khẩu chứa thông tin Wifi sẽ kết nối:

server.begin();

WiFi.mode(WIFI_AP_STA); //SETUP TÊN WIFI

WiFi.softAP("DATN_THANG7", "12345678"); //SETUP TÊN WIFI

Điểm Wifi này sẽ được phát khi có cấp nguồn nhưng không dữ liệu, ta dùng mạng đó để đăng nhập bằng ip đã nói ở trên cấu hình Wifi cho vi điều khiển.

Serial.println(String("Đang kết nối: ") + id + " | " + pass);

WiFi.begin(id, pass);

while (WiFi.status() != WL_CONNECTED )

{

delay(100);

//Serial.print(".");

server.handleClient();

}

Sau khi so sánh tài khoản và mật khẩu trùng khớp, nếu kếp nối thành công thì WL_CONNECTED, còn kết nối thất bại thì sẽ lặp lại chờ đến khi nào kết nối đúng tài khoản và mật khẩu.

MÀN CÀI ĐẶT

KIỂM TRA NGÀY NGHỈ LỄ?

Đ

S BẮT ĐẦU

KIỂM TRA NGÀY THI? MẶC ĐỊNH? Đ Đ S ĐIỀU CHỈNH? Đ THỜI GIAN THỰC BẰNG THỜI GIAN MẶC ĐỊNH Đ ĐƯA DỮ LIỆU TRÊN FIREBASE

KIỂM TRA BIẾN TRÊN FIREBASE mothoi==1 CHUÔNG KÊU (5s) TẮT CHUÔNG KẾT THÚC S S Đ Đ THỜI GIAN THỰC BẰNG THỜI GIAN ĐIỀU CHỈNH Đ ĐƯA DỮ LIỆU TRÊN FIREBASE

KIỂM TRA BIẾN TRÊN FIREBASE mothoi==1 CHUÔNG KÊU (5s) S S Đ Đ S KIỂM TRA CHẾ ĐỘ TỰ ĐỘNG THEO TIẾT S

Hình 4. 42 Lưu đồ hoạt động theo mặc định

Khi ta mở ứng dụng đã thiết lập cho điện thoại để điều khiển thiết bị, lúc này app sẽ chạy ở chế độ mặc định, tùy vào nhu cầu người sử dụng cài đặt hẹn giờ, chọn ngày lễ hoặc thi. Ta thiết lập các chế độ xong, khởi động lại app, app sẽ tự động lưu chế độ trước đó để hoạt động.

Ở chế độ ngày lễ, ta thiết lập chuông tắt (hệ thống sẽ gởi giá trị biến 0) trong khoảng thời gian ta chọn, sau khi kết thúc hết khoảng, hệ thống sẽ chuyển về chế độ tự động chạy 12 tiết hoặc đang trong thời gian thi sẽ thực thi chế độ này.

Hình 4. 43 Lưu đồ ở màn hình chính điện thoại

Chế động mặc định ta chia giao diện thành 2 phần: 1 phần chạy tự động 12 tiết thiết lập mặc định, ta config khung giờ theo từng tiết(vào học=10s, chuyển tiết=5s, ra chơi=5s ,ra về=10s) tương ứng với lịch học của trường ĐH.SPKT, ta cũng có thể cho tắt chuông hoặc bật chuông sẽ hoạt động trong tiết tiếp theo. 1

phần ta tạo 2 nút nhấn trên màn hình điện thoại, giúp ta can thiệt trực tiếp khi chế độ 12 tiết khong hoạt động. Điều khiển bằng nút giúp ta linh hoạt khi hệ thống có trục trặc.

Lưu đồ giải thuật chính của nút nhấn

NÚT NHẤN

KHAI BÁO TRẠNG THÁI CÁC NÚT NHẤN NHẤN NÚT CHUÔNG KÊU Đ S CHUÔNG TẮT S TT_BTN=1 TT_BTN=!TT_BTN TT_BTN=0 TT_BTN=!TT_BTN S

Hình 4. 44 Lưu đồ ở màn hình chính điện thoại

Ta sẽ kiểm tra liên tục trạng thái của nút nhấn, nếu trạng thái nút nhấn đang ở mức 1 thì khi tác động sẽ là 0 hoặc ngược lại đồng thời lúc này sẽ gởi tín hiệu về Firebase điều khiển phần cứng.

Một phần của tài liệu Thiết kế và thi công hệ thống báo chuông giờ học (Trang 68 - 78)

Tải bản đầy đủ (PDF)

(104 trang)