| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
เมื่อ Download เรียบร้อยแล้ว ก็ให้แตกไฟล์ และนำไปวางที่ C:\Users[YourName]\Documents\Arduino\hardware\espressif\esp32 โดยหากไม่มี folder ตั้งแต่ espressif ก็ให้สร้าง folder ขึ้นมาให้ได้ตามข้างต้น โดยให้เปลี่ยนชื่อจาก arduino-esp32-master เป็น esp32 เฉยๆ
จากนั้นให้เข้าไปที่ C:\Users[YourName]\Documents\Arduino\hardware\espressif\esp32\tools และรันโปรแกรมชื่อ get.exe โดยโปรแกรมนี้จะทำหน้าที่โหลด โปรแกรมและ Library ของ ESP32
ให้รอจนเสร็จ โปรแกรมจะปิดเอง
หลังจากนั้นให้ตั้งบอร์ด โดยผมใช้เป็น DOIT ESP32 DEV KIT V.1 แล้วกำหนดพอร์ดให้ถูก จากนั้นทดลองโหลดโปรแกรม Blink ไฟกระพริบเทพลงไป ถ้ามีการกระพริบ ก็แสดงว่าใช้ได้
ปล. โปรแกรมทั้งหมด เขียนผ่าน Platform I/O
https://github.com/khthana/ESP32-Code/blob/master/Blink.cpp
สำหรับการต่อ Switch ก็จะคล้ายๆ ในรูป (ในรูปเป็นบอร์ดคนละรุ่น แต่ใช้ขาเดียวกัน)
โปรแกรมก็จะมีดังนี้
https://github.com/khthana/ESP32-Code/blob/master/SwitchInput.cpp
https://github.com/khthana/ESP32-Code/blob/master/AttachInterrupt.cpp
และความละเอียดก็มากขึ้นด้วย โดยมีให้ถึง 0-4096 ระดับ
สำหรับโปรแกรมนี้ก็จะใช้ GPIO34
https://github.com/khthana/ESP32-Code/blob/master/ADC.cpp
void ledcSetup(byte channel, double freq, byte resolution_bits);
channel คือ หมายเลขของ Timer ที่อยู่ภายใน ESP32 โดยมีตั้งแต่ 0-15 freq คือ ความถี่ที่จะให้ Timer สร้างให้ โดยใช้เป็นความถี่ฐาน resolution_bits คือ ค่าความละเอียด ใช้ได้ตั้งแต่ 0-15 (บิต) หากจะใช้เท่ากับ Arduino ก็ใช้ 8 บิต ซึ่งจะต้องสัมพันธ์กับคำสั่ง ledcWrite ด้วย เช่น จากโปรแกรมจะใช้ 13 บิต ดังนั้นในคำสั่ง ledcWrite จะใช้ค่าสูงสุด 8096 โดยค่านี้จะเป็นความละเอียดของ Duty Cycle ที่สามารถใช้ได้
อีกฟังก์ชันที่ใช้ คือ
void ledcAttachPin(int pin, byte channel);
จะใช้ในการเชื่อมขาของ ESP32 เข้ากับ Timer (แปลว่าจะใช้ขาอะไรก็ได้) นอกจากนั้น Timer 1 ตัวจะเชื่อมกับหลายขาก็ได้ด้วย
ฟังก์ชันสุดท้าย คือ
void ledcWrite(byte channel, int duty);
จะใช้ในการสั่งคลื่นให้ออกทางขา โดยสามารถกำหนด Duty Cycle ได้ (ต้องสัมพันธ์กับ resolution)
https://github.com/khthana/ESP32-Code/blob/master/PWM.cpp
https://github.com/khthana/ESP32-Code/blob/master/Tone.cpp
DAC (Digital to Analog Converter) หรือความสามารถในการสร้างสัญญาณ Analog เป็นความสามารถใหม่ที่มีใน ESP32 โดยไม่มีใน Arduino และ ESP8266 ซึ่งจริงๆ แล้ว DAC มีประโยชน์หลายอย่าง เช่น สามารถนำไปใช้ในการสร้างเสียงที่คล้ายกับเสียงจริงได้ หรือ เอาไปสร้าง Function Generator ได้ หรืออื่นๆ อีกมากมาย
DAC ใน ESP32 ได้ให้มา 2 ช่อง หรือ 2 ขา คือ ขา GPIO25 และ GPIO26 โดยมีระดับสัญญาณ 8 บิต ดังนั้นสัญญาณที่สร้างขึ้นก็อาจจะไม่ smooth มากนัก แต่ข้อจำกัดคือ กระแสอาจไม่มากนัก
โปรแกรมตัวอย่างเป็นโปรแกรม Function Generator คือ โปรแกรมสำหรับสร้างรูปคลื่น โดยเป็นโปรแกรมสำหรับสร้าง sine wave โดยถ้าต้องการรูปคลื่นแบบอื่น ก็สามารถเปลี่ยนได้โดยเอา code จาก comment มาเปลี่ยนแทน โดยตัวอย่างโปรแกรมมีดังนี้
https://github.com/khthana/ESP32-Code/blob/master/DAC_Basic.cpp
https://github.com/khthana/ESP32-Code/blob/master/DAC_Advance.cpp
เป็นเซ็นเซอร์สำหรับตรวจวัดอุณหภูมิและความชื้นยอดนิยม เรียกได้ว่าถ้ามีสอนเกี่ยวกับ IoT ต้องมี DHT22 มาเลย ในโปรแกรมนี้จะต่อที่ขา 12
https://github.com/khthana/ESP32-Code/blob/master/DHT22.cpp
โปรแกรมตัวอย่างจะมีทั้งหมด 3 โปรแกรม
โปรแกรมแรกจะเป็นโปรแกรมง่ายๆ แสดงข้อความอย่างเดียว (ปล. ต้องไปแก้ไฟล์ Include โดยแก้ความละเอียดเป็น 128x64)
https://github.com/khthana/ESP32-Code/blob/master/OLED_text.cpp
โปรแกรมที่ 2 เป็นโปรแกรมแสดงกราฟิกแบบง่ายๆ คือวาด สี่เหลี่ยม วงกลม
https://github.com/khthana/ESP32-Code/blob/master/OLED_Graphic.cpp
สำหรับโปรแกรมที่ 3 เป็นโปรแกรม demo ของ OLED มีความซับซ้อนพอสมควร แสดงทุกฟังก์ชันที่สามารถทำได้
https://github.com/khthana/ESP32-Code/blob/master/OLED_Graphic2.cpp
โปรแกรมนี้จะมีการแสดงผลผ่าน OLED ซึ่งไม่ใช้ก็ได้ (ให้ Comment ออก)
https://github.com/khthana/ESP32-Code/blob/master/WiFi_Client.cpp
โปรแกรมนี้ จะรอรับ Connection ได้ 2 IP
https://github.com/khthana/ESP32-Code/blob/master/WiFi_Server.cpp
นอกจาก ESP32 จะทำงานในโหมด Station คือ Connect กับ Access Point อื่นๆ แล้ว ยังสามารถทำงานในโหมด AP คือทำตัวเป็น Access Point เพื่อให้ Client มาเกาะ โดยจะมี 2 โปรแกรม คือ ส่วนที่เป็น Server และส่วนที่เป็น Client โดยค่า IP ของ AP ที่เป็น Default คือ 192.168.4.1
https://github.com/khthana/ESP32-Code/blob/master/AP_Mode_Server.cpp
https://github.com/khthana/ESP32-Code/blob/master/AP_Mode_Client.cpp
ก่อนอื่นก็ไปสมัคร โดยเข้าไปที่เว็บ https://thingspeak.com/ สร้าง Account เสร็จแล้วล็อกอิน จากนั้นเลือก New Channel โดยในโปรแกรมเราจะต่อกับ DHT22 ดังนั้นก็ให้สร้าง Channel สำหรับเก็บค่าอุณหภูมิ
จากนั้นให้ไปที่ API Keys แล้ว copy API Key เก็บเอาไว้ ทั้งสองตัว สำหรับโปรแกรมนี้จะเป็นโปรแกรมที่อ่านค่าจาก DHT22 แล้วส่งมาที่ Thingspeak ซึ่งหากจะเอาโปรแกรมไปใช้ ก็ให้เปลี่ยนค่า Write API Key เป็นของตัวเอง และกำหนด ssid/password แล้วก็รัน มันจะส่งข้อมูลทุก 5 วินาที ถ้าจะให้ส่งช้าหรือเร็วกว่านี้ ก็เปลี่ยนที่ delay
เสร็จแล้วก็ไปเช็คที่เว็บ Thingspeak ว่ามีข้อมูลขึ้นหรือไม่ ถ้ามีข้อมูลก็แสดงว่าโปรแกรมทำงานได้ถูกต้อง
https://github.com/khthana/ESP32-Code/blob/master/Thingspeak.cpp
ก่อนอื่นก็ต้องติดตั้งโปรแกรม Blynk แล้วสร้าง Project ตั้งชื่อ แล้วเลือกบอร์ดเป็น ESP32 จากนั้น Blynk จะส่ง Token มาทาง E-Mail แล้วก็ต้องติดตั้ง Library Blynk ใน IDE ด้วยนะครับ
จากนั้นก็โหลดโปรแกรมต่อไปนี้ลงใน ESP32
https://github.com/khthana/ESP32-Code/blob/master/Blynk.cpp
จากนั้นก็ Config ที่ Blynk ตามใจชอบ หากต้องการทดสอบ ให้สร้าง widget ที่เป็นปุ่มมา 1 ปุุ่ม โดยตั้ง GPIO ให้ตรงกับไฟ LED แล้วกด Play จะพบว่าสามารถกดปุ่มเพื่อปิดเปิด LED บนบอร์ดได้
หากจะส่งค่าไปที่โปรแกรมบนมือถือ ให้เพิ่ม Gauge มา 2 อัน โดยกำหนดให้เป็น Input ให้เป็น Virtual ตั้งชื่อเป็น Temp และ Humidity ก็จะเห็นข้อมูลจาก DHT22 ส่งขึ้นไปแสดงใน Widget
ก่อนอื่นให้เข้าไปที่ https://firebase.google.com/ แล้วล็อกอิน
จากนั้นเลือก Add Project ตั้งชื่อ เลือกประเทศ แล้ว Create Project ก็จะเข้ามาที่หน้านี้
ไปที่ Project Setting (รูปเฟือง) ไปต่อที่หน้า Service Accounts แล้วเลือก Database Secrets
ให้คัดลอกคีย์เอาไว้ ตรงบริเวณที่เป็น จุดจุด ให้กดที่ show ก่อน เพื่อให้ยกเลิกการซ่อน
เสร็จแล้วให้คลิกที่ Develop -> Database แล้วคลิก Get Started ที่ Realtime Database เลือก Start in Test Mode แล้วกด Enable จะได้หน้าจอนี้
เอาละครับคราวนี้ก็กลับไปที่ ESP32 แล้วติดตั้ง Library ชื่อ
| Back | FazBrowse Home | New Git URL |