หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ Arduino ไปยัง ThingSpeak ผ่าน GPRS(SIM800): ไม่ต้องใช้ Wi-Fi

การส่งข้อมูลจาก Arduino microcontroller ไปยัง ThingSpeak platform โดยใช้ GPRS module โดยเฉพาะ SIM800

โปรเจกต์ Arduino ไปยัง ThingSpeak ผ่าน GPRS(SIM800): ไม่ต้องใช้ Wi-Fi

รายการอุปกรณ์และเครื่องมือ

1x ARDUINO UNO WiFi REV2
🛒 สั่งซื้อ
1x Solder wire
-
1x Soldering Iron Tip, Drag Hoof
-

รายละเอียดและวิธีทำ

การส่งข้อมูลจาก microcontroller Arduino ไปยัง platform ThingSpeak โดยใช้ Module GPRS ไม่ใช่แนวคิดโครงการที่แปลกใหม่ แม้ว่ามันอาจจะดูล้าสมัยในหลายภูมิภาคเนื่องจากการวิวัฒนาการอย่างรวดเร็วของเทคโนโลยีการสื่อสารอย่าง 2G, 3G, 4G, 5G และความเป็นไปได้ของ 6G แต่ในประเทศของผมนั้นไม่ใช่แบบนั้น ในประเทศอินเดีย เทคโนโลยี 2G ยังคงแพร่หลาย และผู้ให้บริการเครือข่ายรายใหญ่ได้ยืนยันความตั้งใจที่จะรักษาบริการ 2G ต่อไป

เอกสารโครงการเก่าๆ ที่แต่เดิมออกแบบด้วย Module SIM800 อาจจำเป็นต้องมีการปรับปรุงเล็กน้อย โครงการนี้จะมีค่าอย่างยิ่งสำหรับผู้ที่ยังคงพึ่งพาเทคโนโลยี 2G และ GPRS โดยจะให้การสนับสนุนและคำแนะนำที่จำเป็นสำหรับบุคคลที่ตั้งใจจะใช้งานวิธีการสื่อสารเหล่านี้ต่อไป

การส่งข้อมูลจาก microcontroller Arduino ไปยัง platform ThingSpeak โดยใช้ Module GPRS โดยเฉพาะ SIM800 เป็นแนวคิดพื้นฐาน สิ่งสำคัญคือวิธีการสื่อสารนี้ทำงานได้โดยไม่ต้องใช้ Wi-Fi ซึ่งถือเป็นโซลูชันการเชื่อมต่อ IoT ที่พึ่งพา GPRS ในการรับส่งข้อมูล

ในโครงการนี้ ข้อมูลจาก Sensor วัดอุณหภูมิ LM35 จะถูกส่งไปยัง platform ThingSpeak ผ่าน Arduino Nano และ Module SIM800 โดย Module SIM800 จะถูกนำมาใช้เพื่อสร้างการเชื่อมต่อ GPRS เพื่อช่วยในการส่งข้อมูลไปยัง ThingSpeak ตามช่วงเวลาที่กำหนด

เพื่อให้แน่ใจว่าการเชื่อมต่อระหว่าง ThingSpeak และ Hardware เป็นไปอย่างราบรื่น ผู้ใช้ต้องตั้งค่า Module SIM800 เพื่อสร้างการเชื่อมต่อกับเครือข่ายมือถือ การตั้งค่านี้รวมถึงการกำหนด Access Point Name (APN) ที่เฉพาะเจาะจงสำหรับผู้ให้บริการเครือข่ายมือถือแต่ละราย สิ่งสำคัญที่ควรทราบคือ AT commands เฉพาะสำหรับการตั้งค่านี้อาจแตกต่างกันไปตามผู้ให้บริการเครือข่ายมือถือที่ผู้ใช้เลือก

สำหรับโครงการนี้ ผมใช้บริการของเครือข่าย Airtel ในการสร้างการเชื่อมต่อ

