Arduino to ThingSpeak via GPRS(SIM800): No Wi-Fi
การส่งข้อมูลจาก Arduino microcontroller ไปยัง ThingSpeak platform โดยใช้ GPRS module ไม่ใช่แนวคิดโปรเจกต์ใหม่ แม้ว่าอาจดูเหมือนล้าสมัยในหลายภูมิภาค เนื่องจากการพัฒนาอย่างรวดเร็วของ communication technologies เช่น 2G, 3G, 4G, 5G และศักยภาพของ 6G แต่สิ่งนี้ไม่เป็นเช่นนั้นในประเทศของผม ในอินเดีย, 2G technologies ยังคงแพร่หลาย และ major network operators ได้ยืนยันความตั้งใจที่จะรักษาระบบ 2G services ไว้
เอกสารโปรเจกต์ดั้งเดิมที่ออกแบบด้วย SIM800 module อาจต้องมีการปรับเปลี่ยนเล็กน้อย โปรเจกต์นี้จะมีคุณค่าอย่างยิ่งสำหรับผู้ที่ยังคงพึ่งพา 2G และ GPRS technology มันให้การสนับสนุนและคำแนะนำที่จำเป็นสำหรับบุคคลที่ต้องการใช้ communication methods เหล่านี้ต่อไป
การส่งข้อมูลจาก Arduino microcontroller ไปยัง ThingSpeak platform โดยใช้ GPRS module โดยเฉพาะ SIM800 ถือเป็นแนวคิดพื้นฐาน สิ่งสำคัญคือ communication method นี้ทำงานได้อย่างอิสระจาก Wi-Fi ซึ่งเป็น IoT connectivity solution ที่พึ่งพา GPRS สำหรับ data transmission

ในโปรเจกต์นี้, ข้อมูลจาก LM35 temperature sensor กำลังถูกส่งไปยัง ThingSpeak platform ผ่าน Arduino Nano และ SIM800 module โดย SIM800 module ถูกใช้เพื่อสร้าง GPRS connection อำนวยความสะดวกในการส่ง data ไปยัง ThingSpeak ในช่วงเวลาที่กำหนด
เพื่อให้แน่ใจว่ามีการเชื่อมต่อที่เชื่อถือได้ระหว่าง ThingSpeak และ hardware ผู้ใช้จะต้อง configure SIM800 module เพื่อสร้าง connection กับ mobile network ของตน การ configuration นี้ครอบคลุมถึงการตั้งค่า Access Point Name (APN) ที่เฉพาะเจาะจงสำหรับ mobile carrier ของตน สิ่งสำคัญคือ AT commands สำหรับการ configuration นี้อาจแตกต่างกันไปตาม mobile network provider ที่ผู้ใช้เลือก
สำหรับโปรเจกต์นี้ ผมใช้ services ของ network provider Airtel เพื่อสร้าง connection
การสื่อสารระหว่าง hardware components โดยเฉพาะ SIM800 module, Arduino Nano และ ThingSpeak platform อาศัย AT commands ทั้งหมด เพื่อให้แน่ใจว่าโปรเจกต์จะสำเร็จและสามารถ troubleshoot ปัญหาที่อาจเกิดขึ้นได้อย่างมีประสิทธิภาพ ผู้ใช้ต้องมีความเข้าใจพื้นฐานเกี่ยวกับ SIM800 AT commands ความรู้นี้มีความสำคัญสำหรับการ configuring, managing และ diagnosing กระบวนการ communication รวมถึงการแก้ไขปัญหาที่อาจเกิดขึ้นระหว่างโปรเจกต์
รับการผลิต PCB สำหรับโปรเจกต์ของคุณ
คุณต้องลองดู PCBWAY สำหรับการสั่งซื้อ PCB ออนไลน์ในราคาถูก!
คุณจะได้รับ PCB คุณภาพดี 10 ชิ้นที่ผลิตและจัดส่งถึงหน้าบ้านคุณในราคาถูก คุณจะได้รับ discount ค่า shipping สำหรับการสั่งซื้อครั้งแรกของคุณด้วย อัปโหลด Gerber files ของคุณไปยัง PCBWAY เพื่อให้พวกเขาผลิตด้วย good quality และ quick turnaround time ขณะนี้ PCBWay สามารถให้บริการ complete product solution ตั้งแต่ design ไปจนถึง enclosure production ตรวจสอบ online Gerber viewer function ของพวกเขา ด้วย reward points คุณสามารถรับของฟรีจาก gift shop ของพวกเขา นอกจากนี้, ลองดู blog ที่มีประโยชน์เกี่ยวกับ PCBWay Plugin สำหรับ KiCad จาก ที่นี่ การใช้ plugin นี้ คุณสามารถสั่งซื้อ PCB ได้โดยตรงในคลิกเดียวหลังจากเสร็จสิ้น design ใน KiCad
การทดสอบ Networking
ตารางที่ให้ไว้ด้านล่างแสดงรายการ AT commands ทั่วไปหลายรายการที่ใช้เพื่อตรวจสอบการทำงานที่ถูกต้องของ AT serial communication และ network connection ของ SIM800C อย่างรวดเร็วและมีประสิทธิภาพ ก่อนที่จะดำเนินการตามขั้นตอนที่ระบุสำหรับการสาธิต network communication ขอแนะนำให้ทำการ network test ที่ตรงไปตรงมา การทดสอบเบื้องต้นนี้ช่วยให้มั่นใจว่า network connection ที่ตั้งใจไว้ทำงานได้และใช้งานได้อย่างสมบูรณ์

