blog-details

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 dụng cho các dự án IOT không hề cần quá nhiều chức năng. Đó là board Arduino UNO WiFi hay còn gọi chính là WeMos D1 R2.

I. Thông Số Kĩ Thuật

WEMOS D1 R2 là kit phát triển phiên bản tiên tiến 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à mô đun wifi Soc ESP8266EX được build lại firmware để hoàn toàn 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 tìm kiếm 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 phương pháp 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 chính là vì: các chân từ D11=>D15 là các chân "giả" để kit nhìn giống như arduino hơn hẳn (ESP chỉ có thể 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 này, mình cũng sẽ lập trình cho con wemos quét những đ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 anh em hàn mô đun i2c với lcd1602 như hình:

Sau đó nối dây mô đun I2C với Wemos như hình bên dưới:

Lập Trình

Trước hết anh em 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 anh em cài đặt board xong, anh em vào mục Tools => Board => Kéo xuống chọn mục board "Wemos D1 R2 & Mini"

Sau khi chọn board Wemos D1 R2, trong mục Examples sẽ tự xuất hiện mục code mẫu cho board này, bạn tha hồ mà test

Còn hiện tại, hãy xem thông qua code của chẳng hạn mà mình đã nhác đến ở đầ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);
    }

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

Đánh giá bài viết