สารบัญ:

Botletics LTE CAT-M/NB-IoT + GPS Shield สำหรับ Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)
Botletics LTE CAT-M/NB-IoT + GPS Shield สำหรับ Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Botletics LTE CAT-M/NB-IoT + GPS Shield สำหรับ Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Botletics LTE CAT-M/NB-IoT + GPS Shield สำหรับ Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: #10 Real-Time LTE Arduino GPS Tracker (Part 1) 2024, กรกฎาคม
Anonim
Image
Image
Botletics LTE CAT-M/NB-IoT + GPS Shield สำหรับ Arduino
Botletics LTE CAT-M/NB-IoT + GPS Shield สำหรับ Arduino

ภาพรวม

ชิลด์ Botletics SIM7000 LTE CAT-M/NB-IoT ใช้เทคโนโลยี LTE CAT-M และ NB-IoT ใหม่ และยังรวม GNSS (GPS, GLONASS และ BeiDou/Compass, กาลิเลโอ, มาตรฐาน QZSS) สำหรับการติดตามตำแหน่ง มีโมดูล SIM7000 หลายชุดที่รองรับภูมิภาคต่างๆ ทั่วโลก และโชคดีที่ SIMCOM ทำให้มันง่ายต่อการระบุ: SIM7000A (อเมริกัน), SIM7000E (ยุโรป), SIM7000C (จีน) และ SIM7000G (ทั่วโลก) ปัจจุบัน NB-IoT ได้รับการสนับสนุนในหลายประเทศทั่วโลก แต่น่าเสียดายที่ไม่มีในสหรัฐอเมริกา แม้ว่าจะมีกำหนดวางจำหน่ายในเชิงพาณิชย์ในอนาคตอันใกล้ (2019) และเรายังคงสามารถใช้ฟังก์ชัน LTE CAT-M ได้!

ในการใช้ชิลด์ เพียงแค่เสียบชิลด์เข้ากับ Arduino ใส่ซิมการ์ดที่เข้ากันได้ ติดเสาอากาศ LTE/GPS เท่านี้ก็เรียบร้อย!

บทนำ

ด้วยการเกิดขึ้นของอุปกรณ์ IoT ที่ใช้พลังงานต่ำพร้อมการเชื่อมต่อแบบเซลลูลาร์และการเลิกใช้ 2G (โดยมีเพียง T-mobile ที่รองรับ 2G/GSM จนถึงปี 2020) ทุกอย่างกำลังเคลื่อนไปสู่ LTE และทำให้ผู้คนจำนวนมากต้องดิ้นรนเพื่อหาวิธีแก้ไขที่ดีกว่า อย่างไรก็ตาม สิ่งนี้ทำให้มือสมัครเล่นหลายคนต้องเผชิญหน้ากับเทคโนโลยี 2G แบบเก่า เช่น โมดูล SIM800-series จาก SIMCOM แม้ว่าโมดูล 2G และ 3G เหล่านี้เป็นจุดเริ่มต้นที่ดี แต่ก็ถึงเวลาที่ต้องก้าวไปข้างหน้า และ SIMCOM เพิ่งประกาศโมดูล SIM7000A LTE CAT-M ใหม่ในการประชุมนักพัฒนา น่าตื่นเต้นแค่ไหน!:)

ส่วนที่น่าทึ่งของทั้งหมดนี้คือ SIMCOM ทำให้ง่ายต่อการโยกย้ายจากโมดูล 2G และ 3G ไปยังโมดูลใหม่นี้! SIM7000-series ใช้คำสั่ง AT เดียวกันหลายคำสั่ง ซึ่งลดการพัฒนาซอฟต์แวร์ให้เหลือน้อยที่สุด! นอกจากนี้ Adafruit ยังมีห้องสมุด FONA ที่ยอดเยี่ยมบน Github ที่สามารถใช้แนะนำ SIM7000 ใหม่นี้ในปาร์ตี้ได้!

LTE CAT-M คืออะไร?

