Simulacrum, từ simulacrum Latin, là một sự bắt chước, giả mạo hoặc hư cấu. Khái niệm này được liên kết với mô phỏng, đó là hành động mô phỏng .Một...
Tập lệnh at esp8266 – demo điều khiển LED qua internet bằng tập lệnh at
Bài này tất cả chúng ta sẽ thiết kế xây dựng 1 ứng dụng demo nho nhỏ để tinh chỉnh và điều khiển led qua internet bằng tập lệnh AT – mode Station. Nguyên lí hoạt động giải trí khá đơn thuần. ESP8266 sẽ gửi 1 truy vấn ( request ) tới 1 website, website này sẽ trả về reponse có chưa từ khóa diễn đạt trạng thái ON hay OFF của đèn LED .
Các bạn đọc kĩ hơn về tập lệnh at esp8266 tại bài trước
Hmm … thế website này tất cả chúng ta sẽ lấy ở đâu ra ? Bình thường se phải đi thuê từ những nhà sản xuất dịch vụ như Mắt Bão, Supper host, Zcom …. như blog này của mình cũng đi thuê nên mình hoàn toàn có thể dùng được luôn. Nhưng mình sẽ hướng dẫn những bạn sử dụng dịch vụ phân phối website không tính tiền để làm demo này. Có 2 website cung ứng web không tính tiền khá phổ cập mà mình biết đó là :
Mình sẽ sử dụng dịch vụ của 000WEB cho project này này !
Đăng kí tài khoản và đăng nhập
Đăng nhập hoặc đăng kí tài khoản nếu chưa có Các bạn Click vô đây để tạo 1 Web site mới nhéNhập tên web và password của bạn để vào trang admin của web
Website của mình vừa được tạoSau đó click CREATE để thực thi tạo website. Như thế là xong. Mình đã có 1 web tên là https://iot47.000webhostapp.com/ cho riêng mình. Các bạn hoàn toàn có thể gõ vào trình duyệt để test thử !
Khi vừa mới tạo chưa code gì thì vào nó sẽ như này
Thiết kế giao diện
Click vào Quản lí web để vào trang adminCó 4 tùy chọn để dựng web, do chúng ta sẽ code tay nên chọn vào cái Upload Website nhé Click chuột phải và tạo 1 file mới có tên là index.php
OK. Đã vào được trang quản lí thư mụcClick New file và tạo file index.php nhé ! Nếu có bắt đăng nhập thì các bạn điền tên web và pass admin lúc nãy đã tạo nhéindex.php chính là file đầu tiền mà trình duyệt sẽ chạy vào để load mã code khi người dùng vào web tất cả chúng ta. Nó cũng chính là file để chúng tạo code giao diện web, xử lí những sự kiện ấn nút của người dùng
Click chuột phải và Open file index.php lên. Copy đoạn mã HTML này vào và truy vấn vào WEB thử nhé !
1234567891011121314151617181920212223242526272829 |
php < / p if(isset(USD _GET[” bat “])) { USD myfile=fopen(” trangthaiLED. txt “,” w “); fwrite(USD myfile,” bat “); fclose(USD myfile); echo” Đã bật LED “; } elseif(isset(USD _GET[” tat “])) { USD myfile=fopen(” trangthaiLED. txt “,” w “); fwrite(USD myfile,” tat “); fclose(USD myfile); echo” Đã tắt LED “; } ? >
|
Truy cập vào web của mình thử nàoĐã có giao diện tinh chỉnh và điều khiển. Bây giờ mình sẽ tạo tiếp 1 file trangthaiLED. txt
OK. Bây nguyên tắc hoạt động của web chúng ta sẽ như sau:
Khi truy cập vào web sẽ không có dữ liệu nào được nạp nên màn hình chỉ hiển ra nội dung của mã html
Khi ấn nút tắt trên WEB sẽ gọi tới file index.php và truyền thêm biến tat để sửa nội dung file trangthaiLED.txt thành tat
Ngược lại: Khi ấn nút Bật trên WEB sẽ gọi tới file index.php để sửa nội dung file txt thành bat
Giờ hãy thử ấn nút Bật và Tắt sau đó kiểm tra nội dung file trangthaiLED. txt xem có giống như mình nói không nhé. Chúng ta hoàn toàn có thể thây file trangthaiLED. txt giống như 1 con IC eeprom vậy
OK, giờ đây còn 1 trách nhiệm nữa trước khi kết thúc phần phong cách thiết kế server. Đó là ta phải tạo ra 1 đường dẫn để esp truy vấn vào và đọc thông tin có trong file text
Hãy tạo 1 file tên là kiemtra.php
Nội dung của file kiemtra.php như sau
1234567 |
php < / p USD read=file(‘ trangthaiLED. txt ‘); foreach(USD readasUSD line) { echoUSD line; } ? > |
OK. Giờ hãy gõ đường link có dang http://iot47.000webhostapp.com/kiemtra.php
Lưu ý: iot47 là tên miền của mình, bạn phải thay bằng tên miền của bạn nhé
Và đây là tác dụng. Nội dung của file txt đã hiện ra màn hình hiển thị. Hãy thử vào trang chính ấn nút Tắt và load lại trang kiểm tra xem nội dung có đổi khác không nhé !
Vậy là xong ! Bạn đã có 1 server mọi lúc mọi nơi và FREE cho riêng mình rồi đó !
Giờ tới phần ESP cho nó truy cập vào địa chỉ iot47.000webhostapp.com/kiemtra.php để lấy nội dung trạng thái bat tat về.
ESP8266 kiểm tra trạng thái LED và bật tắt LED
1.Test thử bằng máy tính với Hecurles và module chuyển đổi USB-UART
Trước khi thao tác với vi điều khiển và tinh chỉnh, mình sẽ lại test thử bằng cách gửi lệnh bằng tay trước nhé
Mình đã sẵn sàng chuẩn bị module PL2303 và một pcb ra chân cho esp8266 để liên kết cho dễ. Các bạn cứ liên kết theo sơ đồ này là được .
ESP8266 | PL2303 |
VCC + CH_PD | 3.3V |
GND | GND |
TX | RX |
RX | TX |
Bây giờ cắm PL2303 vào máy tính, bật Hercules lên và gửi lệnh thử nào
Chú ý, sau mỗi truy vấn các bạn gửi CIPCLOSE để đóng kết nối thì k bị lỗi nhé như mình ở trên video nhé ! Khi gửi lệnh kết nối tới server thì phải chờ nó trả vê CONNECT OK đã rồi mởi send truy vấn đi !
Sau mỗi truy vấn, chuỗi reponse sẽ trả về các herder(thứ mà ta không quan tâm lắm) và dưới cùng chính là nội dung của file txt ( bat or tat). Chúng ta sẽ bắt chuỗi này để đưa ra trạng thái điều khiển LED tương ứng !
Demo giao tiếp với vi điều khiển PIC16F877A điều khiển LED
Chúng ta đã test gửi thử với lệnh AT bằng máy tính xong. Giờ mình sẽ tiếp xúc bằng video khiển. Do hơi ngại làm mạch thật nên mình sẽ sử dụng ứng dụng mô phỏng Proteus, đương nhiên trong proteus không có module wifi cho tất cả chúng ta mô phỏng nên con PIC ảo sẽ tiếp xúc với ESP8266 thật của cổng COMPIM của proteus
Các bạn chuẩn bị sẵn sàng
- Phần mềm mô phỏng mạch điện tử Proteus
- Phần mềm lập trình CCS PIC
- Module pl2303 và esp8266 (hàng thật :v)
Chú ý, proteus 7.3 mình dùng thì thấy nó không hỗ trợ tốc độ baud 115200 nên tốt nhất hãy chuyển tốc độ baud của ESP8266 về 9600 cho chắc chắn nhé. Sử dụng phần mềm hecurles và gửi lệnh
AT+UART_DEF=9600,8,1,0,0$0D$0A để chuyển baudrate về 9600
Mạch nguyên lí trên mô phỏng
Mạch mô phỏng đơn giản như thế thôi nhé, các bạn nhớ click chuột phải vào công COMPIM để cài tốc độ baud 115200 và chọn cổng COM của PL2303 (nếu không biết COM mấy thì vào Devicer Manager ở trong (chuột phải)My Computer nhé !
Mình có thêm 2 cái teminal để DUBUG dữ liệu gửi nhận UART
Click phải vào COMPIM để cài baud
Chương trình điều khiển cho PIC trên phần mềm CCS qua tập lệnh at esp8266
Các bạn khởi tạo project với thạch anh 20Mhz
Cấu hình UART như sau
1 |
# use rs232 ( uart1, baud = 9600, ERRORS ) |
Cấu hình những thông số kỹ thuật của bạn nhé
123 |
char*SSID=” Quoc Khanh “;/ / your wifi char*PASS=” daoxuankhanh “;/ / your wifi char*WEBSITE=” iot47.000webhostapp.com “;/ / your web |
Hàm khởi tạo ESP8266
12345678 |
voidESP8266_init() { printf(” AT \ r \ n “);delay_ms(500); printf(” ATE0 \ r \ n “);delay_ms(500); printf(” AT + CWMODE = 1 \ r \ n “);delay_ms(500); printf(” AT + CWJAP = \ ” % s \ “, \ ” % s \ ” \ r \ n “,SSID,PASS);delay_ms(4000);/ / thay mat khau va tai khoan tuong ung printf(” AT + CIPMUX = 0 \ r \ n “);delay_ms(500); } |
Hàm bắt chuỗi bat hoặc tat để điều khiển và tinh chỉnh LED tương ứng
1234567891011121314151617181920212223242526 |
# int_RDA voidRDA_isr(void)/ / Ngat du lieu khi truyen nhan { unsignedcharc; c=getc();/ / Gan ki tu vua nhan duoc vao bien tam / / ——— bat ki tu bat ——– / / if(c= =’ b ‘) { c=getc(); if(c= =’ a ‘) { c=getc(); if(c= =’ t ‘)output_low(PIN_B1);/ / ON } } elseif(c= =’ t ‘) { c=getc(); if(c= =’ a ‘) { c=getc(); if(c= =’ t ‘)output_high(PIN_B1);/ / OFF } } / / ——— bat ki tu tat ——– / / } |
Tiếp theo kiến thiết xây dựng hàm để gửi request liên tục lên server của bạn và reponse có kèm trạng thái LED về. Mình sẽ đặt hàm này vào trong while ( 1 ) của main
1234567891011 |
voidGET_StatusLED() { intlength; chardata[90]; sprintf(data,” GET / kiemtra.php HTTP / 1.1 \ r \ nHost : iot47.000webhostapp.com \ r \ n \ r \ n “); printf(” AT + CIPSTART = \ ” TCP \ “, \ ” % s \ “, 80 \ r \ n “,WEBSITE);delay_ms(2000);/ / wait connect length=strlen(data); printf(” AT + CIPSEND = % i \ r \ n “,length);delay_ms(500); printf(data);delay_ms(1000); printf(” AT + CIPCLOSE \ r \ n “);delay_ms(200); } |
Và TEST nào !
Kết luận
Với phương pháp này và sử dụng tập lệnh at esp8266, chúng ta có ưu điểm là thực hiện nhanh chóng, dễ dàng, điều khiển mọi lúc mọi nơi miễn là có internet. Tuy nhiên, tốc độ đáp ứng rất chậm do phải thiết lập các kết nối liên tục, ESP8266 sẽ nhanh nóng, cũng như hao tốn tài nguyên WEB của bạn nếu như có quá nhiều esp8266 truy vấn vào.
Các bạn có thời gian có thể làm mạch thực để test nhé. Nhưng chi demo hay làm đồ án thôi chứ không nên xài vì cách này không tối ưu lắm và cái server FREE chả biết khi nào nó ngỏm. Hehe
Ở các bài tiếp theo mình sẽ hướng dẫn các bạn biến ESP8266 thành 1 cái server WEB thay vì phải đi thuê web hay xài web free như trên !
DOWNLOAD
Toàn bộ file code, mô phỏng những bạn hoàn toàn có thể tải về TẠI ĐÂY
Đọc thêm những bài về tập lệnh at esp8266
Source: https://vh2.com.vn
Category : Tin Học