การใช้งาน node MCU ESP8266

จาก Morange Wiki

NodeMCU ESP8266NodeMCU คืออะไร

เป็นบอร์ดไมโครคอนโทลเลอร์ที่มีจำนวนขาพอร์ตอินพุตและเอาต์พุตมากพอสำหรับการนำไปใช้งานจริง สามารถต่อกับเซ็นเซอร์ได้ทั้งแบบดิจิตอลและแอนะล็อก และยังต่อเพื่อขับอุปกรณ์เอาต์พุตให้ทำงาน โดยที่เราจะต้องเขียนโปรแกรมเพื่อสั่งงานให้บอร์ด NodeMCU/ESP8266 สามารถควบคุมอุปกรณ์ต่างๆ เช่น ควบคุมการเปิดปิดหลอดไฟ, ปลั๊กไฟฟ้า หรือเครื่องรดน้ำต้นไม้ เป็นต้น และเนื่องจากมีโมดูล WiFi ในตัว จึงสามารถเชื่อมต่อเพื่อส่งข้อมูลหรือสั่งงานผ่านทางอินเทอร์เน็ตได้โดยไม่ต้องหาซื้ออุปกรณ์มาต่อเพิ่ม นอกจากนั้นยังมีราคาถูก ซึ่งจะช่วยลดต้นทุนลงเป็นอย่างมากหากต้องการนำบอร์ดไปใช้ในการพัฒนาอุปกรณ์ Internet of Things (IoT)

ติดตั้ง Arduino IDE

1. เข้าไปยังเว็บไซต์หลักของ Arduino เพื่อดาวน์โหลด Arduino IDE โดยคลิกที่นี่ https://www.arduino.cc/en/main/software
2. เมื่อเข้าเว็บไซต์มาแล้ว ให้คลิกดาวน์โหลดที่ Linux 32 bits หรือ Linux 64 bits อย่างใดอย่างหนึ่ง (ขึ้นอยู่กับเวอร์ชั่น Ubuntu ของคุณเป็นแบบ 32 bits หรือ 64 bits) สำหรับ Windows ให้คลิกตรง Windows แล้วติดตั้งได้เลย อ่านเพิ่มเติม

ใส่รูป

3.หลังจากที่คุณคลิกดาวน์โหลดแล้ว หน้าเว็บไซต์จะเปลี่ยนไปเป็นหน้า Donate (บริจาค) และจะมี 2 ปุ่มให้คุณเลือกคลิกครับ

   1.ปุ่ม JUST DOWNLOAD คือ ดาวน์โหลดอย่างเดียว
   2.ปุ่ม CONTRIBUTE & DOWNLOAD คือ บริจาคเงินจากนั้นค่อยดาวน์โหลด

ซึ่งตรงนี้คุณจะเลือกคลิกที่ JUST DOWNLOAD หรือ CONTRIBUTE & DOWNLOAD ก็แล้วแต่คุณครับ คลิกปุ่มใดปุ่มหนึ่งได้เลย จากนั้นก็เบราเซอร์ของคุณก็จะเริ่มดาวน์โหลด และหากเบราเซอร์ของคุณไม่ถามว่าจะให้บันทึกไฟล์ไว้ที่ไหน ไฟล์ก็มักจะถูกบันทึกไว้ที่ไดเรคทอรี่ชื่อว่า Downloads ครับ

ใส่รูป

ขั้นตอนการติดตั้ง

เมื่อคุณดาวน์โหลดไฟล์เสร็จแล้ว คุณจะได้ไฟล์ชื่อว่า arduino-version-linux32.tar.xz หรือ arduino-version-linux64.tar.xz ซึ่งเป็นไฟล์ที่ถูกบีบอัดไว้ คุณต้องแยกไฟล์ออกมา โดยกดปุ่มลัดบนคีบอร์ด Alt + Ctrl + T เพื่อเรียกโปรแกรม Terminal ขึ้นมา และพิมพ์คำสั่งดังต่อไปนี้ลงไปครับ
1. สร้างไดเรคทอรี่ชื่อ bin ไว้ในไดเรคทอรี่ home สำหรับเก็บไฟล์โปรแกรม Arduino IDE

mkdir ~/bin

2. ย้าย ไฟล์ที่เราได้แตกไฟล์ไปไว้ใน home/bin
3. เพิ่มไอคอน Arduino IDE ไปยังเมนูของระบบ

  • แก้ arduino-version ให้ตรงกับเวอร์ชั่นของ Arduino IDE ที่คุณดาวน์โหลดมา เช่น arduino-1.8.5
~/bin/arduino-<version ของคุณ>/install.sh

จากนั้นเปิดโปรแกรมได้ 2 แบบ
1.ดับเบิ้ลคลิกในไอคอนของ Arduino
2.พิมพ์คำสั่งนี้ใน command-line

~/bin/arduino-<version ของคุณ>/arduino

มาลองรันดู

ใส่รูป

วิธีแก้ไขเมื่อเจอ error: cannot access /dev/ttyUSB0

เมื่อคุณพยายามอัปโหลดโปรแกรมลงบอร์ด คุณบางคนอาจจะเจอปัญหาเกี่ยวกับ USB permission (การอนุญาตให้อ่านเขียน USB) แบบรูปด้านล่าง

