สารบัญ:
- ขั้นตอนที่ 1: ตั้งค่า ThingsBoard
- ขั้นตอนที่ 2: ตรวจสอบการรับข้อมูล
- ขั้นตอนที่ 3: การตั้งค่าแดชบอร์ด
- ขั้นตอนที่ 4: การเพิ่มแผนที่
- ขั้นตอนที่ 5: การทดสอบบนถนน
- ขั้นตอนที่ 6: ผลลัพธ์
วีดีโอ: LTE Arduino GPS Tracker + IoT Dashboard (ตอนที่ 2): 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
บทนำ & ส่วนที่ 1 สรุป
ใช่ถึงเวลาสำหรับคำแนะนำอื่นบนตัวติดตาม GPS SIM7000 พร้อม Arduino และ LTE! หากคุณยังไม่ได้ดำเนินการ โปรดอ่านบทแนะนำการเริ่มต้นใช้งานสำหรับเกราะป้องกัน Botletics SIM7000 CAT-M/NB-IoT จากนั้นอ่านส่วนที่ 1 ของบทช่วยสอนการติดตาม GPS ดังนั้น ฉันจะถือว่าคุณมีฮาร์ดแวร์ทั้งหมดที่ติดตั้งและพร้อมที่จะโพสต์ข้อมูลไปยังคลาวด์ สิ่งที่เราต้องทำในบทช่วยสอนนี้คือ ทำความคุ้นเคยกับ ThingsBoard และทำการทดสอบบนท้องถนนอีกครั้งเพื่อดูข้อมูลที่น่าทึ่ง แสดง!
ในส่วนที่ 1 เรามีตัวติดตาม GPS ที่ดีในการส่งข้อมูลไปยัง dweet.io และดึงข้อมูลบน freeboard.io เพื่อแสดงภาพข้อมูล อย่างไรก็ตาม ในไม่ช้าฉันก็รู้ว่าฟังก์ชันแผนที่ค่อนข้างอ่อนแอบน freeboard เนื่องจากไม่อนุญาตให้คุณเลื่อนเคอร์เซอร์ไปรอบๆ หรือแม้แต่ปรับขนาดหน้าต่างวิดเจ็ต สิ่งนี้ทำให้ฉันมีทางออกที่ดีกว่า: ThingsBoard.io ซึ่งเป็นแดชบอร์ด IoT ที่ยอดเยี่ยม (และฟรี!) ที่ให้คุณจัดเก็บ แสดงภาพ และปรับแต่งข้อมูลของคุณ! คุณสามารถลากเพื่อจัดเรียงวิดเจ็ตใหม่ได้ (และใช้งานได้ใน Chrome ซึ่งแตกต่างจากฟรีบอร์ด) และคุณภาพโดยรวมคือครีมของการครอบตัด สิ่งสำคัญที่สุดคือ วิดเจ็ตแผนที่ของ Google ให้คุณเคลื่อนที่ไปรอบๆ ได้อย่างอิสระ ซูมเข้าและออก และเลือกรูปแบบต่างๆ (ดาวเทียม มุมมองถนน ฯลฯ) และยังให้คุณลากและวางเจ้าตัวเล็กสีเหลืองลงบนถนนเพื่อดูวิวถนน !
ขั้นตอนที่ 1: ตั้งค่า ThingsBoard
บัญชี ThingsBoard & การตั้งค่าอุปกรณ์
สิ่งแรกที่คุณควรทำคือไปที่หน้าแรกของ ThingsBoard จากนั้นสร้างบัญชีโดยคลิกที่ปุ่มเมนูด้านบนขวาและเลือก "Live Demo" สร้างบัญชี ยืนยันบัญชีของคุณในอีเมลที่พวกเขาส่งถึงคุณ จากนั้นกลับเข้าสู่หน้าจอหลักของ Live Demo สิ่งนี้จะนำคุณไปยังหน้าจอที่คุณสามารถจัดการอุปกรณ์ทั้งหมดของคุณ แก้ไขแดชบอร์ด ฯลฯ
จากนั้นเลือกแท็บ "อุปกรณ์" ทางด้านซ้ายมือ สิ่งนี้จะทำให้มีอุปกรณ์สาธิตจำนวนมาก เช่น การสาธิต ESP8266, DHT22, Arduino และ Pi เป็นต้น สร้างอุปกรณ์ใหม่โดยคลิกปุ่ม "+" สีแดงที่ด้านล่างขวาแล้วป้อนชื่อและเลือก "ค่าเริ่มต้น" สำหรับประเภทอุปกรณ์ หลังจากคลิก "เพิ่ม" คุณจะเห็นอุปกรณ์ใหม่ของคุณในแท็บอุปกรณ์ คลิกที่ "จัดการข้อมูลรับรอง" และคุณจะเห็นหน้าต่างเล็ก ๆ ปรากฏขึ้นแสดงโทเค็นการเข้าถึงของอุปกรณ์ โดยพื้นฐานแล้วนี่คือรหัสอุปกรณ์และคล้ายกับรหัสอุปกรณ์ที่ใช้สำหรับการโพสต์ข้อมูลไปยัง dweet.io คุณสามารถเปลี่ยนรหัสอุปกรณ์นี้เป็นหมายเลข IMEI ของเกราะได้หากต้องการ แต่คุณยังสามารถใช้โทเค็นที่สร้างขึ้นโดยอัตโนมัติได้อีกด้วย คัดลอกโทเค็นนี้ตามที่คุณต้องการในร่าง Arduino
Arduino ตัวอย่างการติดตั้ง
ในบทช่วยสอนนี้ เราจะใช้ Arduino Sketch ตัวอย่างเดียวกันกับในบทช่วยสอนแรก แต่คราวนี้ฉันได้อัปเดตภาพร่างเพื่อรวมโค้ดเพื่อส่งข้อมูลโดยตรงไปยัง ThingsBoard.io แทนที่จะเป็น dweet.io ในตอนที่ 1 เช่นเคย คุณสามารถหาโค้ดตัวอย่างได้ที่นี่บน Github
สิ่งแรกที่คุณต้องทำคือแสดงความคิดเห็นในบรรทัดที่สร้างเกราะป้องกันไปที่ dweet.io:
// รับคำขอ /* // คุณสามารถปรับเนื้อหาของคำขอได้ หากคุณไม่ต้องการบางสิ่ง เช่น ความเร็ว ความสูง ฯลฯ sprintf(URL, "https://dweet.io/dweet/for/%s ?lat=%s&long=%s&speed=%s&head=%s&alt=%s&temp=%s&batt=%s", imei, latBuff, longBuff, speedBuff, headBuff, altBuff, tempBuff, battBuff);
ตัวนับ int = 0; // นับจำนวนครั้งที่พยายามล้มเหลว
// ลองทั้งหมดสามครั้งหากโพสต์ไม่สำเร็จ (ลองเพิ่มเติม 2 ครั้ง) ในขณะที่ (ตัวนับ < 3 && !fona.postData("GET", URL, "")) { // เพิ่มเครื่องหมายคำพูด "" เป็นลำดับที่สาม อินพุตเพราะสำหรับคำขอ GET ไม่มี "body" Serial.println(F("ล้มเหลวในการโพสต์ข้อมูล กำลังลองอีกครั้ง…")); เคาน์เตอร์++; // เพิ่มการหน่วงเวลาตัวนับ (1000); } */
ถัดไป ให้ยกเลิกการคอมเมนต์บรรทัดที่โพสต์ไปยัง thingsboard.io:
// ลองส่งคำขอ POST ไปยัง thingsboard.io const char* token = "YOUR_DEVICE_TOKEN"; // จากอุปกรณ์ thingsboard.io sprintf(URL, "https://demo.thingsboard.io/api/v1/%s/telemetry", โทเค็น); sprintf(body, "{"ละติจูด\":%s, \"ลองจิจูด\":%s, \"ความเร็ว\":%s, \"หัว\":%s, \"alt\":%s, \"temp\":%s, \"batt\":%s}", latBuff, longBuff, speedBuff, headBuff, altBuff, tempBuff, battBuff); // sprintf(body, "{"lat\":%s, \"long\":%s}", latBuff, longBuff); // ถ้าคุณต้องการแค่ lat/long
ตัวนับ int = 0;
while (!fona.postData("POST", URL, body)) { Serial.println(F("Failed to complete HTTP POST…")); เคาน์เตอร์++; ล่าช้า (1000); }
อัปโหลดรหัสไปยัง Arduino ตรวจสอบให้แน่ใจว่าคุณได้แนบซิมการ์ดและเสาอากาศแล้ว และตรวจสอบว่าชิลด์ส่งรหัสไปยังคลาวด์ก่อนดำเนินการต่อ!
หมายเหตุ: Arduino Uno มีหน่วยความจำ (RAM) น้อยมาก และการโพสต์ไปยัง Thingsboard อาจทำให้ Arduino พังได้ หากคุณพบว่ามีการรีสตาร์ทร่างที่ตำแหน่งโดยประมาณของฟังก์ชัน postData() หรือพฤติกรรมแปลก ๆ ที่อาจเกิดขึ้นมากที่สุด การแก้ไขที่ง่ายคือการสลับ Uno กับ Arduino Mega หรือบอร์ดที่มี RAM มากกว่า คุณยังสามารถลองลดขนาดของอาร์เรย์และแบ่งข้อมูลออกเป็นหลายโพสต์
ขั้นตอนที่ 2: ตรวจสอบการรับข้อมูล
เพื่อตรวจสอบว่าข้อมูลถูกส่งไปยัง ThingsBoard อย่างถูกต้องหรือไม่ ให้ไปที่หน้ารายละเอียดอุปกรณ์เดียวกัน (คลิกที่ไทล์อุปกรณ์ GPS Tracker ในหน้า "อุปกรณ์") จากนั้นคลิกแท็บ "ล่าสุด Telemetry" หากตัวติดตาม GPS ของคุณส่งค่าไปยัง ThingsBoard คุณควรเห็นค่าล่าสุดที่นี่ และจะอัปเดตตามเวลาจริงเมื่อเข้ามา
เมื่อคุณได้ตรวจสอบแล้วว่า ThingsBoard ได้รับข้อมูลจริง ๆ แล้ว ก็ถึงเวลาตั้งค่าแดชบอร์ดเพื่อให้เราเห็นภาพข้อมูลของเราเมื่อเราเก็บรวบรวมข้อมูล! (หรือตามความเป็นจริง)
ขั้นตอนที่ 3: การตั้งค่าแดชบอร์ด
ตอนนี้ก็ถึงเวลาสำหรับส่วนที่สนุก! ตอนนี้คลิกแท็บ "แดชบอร์ด" ทางด้านซ้ายและเลือกอุปกรณ์ติดตาม GPS ของคุณ การดำเนินการนี้จะแสดงหน้าใหม่ที่ขอให้คุณเพิ่มวิดเจ็ต คลิกปุ่ม "+" ด้านล่างขวาและ "สร้างวิดเจ็ตใหม่" เพื่อเปิดเมนูวิดเจ็ตแบบเลื่อนลงให้เลือก ตอนนี้ขอเพิ่ม "มาตรวัดดิจิตอล" การเลือกสิ่งนี้ควรโหลดตัวอย่างจำนวนมากสำหรับมาตรวัดดิจิทัลทุกประเภทที่คุณสามารถเลือกได้ เมื่อคุณคลิกที่หนึ่ง มันจะเปิดหน้าจออื่นให้คุณตั้งค่าพารามิเตอร์วิดเจ็ต สิ่งแรกที่คุณต้องเพิ่มคือแหล่งข้อมูล (อุปกรณ์ติดตาม GPS ที่ส่งข้อมูลไปยัง ThingsBoard) กดปุ่ม "+ ADD" และเลือกอุปกรณ์ "GPS Tracker" และเลือกตัวแปรที่เหมาะสมที่คุณต้องการให้วิดเจ็ตแสดง ในกรณีนี้ ให้เลือกตัวแปร "temp" (อุณหภูมิ)
ตอนนี้ ถ้าคุณต้องการเพิ่มสิ่งต่างๆ เช่น ชื่อเรื่องสำหรับวิดเจ็ต ให้ไปที่แท็บ "การตั้งค่า" ทำเครื่องหมายที่ "ชื่อที่แสดง" แล้วป้อนชื่อ มีอย่างอื่นอีกมากมายที่คุณสามารถทำได้ภายใต้แท็บ "ขั้นสูง" แต่ฉันจะให้คุณตรวจสอบสิ่งเหล่านั้นด้วยตัวเอง! ขอให้สนุกกับการเปลี่ยนช่วงค่า ติดป้ายกำกับข้อความ สี และอื่นๆ! หลังจากเพิ่มวิดเจ็ตแล้ว วิดเจ็ตจะปรากฏที่ด้านล่างซ้ายของแดชบอร์ด (คุณอาจต้องเลื่อนลงหากคุณมีวิดเจ็ตหลายรายการเต็มหน้าจอ) คุณสามารถแก้ไขวิดเจ็ตได้ตลอดเวลาโดยกดปุ่มบนวิดเจ็ต หากคุณอยู่ในโหมดแก้ไขแดชบอร์ดอยู่แล้ว หรือเข้าสู่โหมดแก้ไขโดยกดปุ่มดินสอที่ด้านล่างขวาของหน้าจอทั้งหมดก่อนเพื่อให้คุณแก้ไขได้ วิดเจ็ต ค่อนข้างตรงไปตรงมา!
ขั้นตอนที่ 4: การเพิ่มแผนที่
ตอนนี้สำหรับตัวติดตาม GPS แผนที่เป็นสิ่งที่ต้องมี! มาเพิ่มกันด้วยการสร้างวิดเจ็ตใหม่ (ปุ่ม "+" ด้านขวาล่างอีกครั้ง) และคราวนี้เลื่อนลงและเลือก "แผนที่" ไปข้างหน้าและคลิกที่หนึ่งและจะแสดงตัวเลือกต่างๆ เพิ่มแหล่งข้อมูลตามปกติ แต่คราวนี้ เลือกทั้งตัวแปร "lat" และ "long" เนื่องจากจะต้องใช้ทั้งสองอย่างจึงจะได้ตำแหน่ง ถัดไป ไปที่แท็บ "การตั้งค่า" และที่นี่คุณสามารถตั้งค่ากรอบเวลาของข้อมูลที่จะแสดงบนแผนที่ได้ ตัวอย่างเช่น คุณอาจต้องการแสดงข้อมูลเพียง 2 นาทีสุดท้าย หรือคุณอาจต้องการข้อมูลทั้งหมดตั้งแต่เมื่อวาน หรือบางทีคุณอาจต้องการเฉพาะกรอบเวลาที่กำหนด (เช่น 14.00 น. เมื่อวานจนถึง 10.00 น. วันนี้)
หากคุณต้องการ คุณสามารถไปที่แท็บ "ขั้นสูง" และเลือกประเภทแผนที่ (แผนงาน ดาวเทียม ไฮบริด หรือภูมิประเทศ) บางทีส่วนที่สำคัญที่สุดของทั้งหมดนี้คือการตรวจสอบชื่อคีย์ละติจูดและลองจิจูด ตรวจสอบให้แน่ใจว่าชื่อเหล่านี้ตรงกับชื่อตัวแปรที่คุณส่งไปยัง ThingsBoard จริงๆ ตัวอย่างเช่น หากร่าง Arduino ของคุณบอกว่ากำลังส่งตัวแปร "lat" และ "long" (ซึ่งเป็นค่าเริ่มต้น) คุณจะต้องเปลี่ยนชื่อคีย์เป็น "lat" และ "long" และใช้ "latitude" และ "longitude" จะไม่ดึงข้อมูลของคุณ!
อีกครั้ง หลังจากเพิ่มแผนที่แล้ว จะปรากฏที่ด้านล่างของแดชบอร์ด เพียงลากเพื่อจัดตำแหน่งใหม่บนแดชบอร์ด แล้วคลิกและลากขอบเพื่อปรับขนาด หากกรอบเวลาของคุณถูกตั้งไว้อย่างถูกต้อง คุณจะเห็นตำแหน่งปัจจุบันของคุณปรากฏบนแผนที่ เรียบร้อยสุดๆ เหรอ? ตอนนี้เราพร้อมสำหรับการทดสอบจริงแล้ว!
ขั้นตอนที่ 5: การทดสอบบนถนน
การทดสอบตัวติดตาม GPS นั้นง่ายมาก! เพียงเสียบ Arduino เข้ากับอะแดปเตอร์ USB ในรถยนต์เพื่อจ่ายไฟ ตรวจสอบให้แน่ใจว่าไฟ LED สีเขียวเปิดขึ้น และควรเริ่มส่งข้อมูล! ในการเปลี่ยนอัตราการสุ่มตัวอย่างของตัวติดตาม GPS ตรวจสอบให้แน่ใจว่าคุณพบโค้ดบรรทัดนี้ในตัวอย่างแบบร่าง:
#define samplingRate 10 // เวลาระหว่างโพสต์ หน่วยเป็นวินาที
และตั้งค่าตามที่คุณต้องการ ฉันพบว่า 10 วินาทีใช้งานได้ค่อนข้างดีสำหรับการทดสอบบนท้องถนนแบบสบายๆ แต่ถ้าคุณเร็วและโมโห คุณอาจต้องการอัตราการสุ่มตัวอย่างที่สูงขึ้นไปอีก!
ขั้นตอนที่ 6: ผลลัพธ์
ในรูปภาพด้านบน คุณจะเห็นการตั้งค่าแดชบอร์ดของฉัน ฉันเพิ่มแผนภูมิเพื่อสร้างกราฟข้อมูลย้อนหลังสำหรับสิ่งต่างๆ เช่น ความเร็ว ระดับความสูง และอุณหภูมิ และยังรวมมาตรวัดแบบเรียลไทม์ในกรณีที่ฉันต้องการดูข้อมูลเหล่านี้แบบเรียลไทม์ในการเดินทางบนถนนสายอื่น (ลองนึกภาพสิ่งนี้ใน RV!)
แผนที่นั้นยอดเยี่ยมมาก และฉันสามารถรวบรวมข้อมูลที่แม่นยำจริงๆ ของเส้นทางที่ฉันใช้ นอกจากนี้ ข้อมูลความเร็วยังแม่นยำอย่างยิ่งเพราะเราไม่เคยขับเกิน 40 ไมล์ต่อชั่วโมง (กราฟเป็น kph) บนถนนในเมือง สัญญาณไฟจราจรสามารถอธิบายความผันผวนของความเร็วได้มากมาย โดยรวมแล้ว ผลลัพธ์ที่ยอดเยี่ยม และลองนึกภาพว่าเราจะใช้สิ่งนี้เพื่ออะไรได้อีก! คุณสามารถติดตั้งสิ่งนี้บน RV, รถจักรยานยนต์, รถยนต์ ฯลฯ และให้ติดตามตลอดเวลาและดึงผลลัพธ์บน ThingsBoard!
เพื่อสรุป ในบทช่วยสอนนี้ เราได้ตั้งโปรแกรมตัวติดตาม GPS ของเราให้ส่งข้อมูลโดยตรงไปยัง ThingsBoard ผ่านคำขอ HTTP POST และจัดการข้อมูลบนแดชบอร์ด คุณสามารถเพิ่มอุปกรณ์และแดชบอร์ดได้หลายแบบ โดยแต่ละอันมีวิดเจ็ตหลายอันที่ดูเจ๋งสุด ๆ และมีตัวเลือกการปรับแต่งมากมาย! ThingsBoard ได้พิสูจน์แล้วว่าเป็นเครื่องมือที่มีประสิทธิภาพมาก (และฟรี!) ในการดูข้อมูล IoT และยังมีคุณสมบัติอื่นๆ ที่ฉันยังไม่ได้ขีดข่วน รู้สึกอิสระที่จะเล่นกับมันและดูสิ่งที่คุณพบ
- หากคุณชอบบทช่วยสอนนี้ จัดทำขึ้นเอง หรือมีคำถามใด ๆ โปรดแสดงความคิดเห็นด้านล่าง!
- อย่าลืมให้หัวใจที่สอนได้นี้และสมัครรับข้อมูลที่นี่และในช่อง YouTube ของฉันสำหรับบทแนะนำเกี่ยวกับ Arduino ที่ยอดเยี่ยมกว่านี้!
- หากคุณต้องการสนับสนุนสิ่งที่ฉันทำ โปรดพิจารณาซื้อเกราะป้องกัน Botletics SIM7000 ของคุณเองบน Amazon.com!
แล้วเจอกันใหม่ครั้งหน้าค่ะ!
แนะนำ:
ปีกคอสเพลย์ที่เปิดใช้งานการเคลื่อนไหวโดยใช้ Circuit Playground Express - ตอนที่ 1: 7 ขั้นตอน (พร้อมรูปภาพ)
Motion Activated Cosplay Wings โดยใช้ Circuit Playground Express - ตอนที่ 1: นี่เป็นส่วนหนึ่งของโปรเจ็กต์สองส่วน ซึ่งผมจะแสดงให้คุณเห็นขั้นตอนในการทำปีกนางฟ้าอัตโนมัติ ส่วนแรกของโปรเจ็กต์คือ กลไกของปีก และส่วนที่สองทำให้สวมใส่ได้ และเพิ่มปีก
หุ่นยนต์ Telepresence: แพลตฟอร์มพื้นฐาน (ตอนที่ 1): 23 ขั้นตอน (พร้อมรูปภาพ)
หุ่นยนต์ Telepresence: แพลตฟอร์มพื้นฐาน (ตอนที่ 1): หุ่นยนต์ telepresence เป็นหุ่นยนต์ประเภทหนึ่งที่สามารถควบคุมจากระยะไกลผ่านทางอินเทอร์เน็ตและทำหน้าที่เป็นตัวแทนของคนอื่นได้ ตัวอย่างเช่น หากคุณอยู่ในนิวยอร์ก แต่ต้องการมีปฏิสัมพันธ์ทางกายภาพกับทีมผู้คนในแคลิฟอร์เนีย
Botletics LTE CAT-M/NB-IoT + GPS Shield สำหรับ Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)
Botletics LTE CAT-M/NB-IoT + GPS Shield สำหรับ Arduino: ภาพรวมBotletics SIM7000 LTE CAT-M/NB-IoT shield ใช้เทคโนโลยี LTE CAT-M และ NB-IoT ใหม่ และยังรวม GNSS (GPS, GLONASS และ BeiDou ไว้ด้วย) /เข็มทิศ กาลิเลโอ มาตรฐาน QZSS) สำหรับการติดตามตำแหน่ง มีหลายโมดูล SIM7000-series
LTE Arduino GPS Tracker + IoT Dashboard (ตอนที่ 1): 6 ขั้นตอน (พร้อมรูปภาพ)
LTE Arduino GPS Tracker + IoT Dashboard (ตอนที่ 1): บทนำว่าไงพวก! คำแนะนำนี้เป็นการติดตามผลของ Instructable แรกของฉันเกี่ยวกับการใช้ชิลด์ Botletics LTE/NB-IoT สำหรับ Arduino ดังนั้น หากคุณยังไม่ได้อ่าน โปรดอ่านเพื่อรับทราบภาพรวมที่ดีเกี่ยวกับวิธีใช้ชิลด์และ ab ทั้งหมด
IoT เมนส์คอนโทรลเลอร์ ตอนที่ 9: IoT, ระบบอัตโนมัติภายในบ้าน: 10 ขั้นตอน (พร้อมรูปภาพ)
IoT เมนส์คอนโทรลเลอร์ ส่วนที่ 9: IoT ระบบอัตโนมัติในบ้าน: ข้อจำกัดความรับผิดชอบ โปรดอ่านก่อน รายละเอียดของโครงการนี้อธิบายได้โดยใช้ไฟหลัก (ในกรณีนี้คือ UK 240VAC RMS) ในขณะที่ใช้ความระมัดระวังทุกประการเพื่อใช้หลักปฏิบัติที่ปลอดภัยและหลักการออกแบบที่ดี มีความเสี่ยงที่อาจถึงแก่ชีวิตได้เสมอ เลือก