การสื่อสารระหว่างส่วนประกอบ Hardware ได้แก่ Module SIM800, Arduino Nano และ platform ThingSpeak นั้นขึ้นอยู่กับ AT commands ทั้งหมด เพื่อให้การดำเนินโครงการประสบความสำเร็จและสามารถแก้ไขปัญหาที่อาจเกิดขึ้นได้อย่างมีประสิทธิภาพ ผู้ใช้ต้องมีความรู้พื้นฐานเกี่ยวกับ SIM800 AT commands ความรู้นี้สำคัญมากสำหรับการกำหนดค่า การจัดการ และการวินิจฉัยกระบวนการสื่อสาร รวมถึงการแก้ไขปัญหาต่างๆ ในระหว่างการทำโครงการ

สั่งทำ PCBs สำหรับโครงการของคุณ

undefined

คุณต้องลองไปที่ PCBWAY เพื่อสั่งซื้อ PCBs ทางออนไลน์ในราคาถูก!

คุณจะได้รับ PCBs คุณภาพดี 10 แผ่นที่ผลิตและส่งตรงถึงหน้าบ้านในราคาประหยัด นอกจากนี้คุณยังจะได้รับส่วนลดค่าจัดส่งสำหรับการสั่งซื้อครั้งแรกอีกด้วย เพียงอัปโหลดไฟล์ Gerber ของคุณไปยัง PCBWAY เพื่อสั่งผลิตด้วยคุณภาพดีและระยะเวลาที่รวดเร็ว ตอนนี้ PCBWay สามารถให้บริการโซลูชันผลิตภัณฑ์ที่สมบูรณ์แบบ ตั้งแต่การออกแบบไปจนถึงการผลิต Enclosure ลองเข้าไปใช้งานฟังก์ชัน Gerber viewer ออนไลน์ของพวกเขาดูสิ และด้วยคะแนนสะสม คุณสามารถรับของฟรีจาก gift shop ได้ด้วย นอกจากนี้ ลองอ่าน Blog ที่มีประโยชน์เกี่ยวกับ PCBWay Plugin สำหรับ KiCad ได้จาก ที่นี่ โดยการใช้ Plugin นี้ คุณสามารถสั่งซื้อ PCBs ได้โดยตรงในคลิกเดียวหลังจากออกแบบเสร็จใน KiCad

การทดสอบระบบเครือข่าย

ตารางด้านล่างแสดงรายการ AT commands ทั่วไปที่ใช้เพื่อตรวจสอบการทำงานของการสื่อสาร SIM800C AT serial และการเชื่อมต่อเครือข่ายอย่างรวดเร็วและมีประสิทธิภาพ ก่อนที่จะดำเนินการตามขั้นตอนการสาธิตการสื่อสารผ่านเครือข่าย ขอแนะนำให้ทำการทดสอบเครือข่ายเบื้องต้นก่อน การทดสอบนี้จะช่วยให้แน่ใจว่าการเชื่อมต่อเครือข่ายที่ตั้งใจไว้นั้นอยู่ในสถานะที่ใช้งานได้และทำงานได้สมบูรณ์

undefined
undefined

การสื่อสาร TCP/IP

Application TCP/IP ของ Module SIM800 serial มีโหมดการเชื่อมต่อสองโหมด ซึ่งสามารถเลือกได้ผ่าน AT command `AT CIPMUX=<n>`

เมื่อตั้งค่า `AT CIPMUX` เป็น 0 (`AT+CIPMUX=0`) จะทำงานในโหมด single-link

เมื่อตั้งค่า `AT CIPMUX` เป็น 1 (`AT+CIPMUX=1`) จะทำงานในโหมด multi-link

โดยค่าเริ่มต้น Module จะถูกตั้งค่าไว้ที่โหมด single-link

ในโหมด single-link Module SIM800 serial สามารถทำงานได้ทั้งในโหมดรับส่งข้อมูลแบบ transparent และ non-transparent ในทั้งสองโหมดนี้ Module สามารถตั้งค่าให้เป็นได้ทั้ง TCP/UDP client หรือ TCP server

ในโหมด multi-link Module SIM800 serial จะทำงานในโหมด non-transparent เท่านั้น ในโหมดนี้สามารถทำหน้าที่เป็น TCP/UDP client ซึ่งช่วยให้สร้างการเชื่อมต่อได้สูงสุด 6 การเชื่อมต่อ และยังสามารถตั้งค่าเป็น TCP server ที่รองรับ TCP/UDP clients ได้ 5 ราย โดยปกติ SIM800C TCP/IP จะทำงานด้วยสถาปัตยกรรมแบบ multi-client เป็นค่าเริ่มต้น ซึ่งรองรับได้สูงสุด 5 sockets สำหรับการเชื่อมต่อ TCP หรือ UDP

undefined

ในการสาธิตที่กำลังจะถึงนี้ เราจะมุ่งเน้นไปที่ความสามารถในการสื่อสารแบบ client ของ Module SIM800C โดยเฉพาะอย่างยิ่งเราจะสำรวจการทำงานในโหมด single-link non-transparent และโหมด transparent

การสื่อสารแบบ Client ในโหมด Non-transparent

การสื่อสารแบบ client ในโหมด non-transparent หมายถึงวิธีที่ Module SIM800C โต้ตอบกับ server หรืออุปกรณ์ปลายทางเมื่อทำหน้าที่เป็น client โดยส่งข้อมูลโดยใช้ Protocol เฉพาะเช่น TCP หรือ UDP ในโหมด non-transparent นี้ Module จะรับและส่งข้อมูลผ่าน AT commands และไม่ได้ส่งผ่านข้อมูลโดยตรงระหว่าง microcontroller และ server ปลายทาง

โหมดนี้ช่วยให้สามารถควบคุมกระบวนการรับส่งข้อมูลได้ โดยให้คุณสามารถส่งและรับข้อมูล จัดการการเชื่อมต่อ และตั้งค่าการสื่อสารโดยใช้ AT commands เหมาะสำหรับแอปพลิเคชันที่คุณต้องการการควบคุมกระบวนการสื่อสารอย่างละเอียดและต้องการความมั่นใจในความถูกต้องของข้อมูล

ในการใช้งาน SIM800C สำหรับการสื่อสารแบบ client ในโหมด non-transparent โดยทั่วไปคุณจะต้องตั้งค่า Module โดยใช้ AT commands ที่เหมาะสมและสร้างการเชื่อมต่อกับ server หรืออุปกรณ์ปลายทางเพื่อแลกเปลี่ยนข้อมูล

undefined
undefined

การสื่อสารแบบ Client ในโหมด Transparent Transmission

การสื่อสารแบบ client ในโหมด transparent transmission หมายถึงความสามารถของ Module SIM800C ในการทำหน้าที่เป็น client ในขณะที่ยอมให้ข้อมูลไหลโดยตรงระหว่าง microcontroller (เช่น Arduino) และ server หรืออุปกรณ์ปลายทาง ในโหมดนี้ Module SIM800C จะทำงานเป็นสะพานเชื่อมต่อ (transparent bridge) โดยส่งต่อข้อมูลระหว่าง microcontroller และ server โดยไม่ต้องใช้ AT commands แยกต่างหากในการส่งหรือรับข้อมูลแต่ละชิ้น

โหมดนี้ช่วยให้การถ่ายโอนข้อมูลง่ายขึ้นโดยมองว่า Module SIM800C เป็นท่อส่งข้อมูล ข้อมูลที่ส่งโดย microcontroller จะถูกส่งต่อไปยัง server ปลายทางโดยไม่ต้องจัดการ packet ด้วยตนเอง และข้อมูลที่ได้รับจาก server จะถูกส่งต่อไปยัง microcontroller โดยไม่ต้องผ่านการประมวลผลด้วยตนเอง

การใช้ SIM800C ในโหมด transparent transmission มีข้อดีเมื่อคุณต้องการปรับปรุงกระบวนการถ่ายโอนข้อมูลให้รวดเร็วขึ้นและลดความซับซ้อนในการจัดการ data packets และ AT commands สำหรับงานสื่อสารแต่ละอย่าง ซึ่งมีประโยชน์อย่างยิ่งสำหรับแอปพลิเคชันที่ต้องการความเร็วในการรับส่งข้อมูลและประสิทธิภาพการทำงาน

undefined
undefined

การสื่อสารแบบ HTTP