ใส่รูป

ถ้าหากคุณลองพิมพ์คำสั่ง ls -l /dev/ttyUSB<เบอร์ port> คุณก็จะเห็นว่าสิทธิ์การใช้งาน USB คืออนุญาตให้ผู้ใช้ root และผู้ใช้ที่อยู่ในกลุ่ม dialout เท่านั้นที่สามารถอ่านเขียน USB ได้

crw–rw—- 1 root <ชื่อกลุ่ม> 188, 0 พ.ค. 8 14:33 /dev/ttyUSB0

วิธีแก้ไขก็แค่เพิ่มผู้ใช้ของลงไปในกลุ่ม dialout เท่านั้นเองครับ โดยใช้คำสั่งต่อไปนี้

sudo usermod -aG dialout $<Urer คุณ>
  • หมายเหตุ: บางบอร์ด path จะไม่ใช่ /dev/ttyUSBx แต่จะเป็น /dev/ttyACMx แทนครับ (x คือตัวเลข)

เริ่มต้นติดตั้ง NodeMCU ESP8266 ลงบน Arduino IDE

1.เข้าไปที่โปรแกรม Arduino 2.คลิกไปที่เมนู File -> Preferences เพื่อติดตั้งบอร์ด NodeMCU/ESP8266 แบบออนไลน์ 3.เพิ่ม http://arduino.esp8266.com/stable/package_esp8266com_index.json ลงในช่อง Additional Boards Manager URLs ดังภาพ

ใส่รูป

4.คลิกไปที่เมนู Tools -> Board -> Board Manager

ใส่รูป

5.พิมพ์คำว่า ESP8266 ลงในช่อง และเริ่มต้นติดตั้งดังภาพ

ใส่รูป

6.เข้าไปที่ Tool>>>>Board>>>>เลือก NodeMCU

มาลองสั่งให้ไฟติดดู
เขียนโค้ดนี้ลงไป

void setup() {
  // put your setup code here, to run once:
  pinMode(D0, OUTPUT);//เช็ตให้ D0 เป็น OUTPUT
  pinMode(D4, OUTPUT);//เช็ตให้ D4 เป็น OUTPUT
}

void loop() {
  // put your main code here, to run repeatedly: 
  digitalWrite(D0,HIGI);//เช็ตให้ D0 ให้ติด โดย higi มี่ค่า = 1 low มี่ค่า = 0
  digitalWrite(D4,LOW);//เช็ตให้ D4 ให้ติด ส่วน D4 นี้มีค่า เป็น LOW active ทำให้มื้อมีไฟติดจะกลายเป็น 0
}
  • หมายเหตุ D0,D4 ขึ้นยุกับที่เราจะต่อ LED ไว้ขาไหน หรือเข้ามาดูเพิ่มเติมได้ที่ nodemcu pinout lolin

สอนการใช้งาน

สอนการใช้งานมีมากมายหลากหลายแบบ สามารถเข้าไปอ่านในลิงค์นี้ได้เลย

  1. สอนใช้งาน NodeMCU ESP8266 สัญญาณ Digital OUTPUT ควบคุมเปิดปิดไฟ LED
  2. สอนใช้งาน NodeMCU ESP8266 การสื่อสารอนุกรม Serial อ่านค่าข้อความที่ NodeMCU ส่งมาให้คอมพิวเตอร์
  3. สอนใช้งาน NodeMCU ESP8266 การสื่อสารอนุกรม Serial ส่งค่าต่างๆจากคอมพิวเตอร์มาควบคุม NodeMCU
  4. สอนใช้งาน NodeMCU ESP8266 if else ตรวจสอบเงื่อนไข ถูกผิด
  5. สอนใช้งาน NodeMCU ESP8266 สัญญาณ Digital InPut รับค่าการกดปุ่มสวิตช์ ควบคุมเปิดปิดหลอดไฟ LED
  6. สอนใช้งาน NodeMCU ESP8266 คำสั่ง for สั่งงานให้โปรแกรมวนลูปทำซ้ำ ไฟ LED วิ่ง
  7. NodeMCU ESP8266 ส่งข้อความ สติ๊กเกอร์ รูปภาพ แจ้งเตือนผ่าน LINE Notify
  8. สอนใช้งาน NodeMCU ESP8266 ส่งค่าความชื้นและอุณหภูมิ DHT11 แจ้งเตือนผ่าน LINE
  9. สอนใช้งาน NodeMCU ESP8266 ควบคุม เปิดปิดไฟ LED ผ่าน wifi web server


สามารถอ่านโค้ดเพิ่มเติมได้ที่ https://www.arduino.cc/en/Tutorial/BuiltInExamples หรือ https://www.nodemcu.com/index_en.html#fr_54747361d775ef1a3600000f

การใช้งาน pubsubclient

การลง pubsubclient

1. คลิกเข้าไปที่ Sketch>>>>>Inclue Library>>>>Add Library ... Zip
2. เลือกไฟลฒ ZIP ที่เราโหลดมา สามารถโหลดได้ที่ pubsubclient

การใช้งาน pubsubclient. แบบง่ายๆๆ

อ้างอิง

  1. poundxi.com
  2. https://www.myarduino.net/article
  3. https://www.arduino.cc/en/Tutorial/BuiltInExamples