Basics TTGO LoRa32 SX1278 433MHz (Lab5)

สำหรับการทดลองที่ 5 นี้จะเป็นตอนสุดท้ายของการใช้บอร์ด TTGO LoRa32 SX1278 เชื่อมต่อกับสัญญาณไวไฟ (Wi-Fi) เพื่อนำข้อมูลเข้าสู่อินเตอร์เน็ตนั้นเอง ซึ่งจะหมายความว่าเราสามารถนำข้อมูลที่เราได้จากการสื่อสารในรูปแบบความถี่วิทยุย่าน 433MHz มาส่งต่อไปยังอินเตอร์เน็ตโดยใช้บอร์ดเดียวกันนั้นเอง

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

Basics TTGO LoRa32 SX1278 433MHz

ในส่วนข้างล่างนี้จะเป็นโปรแกรมที่ใช้กับบอร์ด TTGO LoRa32 SX1278 ให้เราโปรแกรมไปยังบอร์ดได้เลย เพื่อให้เราสามารถเชื่อมต่อกับแอพพลิเคชั่น Blynk ได้ โดยส่วนที่สำคัญของโปรแกรมคือเราจะต้องใช้รหัส Token โดยเราจะต้องสมัครแอพพลิเคชั่น Blynk ก่อนจากนั้น แอพพลิเคชั่น Blynk จะส่งรหัสมาให้เราที่อีเมลย์เราได้สมัครไว้ดังรูปข้างล่าง

เมื่อเราได้รหัส Token แล้วให้เรานำมาใส่ที่คำสั่ง char auth[] = “-e3IFtVijHq—xxxxxxxx—CrnrdRPybEH”; ในส่วนของฟันหนูเปิดและปิด ต่อมาที่คำสั่ง char ssid[] = “xxxx”; char pass[] = “xxxx”; จะให้เราใส่รหัส Wi-Fi ที่เราต้องการเชื่อมต่อ (อาจจะใช้ Hotspot Wi-Fi บนโทรศัพท์มือถือได้) เพียงเท่านี้เราก็สามารถควบคุมเบื้องต้นได้แล้ว

 /* Test  TTGO LoRa32 SX1278 Board for IoTs Platform on Blynk Application*/

 #define BLYNK_PRINT Serial
 #include  <WiFi.h>
 #include  <WiFiClient.h>
 #include  <BlynkSimpleEsp32.h>

 int led = 2;  // LED on board is PIN2
 int pinValue;

 // You should get Auth Token in the Blynk App.

 char auth[] = "-e3IFtVijHq---xxxxxxxx---CrnrdRPybEH";
 char ssid[] = "xxxx";
 char pass[] = "xxxx";
 BlynkTimer timer; 

 void setup()
 {       
   Serial.begin(115200);
   Blynk.begin(auth,ssid,pass);   
 }

 void loop()
 { 
   Blynk.run();   
   timer.run();        
 }

จากนั้นให้เราเปิดใช้งานแอพพลิเคชั่น Blynk บนโทรศัพท์มือถือ ซึ่งจะแสดงดังรูปข้างล่างนี้

TTGO LoRa32 SX1278 433MHz

ต่อมาให้เรากดที่ปุ่มเครื่องหมาย + ที่เมนูบนด้านซ้ายมือ จากนั้นให้เราตั้งชื่อโปรเจกและเลือกบอร์ดควบคุมเป็น ESP32 Dev Board ตามรูปที่แสดงต่อไป

TTGO LoRa32 SX1278 433MHz

เสร็จแล้วให้เรากดที่ปุ่ม OK (เมนูขวามือ) และจะมีเมนูเพิ่มเติมให้เราเลือก Create ก็เป็นอันเสร็จเรียบของการสร้างโปรเจกแล้ว แสดงดังในรูปข้างล่างถัดไป

TTGO LoRa32 SX1278 433MHz
TTGO LoRa32 SX1278 433MHz

ถัดมาจากรูปข้างบนให้เรากดที่ปุ้มเครื่องหมาย + เพื่อเป็นการเพิ่มวิดเจ็ด (Widget) สำหรับการใช้งานต่างเช่น การใช้สวิตช์กด, การแสดงผลรูปกราฟ, การควบคุมด้วยเซนเซอร์ ต่างๆ เป็นต้น ดังแสดงในรูปข้างล่าง

TTGO LoRa32 SX1278 433MHz

ให้เราเลือกที่วิดเจ็ด Button จากนั้นเราก็จะได้ปุ่มกดมาแสดผลตามรูปถัดมา

TTGO LoRa32 SX1278 433MHz

