Modernine TV
ชื่อผู้แจ้ง : ชื้อผู้แจ้งข่าว admin     สถานีฯ admin      เวลาที่แจ้งข่าว แจ้งวันที่ : 3 เมษายน 2561 เวลา 19:58:12      ถูกเปิดอ่านแล้ว 50 ครั้ง  50 / 0 ครั้ง   ลดขนาดตัวอักษร ลดขนาดตัวอักษร 
ประเภท : [ บทความ ]      Mini PC Control      NodeMCU      NodeMCU
ชื่อเรื่อง : ติดตั้งจอ LCD1602 16x2 I2C ให้ NodeMCU ESP8266 V3


เมื่อทำโครงงาน เราก็พึ่งเริ่มศึกษา NodeMCU ESP8266 ก็งานยุ่ง ค้นคว้า ค้นหาความรู้ ทดลองวงจร ออกแบบโปรแกรม แก้ไขปัญหาต่างๆ จึงไม่มีโอกาสสรุปงานมาโพสต์นะ 55



คลิกที่รูปเพื่อดูรูปใหญ่

แก้ปัญหาการเชื่อมต่อไวไฟ หากเชื่อมต่อไม่ได้ เครื่องก็จะค้าง





วันนี้งานเราติดปัญหา แต่เราก็คลายเครียดไปดูแลสวนด้วยนะๆ





เก็บเศษใบไม้ ไปหมักทำปุ๋ย





หมักใบไม้ทำปุ๋ยสิค่าบ 55





เตรียมหาซื้อกระถางมาปลูกมะนาว 50 ต้น





ทำงานพัฒนาทุกวัน จนมาสรุปไม่ทัน...
จะมาเล่าต่อ เด้ออออ





    ด้านหลัง จอ LCD1602 จะมีโดูล I2C ใช้สำหรับรับข้อมูล I2C จาก บอร์ด NodeMCU ESP8266 จะมี Connect อยู่ 4 ขั้ว เรียงกันตามรูปภาพ ดังนี้

GND - ต่อกราวด์ร่วมกับบอร์ด NodeMCU
VCC - ต่อไฟ 5V. (ไฟ 3.3V. ไม่เพียงพอ)
SDA - ต่อขา D2 ของ NodeMCU
SCL - ต่อขา D1 ของ NodeMCU 

     หากใช้งาน LCD1602 I2C แล้วตัวอักษรไม่สว่าง เราก็สามารถหมุน VR (ตัวสีฟ้าเข้ม) ปรับความสว่างของตัวอักษรได้





การเชื่อมต่อกับ NodeMCU ESP8266

GND - ต่อกราวด์ร่วมกับบอร์ด NodeMCU
VCC - ต่อไฟ 5V. ( ไฟ 3.3V. ใช้ไม่ได้นะ )
SDA - ต่อขา D2 ของ NodeMCU
SCL - ต่อขา D1 ของ NodeMCU







เราต่อสายไฟ VV เข้าบอร์ด LCD1602
ก็จะรับไฟ 5V. ร่วมกับสาย Micro USB ได้ง่ายๆ





เสียบสายไฟ Micro USB เข้าไป ทำให้หน้าจอสว่างขึ้นอย่างนี้
ถ่ายรูปมาดูมืดๆ แต่สายตาเรามองเห็นจอสว่างอย่างนี้จริงๆนะ 55





ติดตั้ง Library LCD1602 ได้ที่นี่

แล้วเปิดใช้ CODE จาก LiquidCrystal-I2C2
- เปิดโปรแกรม Arduio IDE
- เข้าเมนู File > Examples >LiquidCrystal-I2C2 > HelloWord







แก้บรรทัดที่มี Code นี้
LiquidCrystal_I2C lcd(0x27, 16, 2);

แก้ Code เป็น
LiquidCrystal_I2C lcd(0x3f, 16, 2);

เนื่องจาก LCD1602A ใช้โมดูล I2C มี Address 3f

แล้วกด UPLOAD ได้เร้ยยย





โย่ววว... แสดงผลออก LCD แว้ววว





การ SCAN หา Address I2C บน ESP8266

ข้อมูลจาก

โหลด Code ชื่อ F8JTS3KJ0COLXAN.ino

ตัวอย่าง CODE
================================================
#include <Wire.h>

void setup() {
  Serial.begin(115200);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("\n\nI2C Scanner to scan for devices on each port pair D0 to D7");
  scanPorts();
}

uint8_t portArray[] = {16, 5, 4, 0, 2, 14, 12, 13};
//String portMap[] = {"D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7"}; //for Wemos
String portMap[] = {"GPIO16", "GPIO5", "GPIO4", "GPIO0", "GPIO2", "GPIO14", "GPIO12", "GPIO13"};

void scanPorts() { 
  for (uint8_t i = 0; i < sizeof(portArray); i++) {
    for (uint8_t j = 0; j < sizeof(portArray); j++) {
      if (i != j){
        Serial.print("Scanning (SDA : SCL) - " + portMap[i] + " : " + portMap[j] + " - ");
        Wire.begin(portArray[i], portArray[j]);
        check_if_exist_I2C();
      }
    }
  }
}

void check_if_exist_I2C() {
  byte error, address;
  int nDevices;
  nDevices = 0;
  for (address = 1; address < 127; address++ )  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0){
      Serial.print("I2C device found at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.print(address, HEX);
      Serial.println("  !");

      nDevices++;
    } else if (error == 4) {
      Serial.print("Unknow error at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.println(address, HEX);
    }
  } //for loop
  if (nDevices == 0)
    Serial.println("No I2C devices found");
  else
    Serial.println("**********************************\n");
  //delay(1000);           // wait 1 seconds for next scan, did not find it necessary
}

void loop() {
}





เปิด Serial Monitor เพื่อดูผลการ Scan





กดปุ่ม Upload   Code F8JTS3KJ0COLXAN.ino
จะทราบว่า GPIO04 - GPIO05 พบ I2C ที่ตำแหน่ง Address  0x3F





ซึ่งขา D1 และ D2 ก็คือขา GPIO-05 และ GPIO-04 นั้นเอง





ตำแหน่งขา D1 และ D2




จัดทำโดย คณะเจ้าหน้าที่บริษัท อสมท จำกัด ( มหาชน ) ผู้มีโอกาสเข้าร่วมอบรมเทคโนโลยีดิจิตอล ณ ประเทศญี่ปุ่น