LTE CAT-M1 ถือเป็นเทคโนโลยี LTE รุ่นที่สองและใช้พลังงานต่ำและเหมาะสำหรับอุปกรณ์ IoT มากกว่า เทคโนโลยี NarrowBand IoT (NB-IoT) หรือ "CAT-M2" เป็นเทคโนโลยี Low-Power Wide Area Network (LPWAN) ที่ออกแบบมาโดยเฉพาะสำหรับอุปกรณ์ IoT ที่ใช้พลังงานต่ำ เป็นเทคโนโลยีที่ค่อนข้างใหม่ แต่น่าเสียดายที่ยังไม่มีให้บริการในสหรัฐฯ แม้ว่าบริษัทต่างๆ กำลังดำเนินการทดสอบและสร้างโครงสร้างพื้นฐาน สำหรับอุปกรณ์ IoT ที่ใช้เทคโนโลยีวิทยุ (RF) มีหลายสิ่งที่ควรคำนึงถึง: การใช้พลังงานBandwidthRangeขนาดแพ็คเก็ต (ส่ง dataCost จำนวนมาก แต่ละส่วนมีข้อแลกเปลี่ยน (และฉันจะไม่อธิบายทั้งหมด) ตัวอย่างเช่น แบนด์วิดท์ขนาดใหญ่ช่วยให้อุปกรณ์ต่างๆ ส่งข้อมูลจำนวนมาก (เช่น โทรศัพท์ของคุณซึ่งสามารถสตรีม YouTube ได้!) แต่ก็หมายความว่ามันใช้พลังงานมาก การเพิ่มช่วง ("พื้นที่" ของเครือข่าย) ยังเพิ่มการใช้พลังงาน ในกรณีของ NB-IoT การลดแบนด์วิดท์หมายความว่าคุณจะไม่สามารถส่งข้อมูลได้มาก แต่สำหรับอุปกรณ์ IoT ที่ส่งข้อมูลไปยังคลาวด์ก็ถือว่าสมบูรณ์แบบ! ดังนั้น เทคโนโลยีแบนด์ "แคบ" จึงเหมาะสำหรับอุปกรณ์ที่ใช้พลังงานต่ำที่มีปริมาณน้อย ของข้อมูลแต่ยังคงมีระยะไกล (พื้นที่กว้าง)!

Botletics SIM7000 Shield สำหรับ Arduino

โล่ที่ฉันออกแบบไว้ใช้ SIM7000-series เพื่อให้ผู้ใช้มีเทคโนโลยี LTE CAT-M ที่ใช้พลังงานต่ำมากและ GPS เพียงปลายนิ้วสัมผัส! โล่ยังมีเซ็นเซอร์อุณหภูมิ MCP9808 I2C ซึ่งเหมาะสำหรับการวัดบางอย่างเป็นอย่างน้อยและส่งผ่านการเชื่อมต่อมือถือ

  • โล่เป็นโอเพ่นซอร์ส! เย้!
  • เอกสารทั้งหมด (ไฟล์ EAGLE PCB, รหัส Arduino และวิกิโดยละเอียด) สามารถพบได้ที่นี่บน Github
  • หากต้องการดูว่า SIM7000 เวอร์ชันใดที่เหมาะกับคุณที่สุด โปรดดูหน้าวิกินี้
  • สามารถซื้อชุดเกราะ Botletics SIM7000 ได้ที่นี่ใน Amazon.com

ขั้นตอนที่ 1: รวบรวมชิ้นส่วน

รวบรวมอะไหล่
รวบรวมอะไหล่
รวบรวมอะไหล่
รวบรวมอะไหล่
รวบรวมอะไหล่
รวบรวมอะไหล่
รวบรวมอะไหล่
รวบรวมอะไหล่

ด้านล่างนี้คือรายการส่วนประกอบทั้งหมดที่คุณต้องการ:

  • บอร์ดที่เข้ากันได้กับ Arduino หรือ Arduino - Arduino Uno เป็นตัวเลือกที่พบบ่อยที่สุดสำหรับสิ่งนี้! หากคุณต้องการใช้ LTE shield เป็น "shield" จริงๆ คุณควรใช้บอร์ด Arduino กับ Arduino form factor คุณจะต้องใช้สายเคเบิลการเขียนโปรแกรมเพื่ออัปโหลดสเก็ตช์ Arduino ไปยังบอร์ด! หากคุณไม่ได้ใช้บอร์ด Arduino-form-factor ก็ไม่เป็นไร! มีข้อมูลเกี่ยวกับการเชื่อมต่อที่จะทำในหน้าวิกินี้และไมโครคอนโทรลเลอร์ต่างๆ ที่ได้รับการทดสอบแล้ว รวมถึง ESP8266, ESP32, ATmega32u4, ATmega2560 และ ATSAMD21
  • Botletics SIM7000 Shield Kit - โล่มาพร้อมกับเสาอากาศแบบ dual LTE/GPS uFL และส่วนหัวของตัวเมียที่ซ้อนกัน! บอร์ดนี้มีให้เลือกสามเวอร์ชัน (SIM7000A/C/E/G) และคุณจะต้องเลือกเวอร์ชันที่ถูกต้อง ทั้งนี้ขึ้นอยู่กับประเทศที่คุณอาศัยอยู่ ฉันได้สร้างหน้านี้บน Github wiki ที่แสดงวิธีค้นหาเวอร์ชันที่ดีที่สุดสำหรับคุณ!
  • ซิมการ์ด LTE CAT-M หรือ NB-IoT - แม้ว่าชุดอุปกรณ์จะไม่มีซิมการ์ดฟรีอีกต่อไป แต่คุณสามารถเลือกซิมการ์ดแบบโฮโลแกรมซึ่งให้ฟรี 1MB ต่อเดือน และใช้งานได้จริงทุกที่ในโลกเพราะโฮโลแกรมเป็นพันธมิตร ด้วยผู้ให้บริการกว่า 500 ราย! พวกเขายังมีแผนจ่ายตามการใช้งานและแผนรายเดือนและมีฟอรัมชุมชนที่ยอดเยี่ยมสำหรับการสนับสนุนด้านเทคนิคในการเปิดใช้งานซิมการ์ด, Hologram APIs และอีกมากมาย! ใช้งานได้ดีกับเครือข่ายทั่วประเทศสหรัฐอเมริกาสำหรับเครือข่าย AT&T และ LTE CAT-M1 ของ Verizon แต่โปรดทราบว่าในประเทศอื่น ๆ คุณอาจจะต้องซื้อซิมการ์ดของคุณเองจากผู้ให้บริการในพื้นที่ เนื่องจากโฮโลแกรมเป็นพันธมิตรกับผู้ให้บริการและ CAT-M และ NB-IoT นั้นค่อนข้างใหม่
  • 3.7V LiPo Battery (1000mAH+): ในขณะที่ค้นหาเครือข่ายหรือส่งข้อมูล ชีลด์สามารถดึงกระแสไฟจำนวนมาก และคุณไม่สามารถพึ่งพาพลังงานโดยตรงจากราง Arduino 5V ได้ เสียบแบตเตอรี่ LiPo 3.7V เข้ากับขั้วต่อ JST บนบอร์ด และตรวจดูให้แน่ใจว่าได้ต่อแบตเตอรี่ด้วยสายบวกทางด้านซ้าย (เช่นเดียวกับที่พบใน Sparkfun หรือ Adafruit) นอกจากนี้ สิ่งสำคัญคือต้องตรวจสอบให้แน่ใจว่าแบตเตอรี่ต้องมีความจุอย่างน้อย 500mAH (ขั้นต่ำสุด) เพื่อให้สามารถจ่ายกระแสไฟได้เพียงพอและป้องกันไม่ให้โมดูลรีบูตระหว่างที่มีกระแสไฟกระชาก แนะนำให้ใช้ 1000mAH หรือสูงกว่าเพื่อความเสถียร เหตุผลสำหรับความจุขั้นต่ำที่เปลือยเปล่านี้เป็นเพราะวงจรการชาร์จแบตเตอรี่ LiPo ถูกตั้งค่าไว้ที่ 500mA ดังนั้นคุณควรตรวจสอบให้แน่ใจว่าแบตเตอรี่มีความจุอย่างน้อย 500mAH เพื่อป้องกันความเสียหายต่อแบตเตอรี่

ขั้นตอนที่ 2: ประกอบโล่

ประกอบโล่
ประกอบโล่
ประกอบโล่
ประกอบโล่
ประกอบโล่
ประกอบโล่

ในการใช้ชิลด์ คุณจะต้องบัดกรีเฮดเดอร์เข้ากับบอร์ด เว้นแต่ว่าคุณไม่ได้วางแผนที่จะใช้บอร์ดนี้เป็น "ชีลด์" และโมดูลแบบสแตนด์อโลนมากกว่า ซึ่งถือว่าโอเคมาก! ตัวอย่างของการทำเช่นนี้คือการใช้ Arduino Micro เป็นคอนโทรลเลอร์และเดินสายไปยังชิลด์แยกกัน

ตัวเลือกที่พบบ่อยที่สุดสำหรับการใช้บอร์ดเป็นแผงป้องกัน Arduino คือการซ้อนส่วนหัวของตัวเมียซึ่งรวมอยู่ในตัวป้องกัน หลังจากบัดกรีส่วนหัวแล้ว วางชิลด์ไว้บนบอร์ด Arduino (เว้นแต่คุณจะใช้เป็นบอร์ดแบบสแตนด์อโลน) และคุณพร้อมสำหรับขั้นตอนต่อไป!

หมายเหตุ: สำหรับเคล็ดลับเกี่ยวกับวิธีการประสานหมุด คุณสามารถเยี่ยมชมหน้านี้ของวิกิ Github

ขั้นตอนที่ 3: โล่ Pinouts

โล่ Pinouts
โล่ Pinouts
โล่ Pinouts
โล่ Pinouts
โล่ Pinouts
โล่ Pinouts

ชิลด์ใช้พินเอาต์ของ Arduino แต่เชื่อมต่อพินบางตัวเพื่อวัตถุประสงค์เฉพาะ พินเหล่านี้สามารถสรุปได้ด้านล่าง:

พินไฟฟ้า

  • GND - พื้นดินทั่วไปสำหรับตรรกะและพลังทั้งหมด
  • 3.3V - 3.3V จากตัวควบคุมของ Arduino ใช้สิ่งนี้เหมือนกับที่คุณทำกับ Arduino!
  • 5V / LOGIC - ราง 5V จาก Arduino จะชาร์จแบตเตอรี่ LiPo ซึ่งให้พลังงานแก่ SIM7000 และยังตั้งค่าแรงดันลอจิกสำหรับ I2C และการเลื่อนระดับ หากคุณกำลังใช้ไมโครคอนโทรลเลอร์ 3.3V ให้เชื่อมต่อ 3.3V กับพิน "5V" ของชิลด์ (โปรดดูหัวข้อด้านล่าง)
  • VBAT - อนุญาตให้เข้าถึงแรงดันแบตเตอรี่ LiPo และโดยปกติไม่ได้เชื่อมต่อกับสิ่งใด ๆ บน Arduino ดังนั้นคุณจึงมีอิสระในการใช้งานตามที่คุณต้องการ! นอกจากนี้ยังเหมือนกับแรงดันไฟฟ้าขาเข้าของโมดูล SIM7000 หากคุณกำลังคิดที่จะวัดและตรวจสอบแรงดันไฟฟ้านี้ ให้ตรวจสอบคำสั่ง "b" ในบทช่วยสอนการสาธิต ซึ่งจะวัดแรงดันไฟฟ้าและแสดงเปอร์เซ็นต์ของแบตเตอรี่! จำไว้ว่าต้องใช้แบตเตอรี่ LiPo!
  • VIN - พินนี้เชื่อมต่อกับพิน VIN บน Arduino คุณสามารถจ่ายไฟให้กับ Arduino ได้ตามปกติกับ 7-12V บนพินนี้

พินอื่นๆ

  • D6 - เชื่อมต่อกับพิน PWRKEY ของ SIM7000
  • D7 - พินรีเซ็ตของ SIM7000 (ใช้เฉพาะกรณีรีเซ็ตฉุกเฉินเท่านั้น!)
  • D8 - พิน UART Data Terminal Ready (DTR) สามารถใช้เพื่อปลุกโมดูลจากโหมดสลีปเมื่อใช้คำสั่ง "AT+CSCLK"
  • D9 - เข็มบ่งชี้วงแหวน (RI) พิน
  • D10 - พิน UART Transmit (TX) ของ SIM7000 (หมายความว่าคุณควรเชื่อมต่อ TX ของ Arduino กับสิ่งนี้!)
  • D11 - พิน UART รับ (RX) ของ SIM7000 (เชื่อมต่อกับพิน TX ของ Arduino)
  • D12 - ดี 'ole D12 บน Arduino แต่คุณสามารถเชื่อมต่อกับหมุดขัดจังหวะ ALERT ของเซ็นเซอร์อุณหภูมิได้โดยการบัดกรีจัมเปอร์
  • SDA/SCL - เซ็นเซอร์อุณหภูมิเชื่อมต่อกับแผงป้องกันผ่าน I2C

หากคุณกำลังใช้บอร์ดเป็นโมดูลแบบสแตนด์อโลนและไม่ใช่เป็น "ชิลด์" หรือหากคุณใช้ลอจิก 3.3V แทน 5V คุณจะต้องทำการเชื่อมต่อที่จำเป็นตามรายละเอียดในส่วน "การเดินสายไฟบอร์ดโฮสต์ภายนอก" ของ หน้าวิกิ Github นี้

อย่างไรก็ตาม หากคุณต้องการทดสอบคำสั่ง AT ทั้งหมด คุณต้องเชื่อมต่อแบตเตอรี่ LiPo และสายไมโคร USB เท่านั้น จากนั้นทำตามขั้นตอนเหล่านี้เพื่อทดสอบคำสั่ง AT ผ่าน USB โปรดทราบว่าคุณสามารถทดสอบคำสั่ง AT ผ่าน Arduino IDE ได้ แต่ต้องเชื่อมต่อพิน D10/D11 สำหรับ UART

สำหรับข้อมูลโดยละเอียดเกี่ยวกับพินเอาต์ของชิลด์และสิ่งที่แต่ละพินทำ ไปที่หน้าวิกิ Github นี้

ขั้นตอนที่ 4: การเพิ่มพลังให้กับโล่

พลังโล่
พลังโล่

ในการจ่ายไฟให้กับชิลด์ เพียงแค่เสียบ Arduino และเสียบแบตเตอรี่ LiPo 3.7V (ความจุ 1,000mAH หรือมากกว่า) เช่นเดียวกับที่จำหน่ายใน Adafruit หรือ Sparkfun หากไม่มีแบตเตอรี่ คุณอาจเห็นโมดูลบู๊ตแล้วเกิดความผิดพลาดหลังจากนั้นไม่นาน คุณยังสามารถจ่ายไฟให้กับ Arduino ได้ตามปกติผ่านสาย USB หรือภายนอกโดยแหล่งพลังงาน 7-12V บนพิน VIN และราง 5V บน Arduino จะชาร์จแบตเตอรี่ LiPo โปรดทราบว่าหากคุณใช้บอร์ด Arduino มาตรฐาน คุณสามารถจ่ายไฟให้กับบอร์ดผ่านแหล่งพลังงานภายนอกได้อย่างปลอดภัย ในขณะที่ยังคงเสียบสายการเขียนโปรแกรมไว้อยู่ เนื่องจากมีวงจรการเลือกแรงดันไฟฟ้า

ไฟ LED

ในตอนแรกคุณอาจสงสัยว่าบอร์ดยังมีชีวิตอยู่หรือไม่เพราะอาจไม่มีไฟ LED เปิดอยู่ ทั้งนี้เนื่องจากไฟ LED "PWR" เป็นตัวบ่งชี้พลังงานสำหรับโมดูล SIM7000 เอง และแม้ว่าคุณจะยังไม่ได้จ่ายไฟ แต่คุณยังไม่ได้เปิดโมดูล! ทำได้โดยกด PWRKEY ให้ต่ำเป็นเวลาอย่างน้อย 72 มิลลิวินาที ซึ่งฉันจะอธิบายในภายหลัง นอกจากนี้ หากคุณเชื่อมต่อแบตเตอรี่และไม่ได้ชาร์จจนเต็ม ไฟ LED สีเขียว "DONE" จะไม่เปิดขึ้น แต่ถ้าคุณไม่ได้เชื่อมต่อแบตเตอรี่ ไฟ LED นี้ควรเปิดขึ้น (และอาจกะพริบเป็นบางครั้งเมื่อถูกหลอก คิดว่าแบตเตอรี่ที่ไม่มีอยู่นั้นไม่ได้ชาร์จจนเต็มเนื่องจากแรงดันไฟตกเล็กน้อย)

ตอนนี้คุณรู้วิธีเพิ่มพลังให้กับทุกสิ่งแล้ว มาต่อกันที่ส่วนเซลลูลาร์กัน!

ขั้นตอนที่ 5: ซิมการ์ดและเสาอากาศ

ซิมการ์ดและเสาอากาศ
ซิมการ์ดและเสาอากาศ
ซิมการ์ดและเสาอากาศ
ซิมการ์ดและเสาอากาศ
ซิมการ์ดและเสาอากาศ
ซิมการ์ดและเสาอากาศ
ซิมการ์ดและเสาอากาศ
ซิมการ์ดและเสาอากาศ

การเลือกซิมการ์ด

อีกครั้ง ซิมการ์ดของคุณต้องสามารถรองรับ LTE CAT-M (ไม่ใช่แค่ LTE แบบเดิมเหมือนในโทรศัพท์ของคุณ) หรือ NB-IoT และต้องเป็นขนาดซิม "ไมโคร" ตัวเลือกที่ดีที่สุดที่ฉันพบสำหรับเกราะนี้คือ ซิมการ์ดสำหรับนักพัฒนาโฮโลแกรม ซึ่งให้บริการฟรี 1MB/เดือน และเข้าถึง API และทรัพยากรของโฮโลแกรมสำหรับซิมการ์ดใบแรก! เพียงเข้าสู่ระบบแดชบอร์ด Hologram.io ของคุณและป้อนหมายเลข CCID ของซิมเพื่อเปิดใช้งาน จากนั้นตั้งค่า APN ในรหัส (ตั้งค่าเป็นค่าเริ่มต้นแล้ว) ไม่ยุ่งยากและทำงานได้ทุกที่ในโลกเพราะโฮโลแกรมรองรับผู้ให้บริการกว่า 200 รายทั่วโลก!

ควรสังเกตว่ารุ่น SIM7000C/E/G รองรับ 2G fallback ด้วย ดังนั้นหากคุณต้องการทดสอบจริงๆ และไม่มี LTE CAT-M หรือ NB-IoT SIM การ์ด คุณยังคงทดสอบโมดูลบน 2G ได้

การใส่ซิมการ์ด

ก่อนอื่นคุณควรต้องแยก micro SIM ออกจากที่ใส่ซิมการ์ดขนาดปกติ บนตัวป้องกัน LTE ให้ค้นหาที่ใส่ซิมการ์ดที่ด้านซ้ายของบอร์ดใกล้กับขั้วต่อแบตเตอรี่ ใส่ซิมการ์ดลงในที่ยึดนี้โดยให้หน้าสัมผัสโลหะของซิมคว่ำลง และให้รอยบากเล็กๆ ที่ขอบด้านหนึ่งหันไปทางที่ใส่ซิมการ์ด

ความดีของเสาอากาศ

ชุดป้องกันมาพร้อมกับเสาอากาศคู่ LTE/GPS ที่สะดวกสบายจริงๆ! นอกจากนี้ยังมีความยืดหยุ่น (แม้ว่าคุณจะไม่ควรพยายามบิดและงอมากนักเพราะคุณอาจทำลายสายอากาศออกจากเสาอากาศได้หากไม่ระวัง) และมีกาวลอกออกที่ด้านล่าง การเชื่อมต่อสายไฟทำได้ง่ายมาก เพียงนำสายไฟมาเสียบเข้ากับขั้วต่อ uFL ที่ตรงกันที่ขอบด้านขวาของแผงป้องกัน หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณจับคู่สาย LTE บนเสาอากาศกับขั้วต่อ LTE บนแผงป้องกัน และเหมือนกันกับสาย GPS เนื่องจากมีกากบาท!

ขั้นตอนที่ 6: การตั้งค่า Arduino IDE

การติดตั้ง Arduino IDE
การติดตั้ง Arduino IDE

เกราะป้องกัน SIM7000 นี้ใช้บอร์ด Adafruit FONA และใช้ไลบรารีเดียวกัน แต่ได้รับการปรับปรุงด้วยการรองรับโมเด็มเพิ่มเติม คุณสามารถอ่านคำแนะนำแบบเต็มเกี่ยวกับวิธีการติดตั้งไลบรารี FONA ที่แก้ไขได้ที่นี่บนหน้า Github ของฉัน

คุณยังสามารถดูวิธีทดสอบเซ็นเซอร์อุณหภูมิ MCP9808 ได้โดยทำตามคำแนะนำเหล่านี้ แต่ในที่นี้ ฉันจะเน้นที่เนื้อหาเกี่ยวกับเซลลูลาร์เป็นหลัก!

ขั้นตอนที่ 7: ตัวอย่าง Arduino

ตัวอย่าง Arduino
ตัวอย่าง Arduino
ตัวอย่าง Arduino
ตัวอย่าง Arduino
ตัวอย่าง Arduino
ตัวอย่าง Arduino

การตั้งค่าอัตราบอด

โดยค่าเริ่มต้น SIM7000 จะทำงานที่ 115200 บอด แต่นี่เร็วเกินไปสำหรับซอฟต์แวร์ซีเรียลที่จะทำงานได้อย่างน่าเชื่อถือ และอักขระอาจสุ่มปรากฏเป็นกล่องสี่เหลี่ยมหรือสัญลักษณ์คี่อื่นๆ (เช่น "A" อาจแสดงเป็น "@") นี่คือเหตุผลที่ถ้าคุณดูอย่างระมัดระวัง Arduino จะกำหนดค่าโมดูลให้มีอัตราการรับส่งข้อมูลที่ช้าลงที่ 9600 ทุกครั้งที่มีการเริ่มต้น โชคดีที่โค้ดจะดูแลการสลับโดยอัตโนมัติ คุณจึงไม่ต้องดำเนินการใดๆ เป็นพิเศษเพื่อตั้งค่า!

LTE Shield สาธิต

จากนั้น ทำตามคำแนะนำเหล่านี้เพื่อเปิดแบบร่าง "LTE_Demo" (หรือรูปแบบใดก็ได้ของภาพสเก็ตช์นั้น ขึ้นอยู่กับไมโครคอนโทรลเลอร์ที่คุณใช้) หากคุณเลื่อนลงไปที่จุดสิ้นสุดของฟังก์ชัน "setup()" คุณจะเห็นบรรทัด "fona.setGPRSNetworkSettings(F("hologram"));" ซึ่งตั้งค่า APN สำหรับซิมการ์ดโฮโลแกรม นี่เป็นสิ่งจำเป็นอย่างยิ่ง และหากคุณใช้ซิมการ์ดอื่น คุณควรอ่านเอกสารของการ์ดว่า APN คืออะไร โปรดทราบว่าคุณจะต้องเปลี่ยนบรรทัดนี้หากคุณไม่ได้ใช้ซิมการ์ดโฮโลแกรม

เมื่อโค้ดรัน Arduino จะพยายามสื่อสารกับ SIM7000 ผ่าน UART (TX/RX) โดยใช้ SoftwareSerial ในการทำเช่นนี้ แน่นอนว่าต้องเปิด SIM7000 ดังนั้นในขณะที่พยายามสร้างการเชื่อมต่อ ให้ตรวจสอบ LED "PWR" เพื่อให้แน่ใจว่าเปิดอยู่! (หมายเหตุ: ควรเปิดประมาณ 4 วินาทีหลังจากรันโค้ด) หลังจากที่ Arduino สร้างการสื่อสารกับโมดูลได้สำเร็จ คุณจะเห็นเมนูขนาดใหญ่พร้อมการดำเนินการหลายอย่างที่โมดูลสามารถทำได้! อย่างไรก็ตาม โปรดทราบว่าบางส่วนเหล่านี้ใช้สำหรับโมดูล 2G หรือ 3G อื่นๆ ของ SIMCom ดังนั้นจึงไม่ใช่คำสั่งทั้งหมดที่ใช้กับ SIM7000 แต่มีจำนวนมาก! เพียงพิมพ์ตัวอักษรที่เกี่ยวข้องกับการกระทำที่คุณต้องการดำเนินการ แล้วคลิก "ส่ง" ที่ด้านบนขวาของจอภาพแบบอนุกรม หรือเพียงแค่กดปุ่ม Enter ชมความอัศจรรย์ใจเมื่อโล่ถ่มน้ำลายตอบกลับ!

คำสั่งสาธิต

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

  • พิมพ์ "n" แล้วกด Enter เพื่อตรวจสอบการลงทะเบียนเครือข่าย คุณควรเห็น "ลงทะเบียนแล้ว (บ้าน)" หากไม่ ให้ตรวจสอบว่าติดเสาอากาศแล้วหรือไม่ และคุณอาจต้องเรียกใช้คำสั่ง "G" (อธิบายด้านล่าง) ก่อน!
  • ตรวจสอบความแรงของสัญญาณเครือข่ายโดยป้อน "i" คุณควรได้รับค่า RSSI; ยิ่งค่านี้ยิ่งสูงยิ่งดี! ของฉันคือ 31 ซึ่งบ่งบอกถึงความแรงของสัญญาณที่ดีที่สุด!
  • ป้อนคำสั่ง "1" เพื่อตรวจสอบข้อมูลเครือข่ายที่ยอดเยี่ยม คุณสามารถรับโหมดการเชื่อมต่อปัจจุบัน ชื่อผู้ให้บริการ วงดนตรี ฯลฯ
  • หากคุณต่อแบตเตอรี่ไว้ ให้ลองใช้คำสั่ง "b" เพื่ออ่านแรงดันไฟแบตเตอรี่และเปอร์เซ็นต์ หากคุณไม่ได้ใช้แบตเตอรี่ คำสั่งนี้จะอ่านค่าประมาณ 4200mV เสมอ ดังนั้นจึงแจ้งว่าชาร์จได้ 100%
  • ตอนนี้ป้อน "G" เพื่อเปิดใช้งานข้อมูลมือถือ การตั้งค่า APN และเป็นสิ่งสำคัญสำหรับการเชื่อมต่ออุปกรณ์ของคุณกับเว็บ! หากคุณเห็น "ข้อผิดพลาด" ให้ลองปิดข้อมูลโดยใช้ "g" แล้วลองอีกครั้ง
  • หากต้องการทดสอบว่าคุณสามารถทำอะไรกับโมดูลของคุณได้จริงหรือไม่ ให้ป้อน "w" ระบบจะแจ้งให้คุณป้อน URL ของหน้าเว็บที่คุณต้องการอ่าน และคัดลอก/วาง URL ตัวอย่าง "https://dweet.io/get/latest/dweet/for/sim7000test123" แล้วกด Enter หลังจากนั้นไม่นาน ระบบจะแสดงข้อความเช่น "{"this":"failed", "with":404, "เพราะ":"เราไม่พบสิ่งนี้"}" (สมมติว่าไม่มีใครโพสต์ข้อมูลสำหรับ "sim7000test123")
  • ตอนนี้ มาทดสอบการส่งข้อมูลจำลองไปยัง dweet.io ซึ่งเป็น API คลาวด์ฟรีโดยป้อน "2" ในมอนิเตอร์แบบอนุกรม คุณควรเห็นมันทำงานผ่านคำสั่ง AT บางคำสั่ง
  • หากต้องการทดสอบว่าข้อมูลผ่านจริงหรือไม่ ให้ลอง "w" อีกครั้งและคราวนี้ให้ป้อน "https://dweet.io/get/latest/dweet/for/{deviceID}" โดยไม่มีวงเล็บ โดยที่ ID อุปกรณ์คือ IMEI หมายเลขอุปกรณ์ของคุณซึ่งควรพิมพ์ไว้ที่ด้านบนสุดของจอภาพอนุกรมจากการเริ่มต้นโมดูล คุณควรเห็น "สำเร็จ" และการตอบสนอง JSON ที่มีข้อมูลที่คุณเพิ่งส่งไป! (โปรดทราบว่าแบตเตอรี่ 87% เป็นเพียงตัวเลขจำลองที่ตั้งไว้ในรหัสและอาจไม่ใช่ระดับแบตเตอรี่จริงของคุณ)
  • ตอนนี้ได้เวลาทดสอบ GPS แล้ว! เปิดใช้งานพลังงานให้กับ GPS โดยใช้ "O"
  • ป้อน "L" เพื่อค้นหาข้อมูลตำแหน่ง โปรดทราบว่าคุณอาจต้องรอประมาณ 7-10 วินาทีก่อนที่จะได้รับการแก้ไขในตำแหน่ง คุณสามารถป้อน "L" ต่อไปได้จนกว่าจะแสดงข้อมูลบางอย่าง!
  • เมื่อให้ข้อมูลแก่คุณแล้ว ให้คัดลอกและวางลงใน Microsoft Word หรือโปรแกรมแก้ไขข้อความเพื่อให้อ่านง่ายขึ้น คุณจะเห็นว่าตัวเลขที่สาม (ตัวเลขคั่นด้วยเครื่องหมายจุลภาค) คือวันที่และเวลา และตัวเลขสามตัวถัดไปคือละติจูด ลองจิจูด และระดับความสูง (เป็นเมตร) ของตำแหน่งของคุณ! หากต้องการตรวจสอบว่าถูกต้องหรือไม่ ให้ไปที่เครื่องมือออนไลน์นี้และค้นหาตำแหน่งปัจจุบันของคุณ ควรให้ละติจูด/ลองจิจูดและระดับความสูง และเปรียบเทียบค่าเหล่านี้กับค่าที่ GPS ให้!
  • หากคุณไม่ต้องการ GPS คุณสามารถปิดได้โดยใช้ "o"
  • ขอให้สนุกกับคำสั่งอื่นๆ และดูตัวอย่างภาพร่าง "IoT_Example" เพื่อดูตัวอย่างวิธีส่งข้อมูลไปยัง API คลาวด์ฟรีผ่าน LTE!

ส่งและรับข้อความ

หากต้องการดูวิธีการส่งข้อความจากโล่โดยตรงไปยังโทรศัพท์เครื่องใดก็ได้ และส่งข้อความไปยังโล่ผ่านแดชบอร์ดของโฮโลแกรมหรือ API โปรดอ่านหน้าวิกิ Github นี้

ตัวอย่าง IoT: การติดตามด้วย GPS

เมื่อคุณตรวจสอบแล้วว่าทุกอย่างทำงานได้ตามที่คาดไว้ ให้เปิดแบบร่าง "IoT_Example"โค้ดตัวอย่างนี้จะส่งตำแหน่ง GPS และข้อมูลแบริ่ง อุณหภูมิ และระดับแบตเตอรี่ไปยังคลาวด์! อัปโหลดโค้ดและชมความอัศจรรย์ในขณะที่โล่ใช้เวทย์มนตร์! หากต้องการตรวจสอบว่าข้อมูลถูกส่งไปยังคลาวด์จริงๆ หรือไม่ ให้ไปที่ "https://dweet.io/get/latest/dweet/for/{IMEI}" ในเบราว์เซอร์ใดก็ได้ (กรอกหมายเลข IMEI ที่ด้านบนสุดของ มอนิเตอร์แบบอนุกรมหลังจากเริ่มต้นโมดูลหรือพิมพ์บนโมดูล SIMCOM ของคุณ) และคุณควรเห็นข้อมูลที่อุปกรณ์ของคุณส่ง!

ด้วยตัวอย่างนี้ คุณยังสามารถยกเลิกการใส่เครื่องหมายบรรทัดด้วย "#define samplingRate 30" เพื่อส่งข้อมูลซ้ำ ๆ แทนที่จะเรียกใช้เพียงครั้งเดียว ทำให้อุปกรณ์ของคุณเป็นอุปกรณ์ติดตาม GPS โดยพื้นฐานแล้ว!

สำหรับรายละเอียดเพิ่มเติม โปรดไปที่บทช่วยสอนที่ฉันทำไว้สำหรับการติดตาม GPS แบบเรียลไทม์:

  • บทช่วยสอนตัวติดตาม GPS ตอนที่ 1
  • บทช่วยสอนตัวติดตาม GPS ตอนที่ 2

การแก้ไขปัญหา

สำหรับคำถามทั่วไปและปัญหาในการแก้ไขปัญหา โปรดไปที่คำถามที่พบบ่อยบน Github

ขั้นตอนที่ 8: ทดสอบด้วยคำสั่ง AT

การทดสอบด้วยคำสั่ง AT
การทดสอบด้วยคำสั่ง AT

การทดสอบจาก Arduino IDE

หากคุณต้องการส่งคำสั่ง AT ไปยังโมดูลผ่านทางจอภาพอนุกรม ให้ใช้คำสั่ง "S" จากเมนูเพื่อเข้าสู่โหมดหลอดอนุกรม ซึ่งจะทำให้ทุกสิ่งที่คุณพิมพ์ในมอนิเตอร์แบบอนุกรมจะถูกส่งไปยังโมดูล ที่ถูกกล่าวว่า ตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน "ทั้ง NL & CR" ที่ด้านล่างของจอภาพแบบอนุกรม มิฉะนั้น คุณจะไม่เห็นการตอบสนองใดๆ ต่อคำสั่งของคุณ เนื่องจากโมดูลจะไม่ทราบว่าคุณพิมพ์เสร็จแล้ว!

หากต้องการออกจากโหมดนี้ ให้กดปุ่มรีเซ็ตบน Arduino ของคุณ โปรดทราบว่าหากคุณใช้บอร์ดที่ใช้ ATmega32u4 หรือ ATSAMD21 คุณจะต้องรีสตาร์ทจอภาพแบบอนุกรมด้วย

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการส่งคำสั่ง AT จาก Arduino IDE โปรดดูที่หน้าวิกินี้

การทดสอบโดยตรงผ่าน USB

บางทีวิธีที่ง่ายกว่า (สำหรับผู้ใช้ Windows) คือการติดตั้งไดรเวอร์ Windows ที่มีรายละเอียดในบทช่วยสอนนี้ และทดสอบคำสั่ง AT โดยใช้พอร์ต micro USB ของโล่แทน!

หากคุณยังต้องการทดลองกับคำสั่ง AT แต่ต้องการเรียกใช้ตามลำดับและไม่ต้องการยุ่งกับการเปลี่ยนไลบรารี FONA คุณสามารถทำได้ด้วยไลบรารีเล็กๆ ง่ายๆ ที่ฉันเขียนว่า "AT Command Library" ซึ่งคุณ สามารถพบได้ที่นี่บน Github สิ่งที่คุณต้องทำคือดาวน์โหลด ZIP จากที่เก็บและแตกไฟล์ลงในโฟลเดอร์ไลบรารี Arduino และตัวอย่างแบบร่าง (เรียกว่า "AT_Command_Test.ino") สำหรับ SIM7000 สามารถพบได้ที่นี่ใน LTE shield Github repo ไลบรารีนี้อนุญาตให้คุณส่งคำสั่ง AT ผ่าน Software Serial โดยมีการหมดเวลา ตรวจสอบการตอบกลับเฉพาะจากโมดูล ไม่ว่าทั้งคู่ หรือทั้งสองอย่าง!

ขั้นตอนที่ 9: การบริโภคในปัจจุบัน

สำหรับอุปกรณ์ IoT คุณต้องการเห็นตัวเลขเหล่านี้ลดลง มาดูข้อมูลจำเพาะทางเทคนิคกันบ้าง! สำหรับรายงานโดยละเอียดของการวัดปริมาณการใช้ในปัจจุบัน โปรดดูที่หน้า Github นี้

ข้อมูลสรุปโดยย่อมีดังนี้

  • โมดูล SIM7000 ปิดอยู่: โล่ทั้งหมดดึง <8uA บนแบตเตอรี่ LiPo 3.7V
  • โหมดสลีปดึงประมาณ 1.5mA (รวมถึง LED PWR สีเขียว ดังนั้นอาจ ~ 1mA หากไม่มี) และยังคงเชื่อมต่อกับเครือข่าย
  • การตั้งค่า e-DRX สามารถกำหนดค่ารอบเวลาของการเจรจาเครือข่ายและประหยัดพลังงาน แต่ยังจะหน่วงเวลาสิ่งต่าง ๆ เช่นข้อความขาเข้าขึ้นอยู่กับว่ารอบเวลาถูกตั้งค่าเป็น
  • เชื่อมต่อกับเครือข่าย LTE CAT-M1 ไม่ได้ใช้งาน: ~12mA
  • GPS เพิ่ม ~32mA
  • การเชื่อมต่อ USB เพิ่ม ~20mA
  • การส่งข้อมูลผ่าน LTE CAT-M1 คือ ~96mA สำหรับ ~12s
  • การส่ง SMS ดึง ~96mA สำหรับ ~10s
  • รับ SMS ดึง ~89mA สำหรับ ~10s
  • PSM ฟังดูเหมือนเป็นคุณสมบัติที่ยอดเยี่ยม แต่ยังใช้งานไม่ได้

และนี่คือคำอธิบายเพิ่มเติมเล็กน้อย:

  • โหมดปิดเครื่อง: คุณสามารถใช้ฟังก์ชัน "fona.powerDown()" เพื่อปิด SIM7000 ได้อย่างสมบูรณ์ ในสถานะนี้ โมดูลจะดึงพลังงานเพียง 7.5uA เท่านั้น และหลังจากคุณปิดโมดูลไม่นาน ไฟ LED "PWR" ก็ควรดับลงเช่นกัน
  • โหมดประหยัดพลังงาน (PSM): โหมดนี้เหมือนกับโหมดปิดเครื่อง แต่โมเด็มยังคงลงทะเบียนกับเครือข่ายในขณะที่ดึงพลังงานเพียง 9uA ในขณะที่ยังคงให้พลังงานกับโมดูล ในโหมดนี้เฉพาะพลังของ RTC เท่านั้นที่จะเปิดใช้งาน สำหรับแฟน ๆ ของ ESP8266 นั้น โดยทั่วไปแล้วจะเป็น "ESP.deepSleep()" และตัวจับเวลา RTC สามารถปลุกโมดูลได้ แต่คุณสามารถทำสิ่งที่เจ๋ง ๆ บางอย่างได้ เช่น ปลุกโมเด็มด้วยการส่ง SMS อย่างไรก็ตาม น่าเสียดายที่ฉันไม่สามารถใช้งานคุณลักษณะนี้ได้ แจ้งให้เราทราบหากคุณทำ!
  • โหมดเครื่องบิน: ในโหมดนี้พลังงานยังคงจ่ายให้กับโมดูล แต่ RF ถูกปิดใช้งานอย่างสมบูรณ์ แต่ซิมการ์ดยังคงทำงานอยู่ เช่นเดียวกับอินเทอร์เฟซ UART และ USB คุณสามารถเข้าสู่โหมดนี้ได้โดยใช้ "AT+CFUN=4" แต่ฉันไม่เห็นว่าสิ่งนี้มีผลเช่นกัน
  • โหมดการทำงานขั้นต่ำ: โหมดนี้เหมือนกับโหมดเครื่องบิน ยกเว้นว่าไม่สามารถเข้าถึงอินเทอร์เฟซของซิมการ์ดได้ คุณสามารถเข้าสู่โหมดนี้ได้โดยใช้ "AT+CFUN=0" แต่คุณยังสามารถเข้าสู่โหมดนี้ได้โดยใช้ "AT+CSCLK=1" หลังจากนั้น SIM7000 จะดึงพิน DTR ขึ้นเมื่อโมดูลอยู่ในโหมดไม่ได้ใช้งาน ในโหมดสลีปการดึง DTR ต่ำจะทำให้โมดูลทำงาน สิ่งนี้มีประโยชน์เพราะการปลุกให้ตื่นอาจเร็วกว่าการเปิดเครื่องตั้งแต่เริ่มต้นมาก!
  • โหมดการรับ/ส่งสัญญาณที่ไม่ต่อเนื่อง (DRX/DTX): คุณสามารถกำหนดค่า "อัตราการสุ่มตัวอย่าง" ของโมดูลเพื่อให้พูดได้ เพื่อให้โมดูลตรวจสอบเฉพาะข้อความหรือส่งข้อมูลในอัตราที่เร็วขึ้นหรือช้าลง ทั้งหมดในขณะที่ยังคงเชื่อมต่อกับ เครือข่าย. ซึ่งช่วยลดการบริโภคในปัจจุบันได้อย่างมาก!
  • ปิดใช้งาน LED "PWR": เพื่อประหยัดเงินอีกสองสามเพนนี คุณสามารถปิดการใช้งานไฟ LED ของโมดูลโดยการตัดจัมเปอร์บัดกรีที่ปิดตามปกติที่อยู่ติดกัน ถ้าในภายหลังคุณเปลี่ยนใจและต้องการมันกลับคืนมา ก็แค่ประสานจัมเปอร์!
  • เปิด/ปิด LED "NETLIGHT": คุณยังสามารถใช้ "AT+CNETLIGHT=0" เพื่อปิดไฟ LED สถานะเครือข่ายสีน้ำเงินได้อย่างสมบูรณ์หากคุณไม่ต้องการใช้!
  • เปิด/ปิด GNSS: คุณสามารถบันทึก 30mA โดยปิด GPS โดยใช้คำสั่ง "fona.enableGPS()" โดยมีค่าจริงหรือเท็จเป็นพารามิเตอร์อินพุต หากคุณไม่ได้ใช้เราขอแนะนำให้คุณปิด! นอกจากนี้ ฉันพบว่าใช้เวลาประมาณ 20 วินาทีในการแก้ไขตำแหน่งตั้งแต่เริ่มต้นเย็น และเพียง 2 วินาทีเมื่ออุปกรณ์เปิดอยู่ (เช่น หากคุณปิด GPS แล้วเปิดใหม่และสอบถามอีกครั้ง) ซึ่งค่อนข้างเร็ว ! คุณยังสามารถทดลองกับการสตาร์ทแบบอุ่น/ร้อนและ GPS แบบช่วยเหลือ

ขั้นตอนที่ 10: บทสรุป

โดยรวมแล้ว SIM7000 นั้นเร็วมากและใช้เทคโนโลยีล้ำสมัยพร้อม GPS ในตัวและมาพร้อมกับคุณสมบัติเจ๋ง ๆ มากมาย! น่าเสียดายสำหรับพวกเราในสหรัฐอเมริกา NB-IoT ไม่ได้ถูกปรับใช้อย่างสมบูรณ์ที่นี่ ดังนั้นเราจะต้องรอสักครู่ก่อนที่จะออกมา แต่ด้วยการป้องกัน LTE นี้ เรายังคงสามารถใช้ LTE CAT-M1 บนเครือข่ายของ AT&T และ Verizon ได้ เกราะนี้เหมาะอย่างยิ่งสำหรับการทดลองกับอุปกรณ์มือถือที่ใช้พลังงานต่ำ เช่น ตัวติดตาม GPS เครื่องบันทึกข้อมูลระยะไกล และอีกมากมาย! การรวมตัวป้องกันและโมดูลอื่นๆ สำหรับสิ่งต่างๆ เช่น ที่เก็บข้อมูลการ์ด SD แผงโซลาร์เซลล์ เซ็นเซอร์ และการเชื่อมต่อไร้สายอื่นๆ ความเป็นไปได้แทบจะไม่มีที่สิ้นสุด!

  • หากคุณชอบโครงการนี้โปรดให้หัวใจและโหวตให้!
  • หากคุณมีความคิดเห็น ข้อเสนอแนะ หรือคำถามใดๆ โปรดโพสต์ไว้ด้านล่าง!
  • หากต้องการสั่งซื้อโล่ของคุณเอง โปรดเยี่ยมชมเว็บไซต์ของฉันสำหรับข้อมูลหรือสั่งซื้อบน Amazon.com
  • เช่นเคยโปรดแบ่งปันโครงการนี้!

ด้วยเหตุนี้ ขอให้สนุกกับการทำ DIY และอย่าลืมแชร์โครงการและการปรับปรุงของคุณกับทุกคน!

~ ทิม

แนะนำ: