2 คู่มือการใช้งาน ESP8266 เบื้องต้น
ESP 8266 Datasheet
3
ดาวน์โหลดและลงโปรแกรม Arduino IDE
4
Workshop Built-in LED
10
LED
11
Relay
12
Ultrasonic
13
DTH11
15
Light
16
Switch
17
I2C LCD Display
19
Wifi
23
Access Point
25
Web Server
26
Cloud
28
3
!
ESP 8266 Datasheet
4
! ติดตั้ง Arduino IDE เวอร์ชั้น 1.6.4 หรือ ใหม่กว่า โดย Download ตัวติดตั้งได้จาก http:// www.arduino.cc/en/main/software
! - เมื่อทำการติดตั้ง Arduino IDE เรียบร้อยแล้ว ให้เปิด Arduino IDE ขึ้นมา - ไปที่ Menu File >> Preferences
5
- ใส่ URL >> ลงใน Addition Board Manager URLs: ดังนี้ http://arduino.esp8266.com/stable/package_esp8266com_index.json !
(สามารถดูข้อมูลเพิ่มเติมหากมีการเปลี่ยนแปลงได้จาก https://github.com/esp8266/Arduino)
6
!
- แล้วกด OK - จากนั้นไปที่ Menu Tools >> Boar:”xxxxxx” >> Board Manager…
! - เลือก Type เป็น Contributed ไปที่ ESP8266 และกด Install
7
!
!
รอจนติดตั้งเสร็จ
8
เมื่อติดตั้ง ESP8266 เสร็จเรียบร้อยแล้ว ให้ปิดโปรแกรม Arduino IDE ก่อน แล้วจึงเปิดขึ้นมาใหม่ - เมื่อเปิดโปรแกรม Arduino IDE ขึ้นมาใหม่ ให้ลองไปที่ Menu Tools >> Board:”xxxxxx” จะพบ ว่า มี Menu สำหรับเลือกใช้งาน ESP8266 กับ Arduino IDE ขึ้นมาให้เลือกใช้งานแล้วครับ !
9
- จะสังเกตเห็นว่าใน หมวดของ ESP8266 จะมีบอร์ดให้เลือกใช้งานอยู่ด้วยกัน 3 บอร์ด ได้แก่ - Generic ESP8266 Module >> บอร์ด ESP8266 ทั้งไปไม่เจาะจง หรือ บอร์ดที่สร้างขึ้นเอง - Olimex MOD-WIFI-ESP8266 >> บอร์ด ESP8366 ที่บริษัท Olimex เป็นผู้สร้าง - NodeMCU (ESP8266 ESP12) >> บอร์ด ESP8266 ที่เป็นบอร์ด NodeMCU ที่เราจะใช้งานนั่นเอง - หากท่านใช้งานบอร์ดต่างๆ ที่มีอยู่ตาม Menu เหล่านี้ ท่านสามารถเลือกบอร์ดที่ใช้และใช้งาน Arduino IDE กับบอร์ดได้เลย !
10
Workshop Built-in LED ตัว NodeMCU จะมี LED ฝังมาในบอร์ดเราเรียกว่า Built-in LED มา ให้ 1 ดวง
ทดลอง upload ดู
11
LED ทำการต่อสาย LED ไปยัง PIN D4 ของ NodeMCU ผ่าน R ซึ่งจะตรงกับ GPIO2 ใน Datasheet
12
และ Upload code เปลี่ยน BUILTIN_LED เป็น 2 ดังนี้ void setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, LOW); delay(1000); digitalWrite(2, HIGH); delay(2000); } เมื่อ upload เสร็จ LED จะกระพริบ
13
Relay
เดินสายจาก D4 (GPIO2) ไป ยัง PIN IN1 ของ Relay เดินสาย 3V3 เข้า VCC และ GND เข้า GND และใช้ code เปิดปิด LED เหมือน workshop ก่อน โดยมี Relay คั่นระหว่าง NodeMCU และ LED void setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, LOW); delay(1000); digitalWrite(2, HIGH); delay(2000); } ทดลอง upload ดูพบว่า Relay จะทำงานตามคำสั่ง DigitalWrite สามารถเปลี่ยน ส่วนแบตเตอร์ที่ และ LED เป็นส่วนของไฟกระแสสลับ หรือ มอเตอร์ ตามแต่การ ประยุกต์ใช้งาน
Ultrasonic Ultrasonic Sensor HC-SR04 มาทดลองต่อกับ NodeMCU Dev Kit เราจะจ่ายไฟเข้า USB Port แล้ว ใช้ Vin และ GND จ่ายไฟให้ตัว Ultrasonic Sensor ดังรูป
14
! ในส่วนของ code #define TRIGGER_PIN #define ECHO_PIN
5 4
void setup() { Serial.begin (9600); pinMode(TRIGGER_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); pinMode(BUILTIN_LED, OUTPUT); } void loop() { long duration, distance; digitalWrite(TRIGGER_PIN, LOW); // Added this line delayMicroseconds(2); // Added this line digitalWrite(TRIGGER_PIN, HIGH); delayMicroseconds(10); // Added this line digitalWrite(TRIGGER_PIN, LOW); duration = pulseIn(ECHO_PIN, HIGH); distance = (duration/2) / 29.1; Serial.print(distance); Serial.println(" cm"); delay(1000); }
15
16
DTH11 ติดตั้ง DHT11 (sensor วัดอุณหภูมิและความชื้น) โดยต่อสายาตามภาพ(เข้า Pin D4 )
? ทำการเพิ่ม library ของ DHT11
? นำ code ใน example มาทำการแก้ไข
?


17
18
LIGHT SENSOR LDR sensor
? ขาซ้าย ใช้ Analog A0 , R ต่อ 3V3 ขาขวา เข้า GND เขียน code อ่าน analog pin ดังนี้
void setup() { // put your setup code here, to run once: Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: int sensorvalue = analogRead(A0); Serial.println(sensorvalue); delay(1000); } เปิด Serial Monitor เพื่อดูค่าที่ได้
19
Switch Button
ขาซ้าย ใช้ Analog D4 , R ต่อ 3V3 ขาขวา เข้า GND เขียน code อ่าน Digital pin ดังนี้
void setup() { // put your setup code here, to run once: Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: int sensorvalue = digitalRead(2);//D4 Serial.println(sensorvalue); delay(1000); } เปิด Serial Monitor เพื่อดูค่าที่ได้ จะได้ค่า 0 1 ตามที่กดสวิทซ์
20
I2C LED Display
? การเดินสาย VCC-3V3 GND-GND SCL-D1 SDA-D2 ESP8266 สามารถเชื่อมต่อกับจอ OLED แบบ หลังจากนั้นทำการติดตั้ง library Adafruit_SSD1306 และ Adafruit_GFX ซึ่งเดิมใช้งานร่วมกับ Arduino ให้สามารถใช้งานกับ ESP8266 ได้
21
22
นำ Example มาแก้ไข
แก้ไข ในส่วน Include ให้ไปดึง #include <ESP_Adafruit_SSD1306.h> และ ปิด SPI.h เสีย และแก้ไขโปรแกรมเล็กน้อยตามภาพ
23
ปิด SPI.h
Include Library ESP adafruit ใหม่เข้าไป
แก้ function เอา PROGMEM ออก
แก้ display Begin เป็น 0x78>>1
24
Wifi ค้นหา WIFI โดยใช้ WiFIscan
Upload และเปิด Serial Monitor
25
ปรับ ค่าความถี่เป็น 115200 baud จะปรากฎชื่อ Access point ที่อยู่โดยรอบทั้งหมด
26
Access Point ไปที่ example ตามภาพ
สามารถเปลี่ยนชื่อ และข้อความ ได้ ประยุกต์ใช้ในการอ่านค่าและแสดงผลผ่าน browser โดยไม่ต้องมี router
Username /password
เข้า ip 192.168.4.1 ผ่าน browser
ข้อความที่จะแสดงบน web browser
27
Web Server ทำการ เดินสาย LED แบบ Work shop ที่ 2
28 แก้ไข ssid กับ password เป็น account ของ router ที่ออกเน็ทได้
Ssid และ password ของ router
ทำการเปิด serial monitor จะได้ ip address มา 1 ชุด ใช้ โทรศัพท์ หรือ PC เปิด browser แล้ว ตาม ip ที่ได้มา ใส่ http://(ipที่ได้)/gpio/0 http:// (ipที่ได้/gpio/1
เป็นการปิด LED เป็นการเปิด LED
29
Cloud การส่งค่าไปยัง internet ทำได้โดยใช้ Client
สมัครการใช้งานบริการ Cloud ฟรีที่ thinkspeak.com
30
สร้าง channel ใหม่ขึ้นมา
หลังจากสร้าง channel เสร็จไปที่ tab Data Import/Export เราจะใช้ code ส่งค่าแบบ GET ไปใส่ใน NodeMCU
31 Arduino IDE เปิด Example ดังภาพ
เปลี่ยน ssid password และ host เป็น thinkspeak
Ssid , password
Host thinkSpeak
32
URL
แก้ code ในส่วนของ URL ที่จะ GET ค่าส่งไป ในกรณีนี้ลองส่งค่า 22 ไป(หรือาจจะลองส่งหลายๆค่าดู)
ข้อมูลสามารถแสดงผลเป็นกราฟในเวบ ThinkSpeak ได้
33
บรรณาณุกรม http://thaiopensource.org/ http://www.ayarafun.com/2015/04/arduino-ide-for-esp8266/ http://www.thaieasyelec.com/article-wiki/embedded-electronics-application/gettingstarted-with-esp8266-nodemcu.html https://cmmakerclub.com/ https://www.arduino.cc https://www.facebook.com/groups/arduino.thai/ https://www.facebook.com/groups/esp8266thailand/ https://www.facebook.com/groups/194518927547066/ https://www.facebook.com/siamiotmaker/