ชื่อโปรเจกต์: เครื่องรับ-ส่งข้อความสั้น LoRa แบบพกพา (ตัวแรงเลยนะน้อง)
Introduction
พี่แม่งโคตรชอบเลยว่ะ เวลาที่เห็นเราส่งข้อมูลไปได้ไกลๆ ระหว่างอุปกรณ์สองตัวแบบไร้สายเนี่ย
แล้วที่เจ๋งที่สุดคืออะไรป่ะ? คือมันทำได้ฟรีเว้ย! ไม่ต้องง้อค่ายมือถือ ไม่ต้องจ่ายค่ารายเดือนให้เปลืองตังค์น้องเลยสักบาท
เจ้าเครื่องสองตัวนี้จะทำให้เราส่ง-รับข้อความสั้นๆ ได้ด้วยเทคโนโลยี LoRa สุดล้ำ จัดอุปกรณ์ตามนี้เลยวัยรุ่น:
- #[ESP32](https://s.shopee.co.th/6pvZFdZdRf)
- #RFM95
- #Battery
- #Antenna
- #PCBWay
#pcbway #[arduino](https://s.shopee.co.th/7fUgFAWSki) #arduinoproject #esp32 #rfm95 #lora
Video
วิธีปรับแต่ง Config (แก้ให้ถูกนะน้อง เดี๋ยวบั๊กกิน)
- ถ้าอยากจะเพิ่มอุปกรณ์เข้าไปในวงอีก ก็แค่ไปแก้ Variable ที่ชื่อ "localAddress" ตั้งชื่อ ID ให้มันไม่ซ้ำกันล่ะ เดี๋ยวคุยกันไม่รู้เรื่อง
- ถ้าอยากจะส่งข้อความหาใครแบบเจาะจงตัว ก็ไปแก้ที่ Variable "destination" แล้วใส่เลข ID ของเครื่องที่น้องอยากจะทักไปหาลงไป
- แต่ถ้าอยากจะประกาศศักดาให้รู้กันหมด (Broadcast) ก็ใส่เลข 255 ลงใน Variable "destination" ได้เลย จัดไปแบบตะโกน!
- ส่วนใครอยากเพิ่มข้อความเท่ๆ เข้าไปอีก ก็ไปเปิดไฟล์ "messages.h" แล้วแก้ค่า NUMBER_OF_STRING ให้เท่ากับจำนวนข้อความที่อยากจะมี จากนั้นก็ไปเพิ่ม string ต่อท้ายใน Array "char arr" ซะ ง่ายๆ แค่นี้เอง
รายละเอียดทางเทคนิคแบบจัดเต็ม
ระบบส่งข้อความทางไกลแบบไม่ง้อเน็ต (Decentralized)
โปรเจกต์นี้เราจะสร้างเครื่องสื่อสารข้อความแบบพกพาที่ส่งได้ไกลหลายกิโลเมตร โดยไม่ต้องพึ่งสัญญาณมือถือหรือ Internet เลยแม้แต่นิดเดียว
- Semtech LoRa Modulation: เราใช้ Module LoRa รุ่น SX1276/SX1278 (RFM95) โดยให้ Arduino คุมคลื่นวิทยุความถี่ 433MHz หรือ 915MHz แบบ Spread-spectrum บอกเลยว่าสัญญาณนิ่งและเสถียรมาก แม้จะอยู่ในที่ตึกหนาแน่นแค่ไหนก็ยังรอด
- OLED UI Keyboard Matrix: เชื่อมต่อกับ Keyboard แบบ Matrix เล็กๆ และจอ OLED ขนาด 128x64 ตัว Firmware จะคอยจัดการเรื่องการพิมพ์ตัวอักษร, การทำ Message buffering และแสดงข้อความที่ได้รับมา ซึ่งมีการเช็คความถูกต้องด้วย CRC มาเรียบร้อยแล้ว หล่อเท่เลยงานนี้
ความเสถียรของระบบ (Reliability)
- Automatic Retransmission (ARQ): มีระบบ Logic ยืนยันการรับข้อความด้วยนะน้อง ถ้าเครื่องปลายทางไม่ส่งสัญญาณตอบกลับ (Acknowledge) มาภายใน 2 วินาที เจ้า Arduino ของเราจะส่งแพ็กเกจนั้นซ้ำไปใหม่โดยอัตโนมัติ แถมยังอัดพลัง (Power level) ให้สูงขึ้นด้วย สู้งานจัดๆ เลยตัวนี้