TCP/IP Communication
TCP/IP application ของ SIM800 serial module มี connection modes สองโหมด ซึ่งสามารถเลือกได้ผ่าน AT command `AT CIPMUX=<n>`
เมื่อตั้งค่า `AT CIPMUX` เป็น 0 (`AT+CIPMUX=0`) มันจะทำงานใน single-link mode
เมื่อตั้งค่า `AT CIPMUX` เป็น 1 (`AT+CIPMUX=1`) มันจะทำงานใน multi-link mode
โดย default, module จะถูก configure ใน single-link mode
ใน single-link mode, SIM800 serial module สามารถทำงานได้ทั้งใน transparent และ non-transparent transmission modes ในทั้งสองโหมดนี้ module สามารถถูก configure เป็นได้ทั้ง TCP/UDP client หรือ TCP server
ใน multi-link mode, SIM800 serial module จะทำงานเฉพาะใน non-transparent mode ในโหมดนี้ มันสามารถทำหน้าที่เป็น TCP/UDP client ซึ่งช่วยให้สามารถสร้าง connection ได้สูงสุด 6 connections นอกจากนี้ยังสามารถถูก configure เป็น TCP server โดยรองรับ TCP/UDP clients ได้ 5 ราย SIM800C TCP/IP ทำงานด้วย multi-client architecture โดย default ซึ่งรองรับ sockets ได้สูงสุดห้า sockets สำหรับ TCP หรือ UDP connections

ในการสาธิตที่กำลังจะมาถึง เราจะเน้นที่ client communication capabilities ของ SIM800C module โดยเฉพาะอย่างยิ่ง เราจะสำรวจการทำงานของมันใน single-link non-transparent mode และ transparent mode
Client communication ใน non-transparent mode
Client communication ใน non-transparent mode หมายถึงวิธีที่ SIM800C module โต้ตอบกับ remote servers หรือ devices เมื่อมันทำหน้าที่เป็น client โดยส่ง data โดยใช้ protocol เฉพาะเช่น TCP หรือ UDP ใน non-transparent mode, module จะส่งและรับ data ผ่าน AT commands และไม่ส่ง data โดยตรงระหว่าง microcontroller และ remote server
โหมดนี้ให้การควบคุมกระบวนการ data transmission ทำให้คุณสามารถส่งและรับ data, manage connections และ configure communication settings โดยใช้ AT commands เหมาะสำหรับ applications ที่คุณต้องการ fine-grained control เหนือกระบวนการ communication และต้องการ ensure data integrity
ในการใช้ SIM800C ใน client communication ใน non-transparent mode โดยทั่วไปคุณจะต้อง configure module โดยใช้ AT commands ที่เหมาะสม และสร้าง connections กับ remote servers หรือ devices สำหรับ data exchange

Client communication ใน transparent transmission mode
Client communication ใน transparent transmission mode หมายถึงความสามารถของ SIM800C module ในการทำหน้าที่เป็น client โดยอนุญาตให้ data ไหลโดยตรงระหว่าง microcontroller (เช่น Arduino) และ remote server หรือ device ในโหมดนี้ SIM800C module ทำงานเป็น transparent bridge โดยส่งต่อ data ระหว่าง microcontroller และ remote server โดยไม่ต้องใช้ AT commands ที่ชัดเจนเพื่อส่งหรือรับแต่ละส่วนของ