สารบัญ:
- ขั้นตอนที่ 1: สร้างสถานีฐาน
- ขั้นตอนที่ 2: การทดสอบครั้งแรก
- ขั้นตอนที่ 3: สร้างอินเทอร์เฟซ
- ขั้นตอนที่ 4: เพิ่มเกจ
- ขั้นตอนที่ 5: ลากเกจ GPS และเพิ่ม OpenStreetMap
- ขั้นตอนที่ 6: ลากมาตรวัด GPS และเพิ่มบันทึกตาราง
- ขั้นตอนที่ 7: รับรหัส
- ขั้นตอนที่ 8: Arduino IDE
- ขั้นตอนที่ 9: รายละเอียดการเข้ารหัส
วีดีโอ: โครงการ Arduino: ช่วงทดสอบโมดูล LoRa RF1276 สำหรับโซลูชันการติดตามด้วย GPS: 9 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
การเชื่อมต่อ: USB - Serial
ต้องการ: เบราว์เซอร์ Chrome
ต้องการ: 1 X Arduino Mega
ต้องการ: 1 X GPS
ต้องการ: 1 X การ์ด SD
ต้องการ: 2 X โมเด็ม LoRa RF1276
ฟังก์ชัน: Arduino ส่งค่า GPS ไปยังฐานหลัก - เก็บข้อมูลฐานหลักใน Dataino Server Lora Module: RF1276 ระยะไกลพิเศษจาก APPCONWIRELESS LoRa เป็นเทคนิคการมอดูเลตแบบสเปรดสเปกตรัมแบบใหม่ ซึ่งช่วยให้ส่งข้อมูลในอัตราข้อมูลที่ต่ำมากไปยังมาก ช่วงยาว อัตราข้อมูลต่ำ (ลดลงเหลือไม่กี่ไบต์ต่อวินาที) และการมอดูเลต LoRa นำไปสู่ความไวของตัวรับที่ต่ำมาก หมายถึงในการทดสอบนี้หมายถึงมากกว่า 10 กม.
ขั้นตอนที่ 1: สร้างสถานีฐาน
การเชื่อมต่ออินเทอร์เน็ตแบบกว้างของคอมพิวเตอร์และโมเด็ม LoRa ที่เชื่อมต่อกับพอร์ต USB
ชุดอุปกรณ์ติดรถยนต์ Arduino ·
กล่องเมตริก
Anduino Mega เชื่อมต่อกับซีเรียล 2 กับเครื่องรับ GPS และ Serial 1 ถึงโมเด็ม LoRa การ์ด SD ใช้สำหรับเก็บข้อมูล
ขั้นตอนที่ 2: การทดสอบครั้งแรก
· 10.6 กม. บนเส้นทางผ่านใจกลางเมือง แกลเลอรี่ และตามแนวชายฝั่งที่สร้างด้วยห่วง
อัตราส่วนการรับ/ส่งสัญญาณอยู่ที่ 321/500TX point
จุด RX
ขั้นตอนที่ 3: สร้างอินเทอร์เฟซ
1 - ตั้งค่าโครงการใหม่ LoRa
กดไอคอนฟันเฟืองเพื่อเปิดการกำหนดค่าโครงการ
ขั้นตอนที่ 4: เพิ่มเกจ
2) เปิดแถบเลื่อนเกจ
· 3) เลื่อนไปที่ GPS
· 4) เพิ่มหนึ่งรายการไปที่โต๊ะทำงาน
ขั้นตอนที่ 5: ลากเกจ GPS และเพิ่ม OpenStreetMap
· 5) เพิ่มแผนที่ OpenStreetMap ไปที่โต๊ะทำงาน
การลากส่วนประกอบ GPS บนแผนที่ไอคอน แผนที่ OpenStreet จะถูกสร้างขึ้น
สร้างอินเทอร์เฟซ
· 6) เปลี่ยนการรีเฟรชแผนที่
เปลี่ยนเวลารีเฟรชแผนที่จาก 5000 เป็น 10000
ขั้นตอนที่ 6: ลากมาตรวัด GPS และเพิ่มบันทึกตาราง
· 7) เพิ่มเกจบันทึกตาราง
โดยการลากเกจเหนือตารางไอคอน GPS จะถูกสร้างขึ้น บันทึกตารางเกจ
· 8) เปลี่ยนการรีเฟรชบันทึกตาราง เปลี่ยนเวลารีเฟรชแผนที่จาก 5000 เป็น 10000
ปรับตำแหน่งเกจ
· 9) ลากเกจปรับตำแหน่งของเกจโดยการลากผ่านหน้าจอ
· 10) บันทึกโครงการ
ขั้นตอนที่ 7: รับรหัส
10) เปิดใช้งานคอนเทนเนอร์โค้ด
ปุ่มบนปุ่มขวาบน เลือกทั้งหมด และคัดลอกรหัสฐาน
ขั้นตอนที่ 8: Arduino IDE
· 11) วางโค้ดบน Arduino IDE
· 12) แก้ไขรหัส เพิ่มบรรทัดนี้ในคำจำกัดความ
ขั้นตอนที่ 9: รายละเอียดการเข้ารหัส
เพิ่มบรรทัดนี้ในคำจำกัดความ
//*************************************************************************
//** ห้องสมุด ** //***************************************** **************************************
#include // ++ ห้องสมุด GPS
#include // ++ ไลบรารี SPI #include
// ++ ไลบรารี SD//
*************************************************************************
//** SD ** //*********************************************** **************************************
// * การ์ด SD ที่แนบมากับบัส SPI ดังนี้:
// ** UNO: MOSI - พิน 11, MISO - พิน 12, CLK - พิน 13, CS - พิน 4
// (CS pin สามารถเปลี่ยนได้) และ pin #10 (SS) ต้องเป็นเอาต์พุต
// ** เมกะ: MOSI - พิน 51, MISO - พิน 50, CLK - พิน 52, CS - พิน 53
// (ขา CS สามารถเปลี่ยนได้) และขา #52 (SS) ต้องเป็นเอาต์พุต
// ** Leonardo: เชื่อมต่อกับฮาร์ดแวร์ SPI ผ่านส่วนหัว ICSP
// Pin 4 ใช้ที่นี่เพื่อให้สอดคล้องกับตัวอย่าง Arduino อื่น ๆ const int chipSelect = 53;
// ++ ตัวเลือกพิน SD
//*************************************************************************
//** จีพีเอส ** //***************************************** **************************************
จีพีเอส TinyGPS; // ++ GPS บน Serial2
เป็นโมฆะ gpsdump (TinyGPS & gps); // ++
บูล newdataGPS = เท็จ; // ++
เพิ่มบรรทัดนี้ในการตั้งค่า ()
//***********************************************************************
//** การตั้งค่าอนุกรม GPS ** //****************************************** **************************************
Serial2.begin(9600); // ++
ล่าช้า (1000); // ++
//***********************************************************************
//** การเริ่มต้น SD ** //********************************************** *************************************
// ตรวจสอบให้แน่ใจว่าตั้งค่าพินการเลือกชิปเริ่มต้นเป็น // ++
// ส่งออก แม้ว่าคุณจะไม่ได้ใช้: // ++
โหมดพิน (SS, เอาต์พุต); // ++
Serial.println(F("กำลังเริ่มต้นการ์ด SD…")); // ++
// ดูว่าการ์ดมีอยู่และสามารถเริ่มต้นได้หรือไม่: // ++
if (!SD.begin(chipSelect)) { // ++
Serial.println(F("การ์ดล้มเหลวหรือไม่มีอยู่")); // ++
// อย่าทำอะไรอีก: // ++
กลับ; // ++
} อื่นๆ { // ++
Serial.println(F("SD การ์ดตกลง")); // ++
} // ++
เพิ่มบรรทัดนี้ใน loop() void
serialEvent2(); // ++ เรียกเหตุการณ์อนุกรม GPS
เพิ่มโค้ด SeriaEvent2
//*************************************************************************
//** GPS serialEvent ** //**************************************** ***************************************
เป็นโมฆะ serialEvent2 () { // ++
ในขณะที่ (Serial2.available ()) { // ++
ถ่าน c = Serial2.read(); // ++
// Serial.print(c); // ไม่ใส่ความคิดเห็นเพื่อดูข้อมูล GPS ดิบ // ++
ถ้า (gps.encode (c)) { // ++
newdataGPS = จริง; // ++
หยุดพัก; // uncomment พิมพ์ข้อมูลใหม่ทันที! // ++
} // ++
} // ++
} // ++
เพิ่มการถ่ายโอนข้อมูล GPS
//*************************************************************************
//** gps dump ** //**************************************** ***************************************
//** ช่วงละติจูดที่ถูกต้องในหน่วยองศาคือ -90 และ +90 **
//** ลองจิจูดอยู่ในช่วง -180 และ +180 **
//**ระบุตำแหน่งทิศตะวันออก-ตะวันตก**
//** "123456789 1234567890" **
//** "000.00000;0000.00000" ** //*************************************************************************
เป็นโมฆะ gpsdump (TinyGPS & gps) // ++
{ // ++
ปี int; // ++
ไบต์เดือน, วัน, ชั่วโมง, นาที, วินาที, ในร้อย; // ++
อายุยืนยาว // ++
gps.f_get_position(&LATGP00, &LONGP00, &age); // ++
gps.crack_datetime(&ปี, &เดือน, &วัน, &ชั่วโมง, // ++
&นาที &วินาที &ร้อย &อายุ); // ++
lat ยาว lon; // ++
gps.get_position(&lat, &lon, &age); // ++
// *********************************************************************
// ** สร้างสตริงสำหรับรวบรวมข้อมูลเพื่อบันทึก: **
// *********************************************************************
สตริง dataString = ""; // ++
dataString += (lat / 100000); // ++
dataString += "."; // ++
dataString += lat - (lat / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += (lon / 100000); // ++
dataString += "."; // ++
dataString += lon - (lon / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += สตริง (static_cast (วัน)); // ++
dataString += "/"; // ++
dataString += String(static_cast(เดือน)); // ++
dataString += "/"; // ++
dataString += สตริง (ปี); // ++
dataString += ";"; // ++
dataString += สตริง (static_cast (ชั่วโมง)); // ++
dataString += ":"; // ++
dataString += สตริง (static_cast (นาที)); // ++
dataString += ":"; // ++
dataString += สตริง (static_cast (วินาที)); // ++ //********************************************** *************************************
//** บันทึกลงใน SD ** //****************************************** ****************************************
// เปิดไฟล์. โปรดทราบว่าสามารถเปิดไฟล์ได้ครั้งละหนึ่งไฟล์เท่านั้น **
// ดังนั้นคุณต้องปิดอันนี้ก่อนที่จะเปิดอีกอัน ** //****************************************************** *********************************
ไฟล์ dataFile = SD.open("gps00.txt", FILE_WRITE); // ++
// ***********************************************************************
// ** หากไฟล์พร้อมใช้งาน ให้เขียนไปที่: **
// ***********************************************************************
ถ้า (dataFile) { // ++
dataFile.println (dataString); // ++
dataFile.close(); // ++
} อื่นๆ { // ++
Serial.println(F("ข้อผิดพลาดในการเขียน SD")); // ++
} // ++
}
หากคุณต้องการดาวน์โหลดรหัส โปรดไปที่หน้านี้
แนะนำ:
โครงการ Arduino-Tamagotchi (ฉันคือทามาก็อตจิ): 5 ขั้นตอน (พร้อมรูปภาพ)
โครงการ Arduino-Tamagotchi (ฉันคือทามาก็อตจิ): ฉันเบื่อกับการกักตัวและตัดสินใจสร้าง Arduino Tamagotchi เพราะฉันเกลียดสัตว์หลายชนิด ฉันจึงเลือกตัวเองเป็นทามาก็อตจิ ก่อนอื่นฉันสร้างคอนโซลของฉันบนเขียงหั่นขนม การเดินสายไฟนั้นง่ายมาก มีเพียงสามปุ่ม คือ Buzzer และ
Arduino Timers: 8 โครงการ: 10 ขั้นตอน (พร้อมรูปภาพ)
ตัวจับเวลา Arduino: 8 โครงการ: Arduino Uno หรือ Nano สามารถสร้างสัญญาณดิจิตอลที่แม่นยำบนหมุดเฉพาะหกตัวโดยใช้ตัวจับเวลาในตัวสามตัว พวกเขาต้องการคำสั่งเพียงไม่กี่คำสั่งในการตั้งค่าและไม่ต้องใช้รอบของ CPU ในการทำงาน!การใช้ตัวจับเวลาอาจเป็นเรื่องน่ากลัวหากคุณเริ่มต้นจาก
โครงการ Arduino แผง LED RGB 16x16: 5 ขั้นตอน (พร้อมรูปภาพ)
โปรเจ็กต์ Arduino แผงไฟ LED 16x16 RGB: สวัสดีทุกคน ฉันโพสต์โปรเจ็กต์นี้เพราะฉันอยากให้ทุกคนมีสถานที่ง่ายๆ ที่จะมาเล่นกับแผง LED RGB 16x16 RGB อันยอดเยี่ยมเหล่านี้ ฉันได้หยิบไอเดียจากโปรเจ็กต์อื่นมาแก้ไขสำหรับโปรเจ็กต์นี้ มันให้คุณ
กระถางต้นไม้อัจฉริยะอัตโนมัติ - (DIY, พิมพ์ 3 มิติ, Arduino, รดน้ำด้วยตัวเอง, โครงการ): 23 ขั้นตอน (พร้อมรูปภาพ)
กระถางต้นไม้อัจฉริยะอัตโนมัติ - (DIY, 3D Printed, Arduino, Self Watering, Project): สวัสดี บางครั้งเมื่อเราออกจากบ้านสักสองสามวันหรือยุ่งมาก ต้นไม้ในบ้าน (อย่างไม่ยุติธรรม) ต้องทนทุกข์เพราะไม่ได้รดน้ำเมื่อพวกเขา ต้องการมัน. นี่คือวิธีแก้ปัญหาของฉัน มันเป็นกระถางต้นไม้อัจฉริยะซึ่งรวมถึง: อ่างเก็บน้ำในตัว เซนโซ
ก้าวข้ามขอบฟ้าด้วย LoRa RF1276: 12 ขั้นตอน
ก้าวข้ามขอบฟ้าด้วย LoRa RF1276: ฉันพบว่าตัวรับส่งสัญญาณ RF1276 มอบประสิทธิภาพที่โดดเด่นที่สุดในแง่ของช่วงสัญญาณและคุณภาพ ในเที่ยวบินแรกของฉัน ฉันสามารถไปถึงระยะทาง 56 กม. ที่ระดับสัญญาณ -70dB ด้วยเสาอากาศที่มีความยาวคลื่นในหนึ่งส่วนสี่