จากนั้นให้เราเลือกตังค่าต่างของวิดเจ็ด Button แสดงในรูปถัดมาครับ และให้เราคลิกที่ลูกศรที่มุมขวามือบน เพื่อกลับมาสู่หน้าพร้อมใช้งาน

TTGO LoRa32 SX1278 433MHz

จากนั้นให้เราเริ่มการใช้งานแอพพลิเคชั่น Blynk ด้วยการกดที่ปุ่มสามเหลี่ยมมุมขวาบนอีกครั้ง

TTGO LoRa32 SX1278 433MHz

เมื่อเราเริ่มใช้งานแล้วลักษณะของปุ่มกด Button จะดูสวยเพิ่มขึ้น ซึ่งเราสามารถใช้ควบคุมบอร์ด TTGO LoRa32 SX1278 ได้แล้ว และให้เราทดลองกดปุ่มสวิตช์ทดลองดูครับ

TTGO LoRa32 SX1278 433MHz

จากนั้นให้เราทดลองกดที่สวิตช์รีเซตบนบอร์ด TTGO LoRa32 SX1278 ซึ่งเราได้ทำการโปรแกรมไว้แล้ว และให้เราเปิดโปรแกรม Arduino IDE อีกครั้ง แล้วดูข้อความตามที่แสดงดังรูปข้างล่าง ซึ่งก็หมายความว่าบอร์ด TTGO LoRa32 SX1278 เชื่อมต่อกับแอพพลิเคชั่น Blynk ได้แล้ว

TTGO LoRa32 SX1278 433MHz

ให้เราปุ่มกด Button อีกครั้ง ซึ่งตอนนี้ LED สีน้ำเงินบนบอร์ด TTGO LoRa32 SX1278 จะติดและดับ ตามที่เรากดแล้วครับดังรูป

TTGO LoRa32 SX1278 433MHz

ในรูปข้างล่างจะแสดงลักษณะของบอร์ด TTGO LoRa32 SX1278 เมื่อ LED สีน้ำเงินบนบอร์ดติดแสดงผลให้ทราบ

TTGO LoRa32 SX1278 433MHz

สำหรับโครงงาน Basics TTGO LoRa32 SX1278 433MHz ตอนที่ 5 นี้จะเป็นตอนสุดท้ายแล้วครับ ซึ่งในโปรแกรมนั้นเราสามารถส่งค่าตัวแปรที่ต้องการแสดงผลหรือควบคุมการทำงานขาต่างๆ บนบอร์ดได้ตามต้องการ และขอแนะนำให้ค้นหาข้อมูลในเว็บไซต์ต่างๆ ตามที่อ้างอิง [1][2][3] เพิ่มนะครับ สุดท้ายสำหรับการนำเสนอเนื้อหามาทั้ง 5 ตอนนั้น ยังคงเป็นพื้นฐานสำหรับให้เราสามารถนำไปปรับปรุงและพัฒนาให้เหมาะสมกับโปรเจกต่างๆ ของเรากันต่อนะครับ

Reference

  1. https://blynk.io/
  2. Blynk Example Browser
  3. Blynk Community – Join the most popular IoT platform to connect your devices to the cloud, design apps to control them, and manage your deployed products at scale
  4. http://www.lilygo.cn/prod_view.aspx?TypeId=50003&Id=1133&FId=t3:50003:3
  5. https://randomnerdtutorials.com/ttgo-lora32-sx1276-arduino-ide/
  6. https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-3/18436
  7. https://github.com/josephpal/esp32-LoraWAN/blob/master/ESP32-LoRa-Setup.md
  8. https://github.com/sandeepmistry/arduino-LoRa
  9. https://github.com/LilyGO/TTGO-LORA32
  10. https://www.instructables.com/Introduction-to-ESP32-WiFi-LoRa/
  11. https://learn.sparkfun.com/tutorials/esp32-lora-1-ch-gateway-lorawan-and-the-things-network/all
  12. https://cdn-shop.adafruit.com/product-files/3179/sx1276_77_78_79.pdf
  13. https://heltec.org/project/wifi-lora-32/
  14. https://github.com/HelTecAutomation/Heltec_ESP32
  15. https://heltec-automation-docs.readthedocs.io/en/latest/esp32/quick_start.html
  16. https://how2electronics.com/interfacing-sx1278-lora-module-with-arduino/
  17. https://how2electronics.com/esp32-lora-sensor-data-monitoring-web-server/
  18. https://resource.heltec.cn/download/WiFi_LoRa_32/WIFI_LoRa_32_V2.pdf