บทนี้จะแสดงภาพรวมของความสามารถในการสื่อสารแบบ HTTP ของ Module SIM800C โดยเน้นที่วิธีการ HTTP GET และ HTTP POST สำหรับข้อมูลเชิงลึกเกี่ยวกับการสื่อสาร HTTP และ FTP (File Transfer Protocol) ด้วย Module SIM800C โปรดอ้างอิงจาก "SIM800C Series_IP_Application_Note" แหล่งข้อมูลเพิ่มเติมนี้จะให้รายละเอียดและแนวทางที่ครอบคลุมเพื่อการใช้งานฟังก์ชันการสื่อสารเหล่านี้อย่างมีประสิทธิภาพ

HTTP GET

undefined
undefined

HTTP Post

undefined
undefined

SIM800 Series_AT Command Manual_V1.10

SIM800 Series_TCPIP_Application Note_V1.02

แผนผังการเชื่อมต่อ

undefined

การสร้างการสื่อสารระหว่าง Arduino Nano, SIM800 และ ThingSpeak (ข้อมูลจาก Serial Monitor ที่จับได้ระหว่างการดำเนินโครงการ)

AT+CSTT="airtelgprs.com"<CR>

OK

AT+CIICR<CR>

OK

AT+CIFSR<CR>

100.78.215.26

AT+CIPSPRT=0<CR>

OK

AT+CIPSTART="TCP","api.thingspeak.com","80"<CR>

OK


CONNECT OK<CR>AT+CIPSEND<CR>GET https://api.thingspeak.com/update?api_key=5XC1TCVONJVK1PNN&field1=20.00&field2=10.00

GET https://api.thingspeak.com/update?api_key=5XC1TCVONJVK1PNN&<SUB>


SEND OK

6

CLOSED

<CR>AT+CIPSHUT<CR>Temperature = 20.00 °C

Humidity = 10.00 %


SHUT OK

AT<CR>

OK

AT+CPIN?<CR>

+CPIN: READY


OK

AT+CREG?<CR>

+CAT+CSTT="airtelgprs.com"<CR>

OK

AT+CIICR<CR>

OK

AT+CIFSR<CR>

100.90.199.122

AT+CIPSPRT=0<CR>

OK

AT+CIPSTART="TCP","api.thingspeak.com","80"<CR>

OK


CONNECT OK<CR>AT+CIPSEND<CR>GET https://api.thingspeak.com/update?api_key=5XC1TCVONJVK1PNN&field1=20.00&field2=10.00

GET https://api.thingspeak.com/update?api_key=5XC1TCVONJVK1PNN&<SUB>


SEND OK

7

CLOSED

<CR>AT+CIPSHUT<CR>Temperature = 20.00 °C

Humidity = 10.00 %


SHUT OK

AT<CR>

OK

AT+CPIN?<CR>

+CPIN: READY


OK

AT+CREG?<CR>

+CAT+CSTT="airtelgprs.com"<CR>

OK

AT+CIICR<CR>

OK

AT+CIFSR<CR>

100.102.108.63

AT+CIPSPRT=0<CR>

OK

AT+CIPSTART="TCP","api.thingspeak.com","80"<CR>

OK


CONNECT OK<CR>AT+CIPSEND<CR>GET https://api.thingspeak.com/update?api_key=5XC1TCVONJVK1PNN&field1=20.00&field2=10.00

GET https://api.thingspeak.com/update?api_key=5XC1TCVONJVK1PNN&<SUB>

SEND OK

8

CLOSED

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: arduino-to-thingspeak-via-gprssim800-no-wi-fi-89030d
2450 บาท
PromptPay QR Code

ประเมิน Project

อยากได้งานคล้ายโปรเจคนี้? กดไปหน้าประเมินราคา

เอาฟอร์มยาวออกจากท้ายหน้า Project แล้ว เหลือเป็นปุ่มให้กดไปกรอกหน้าเดียว ตัวใหญ่ เว้นบรรทัดเยอะ อ่านง่ายกว่า

รีวิวจากคนใช้งานจริง

รีวิวจากลูกค้าและคนที่เคยใช้งาน

ถ้าเคยสั่งงาน เคยอ่านหน้านี้แล้วได้ประโยชน์ หรือมีข้อเสนอแนะ ฝากรีวิวไว้ได้เลย

กำลังโหลดรีวิว...