loc4atnt gửi vào
- 66764 lượt xem
Xin chào các bạn! Hôm nay. mình sẽ review về một board arduino khá thú vị và tiện lợi cho các dự án IOT không cần quá nhiều tính năng. Đó là board Arduino UNO WiFi hay còn gọi là WeMos D1 R2.
I. Thông Số Kĩ Thuật
WEMOS D1 R2 là kit phát triển phiên bản mới nhất từ WeMos, kit được thiết kế với hình dáng tương tự Arduino Uno nhưng trung tâm lại là module wifi Soc ESP8266EX được build lại firmware để có thể chạy với chương trình Arduino. Kit thích hợp và dễ dàng thực hiện các ứng dụng thu thập dữ liệu và điều khiển qua Wifi.
Vi điều khiển | ESP8266EX |
Điện áp hoạt động | 3V3 |
I/O Digital Pin | 11 |
Analog Pin | 1 (Max input=3V2) |
Xung clock | 80MHz/160MHz |
Flash | 4Mb |
Khối lượng | 25g |
Kích thước | 68.6mmX53.4mm |
Sơ đồ pin digital
Wemos | ESP8266 |
D0 | GPIO16 |
D1 | GPIO5 |
D2 | GPIO4 |
D3,D15 | GPIO0 |
D4,D14 | GPIO2 |
D5,D13 | GPIO14 |
D6,D12 | GPIO12 |
D7,D11 | GPIO13 |
D8 | GPIO15 |
D9 | GPIO3 |
D10 | GPIO1 |
Lí do mình viết bảng này là để dễ dàng trong việc viết code. Bởi khi viết code bạn muốn xuất tín hiệu HIGH cho pin số 3 trên kit thì ko thể viết "digiatlWrite(3,HIGH);" mà phải viết là "digitalWrite(0,HIGH);" (Theo trên bảng thì chân D3 trên kit là chân 0 của ESP). Hay nói cách khác là bạn điều khiển chân trên ESP8266. Và khi bạn code xuất chân D3 mức HIGH thì chân D15 cũng được xuất HIGH, lí do là vì: các chân từ D11=>D15 là các chân "giả" để kit trông giống arduino hơn (ESP chỉ có 11 pin digital .-.), vì vậy các pin D11=>D15 được nối lần lượt với D7=>D3.
II. Lập trình thử kit
Ở bài viết này, mình sẽ lập trình cho con wemos quét các điểm phát wifi xung quanh và hiển thị lên LCD1602 với module i2c
Phần Cứng
Chuẩn bị:
- Wemos D1 R2
- LCD1602
- Module I2C
- Vài dây nối
Trước hết các bạn hàn module i2c với lcd1602 như hình:
Sau đó nối dây module I2C với Wemos như hình dưới:
Lập Trình
Trước hết các bạn cần cài đặt board cho Arduino IDE.
Và kéo xuống mục Tiến Hành để xem hướng dẫn cài đặt board nạp.
Sau khi các bạn cài đặt board xong, các bạn vào mục Tools => Board => Kéo xuống chọn board "Wemos D1 R2 & Mini"
Sau khi chọn board Wemos D1 R2, trong mục Examples sẽ tự động xuất hiện mục code mẫu cho board này, bạn tha hồ mà test
Còn bây giờ, hãy xem qua code của ví dụ mà mình đã nhác tới ở đầu mục II.
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include "ESP8266WiFi.h" LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.init(); lcd.backlight(); WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); lcd.println("Setup done"); delay(1000); lcd.clear(); } void loop() { lcd.println("scan start"); // WiFi.scanNetworks will return the number of networks found int n = WiFi.scanNetworks(); delay(500); lcd.clear(); lcd.println("scan done"); delay(2000); lcd.clear(); if (n == 0) lcd.println("not found"); else { lcd.print(n); lcd.println(" networks"); delay(2000); lcd.clear(); for (int i = 0; i < n; ++i) { // Print SSID and RSSI for each network found lcd.print(i + 1); lcd.print(": "); lcd.print(WiFi.SSID(i)); delay(2000); lcd.clear(); } } lcd.clear(); // Wait a bit before scanning again delay(3000); }
Đây là video thực tế mình đã chạy code:
III. Kết Luận
Cảm ơn các bạn đã theo dõi. Lần sau mình sẽ viết bài về việc sử dụng con Wemos này trong mô hình Socket với file server được chạy trên 1 VPS <3.