فهرست مطالب:

شناور هوشمند [GPS ، رادیو (NRF24) و ماژول کارت SD]: 5 مرحله (همراه با تصاویر)
شناور هوشمند [GPS ، رادیو (NRF24) و ماژول کارت SD]: 5 مرحله (همراه با تصاویر)

تصویری: شناور هوشمند [GPS ، رادیو (NRF24) و ماژول کارت SD]: 5 مرحله (همراه با تصاویر)

تصویری: شناور هوشمند [GPS ، رادیو (NRF24) و ماژول کارت SD]: 5 مرحله (همراه با تصاویر)
تصویری: فناوری «شناور هوشمند» حافظ جان شناگرها از خطر کوسه در استرالیا - science 2024, نوامبر
Anonim
Image
Image

این سری Smart Buoy تلاش ما (جاه طلبانه) برای ساختن یک شناور علمی است که بتواند با استفاده از محصولات خارج از قفسه اندازه گیری های معنی داری در مورد دریا انجام دهد. این آموزش دو تا چهار است - مطمئن شوید که به روز هستید و اگر به معرفی سریع پروژه نیاز دارید ، خلاصه ما را بررسی کنید.

قسمت 1: اندازه گیری موج و دما

در این آموزش ، ما به شما نشان می دهیم که چگونه می توانید داده های GPS را دریافت کنید ، آنها را روی کارت SD ذخیره کرده و با استفاده از رادیو به جایی ارسال کنید.

ما این کار را کردیم تا بتوانیم محل شناور دریایی خود را پیگیری کنیم. رادیو به این معنی است که ما می توانیم آن را از راه دور تماشا کنیم و کارت SD بدان معناست که در صورت خاموش شدن چیزی خراب می شود و سرگردان می شود ، می توانیم داده هایی را که در طول سفر برنامه ریزی نشده خود جمع آوری کرده است بارگیری کنیم - اگر تا به حال بتوانیم آن را بازیابی کنیم!

تدارکات

ماژول GPS - آمازون

ماژول کارت SD - آمازون

کارت SD - آمازون

2 ماژول رادیویی X (NRF24L01+) - آمازون

2 X آردوینو - آمازون

مرحله 1: دریافت داده های GPS

ارسال داده های GPS از طریق رادیو
ارسال داده های GPS از طریق رادیو

این شناور هوشمند هنگام قرار گرفتن در دریا اندازه گیری های حسگر را انجام می دهد ، از جمله موقعیت GPS و زمان داده. نگاهی به طرح کلی بیاندازید که نحوه تنظیم مدار را نشان می دهد. ماژول GPS از طریق اتصال سریال ارتباط برقرار می کند ، بنابراین ما از کتابخانه سریال نرم افزار Arduino و همچنین کتابخانه کوچک GPS برای ارتباط با آن استفاده می کنیم. این کتابخانه ها همه چیز را بسیار ساده می کنند. اجازه دهید شما را از طریق کد راهنمایی کنیم…

#عبارتند از

#شامل // شی TinyGPS ++ TinyGPSPlus gps؛ // اتصال سریال به دستگاه GPS SoftwareSerial ss (4 ، 3) ؛ struct dataStruct {عرض جغرافیایی دوگانه ؛ طول جغرافیایی دو برابر ؛ تاریخ طولانی بدون امضا ؛ مدت طولانی بدون امضا ؛ } gpsData؛ void setup () {Serial.begin (115200)؛ ss.begin (9600) ؛ } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo ()؛ printResults ()؛ }}} void getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat ()؛ gpsData.longitude = gps.location.lng ()؛ } else {Serial.println ("مکان نامعتبر")؛ } if (gps.date.isValid ()) {gpsData.date = gps.date.value ()؛ } else {Serial.println ("تاریخ نامعتبر")؛ } if (gps.time.isValid ()) {gpsData.time = gps.time.value ()؛ } else {Serial.println ("زمان نامعتبر")؛ }} void printResults () {Serial.print ("Location:")؛ Serial.print (gpsData.latitude، 6)؛ Serial.print ("،") ؛ Serial.print (gpsData.longitude ، 6) ؛ Serial.print ("تاریخ:") ؛ Serial.print (gpsData.date) ؛ Serial.print ("زمان:")؛ Serial.print (gpsData.time) ؛ Serial.println ()؛ }

(ویدیوی این کد را در https://www.youtube.com/embed/xz1ix76U28E ببینید)

مرحله 2: ارسال داده های GPS از طریق رادیو

ارسال داده های GPS از طریق رادیو
ارسال داده های GPS از طریق رادیو

فرض کنید شناور در حال اندازه گیری است ، اما ما می خواهیم بدون خیس شدن پاها یا آوردن شناور به ساحل ، داده ها را ببینیم. برای اندازه گیری از راه دور ، ما از یک ماژول رادیویی متصل به آردوینو در دو طرف ارتباط استفاده می کنیم. در آینده ، Arduino سمت گیرنده را با Pi تمشک جایگزین می کنیم. رادیو با هر دو رابط کار می کند ، بنابراین تعویض آنها بسیار ساده است.

ماژول رادیویی با استفاده از SPI ارتباط برقرار می کند ، که به اتصالات بیشتری نسبت به I2C نیاز دارد اما به دلیل کتابخانه NRF24 استفاده از آن بسیار آسان است. با استفاده از ماژول GPS برای اندازه گیری سنسور ، داده های آن را از یک آردوینو به دیگری منتقل می کنیم. ما قصد داریم ماژول GPS و رادیو را به آردوینو و از طرف دیگر یک آردوینو را با ماژول رادیو متصل کنیم - به طرح کلی نگاه کنید.

فرستنده

#عبارتند از

#شامل #شامل #شامل #شامل #شامل TinyGPSPlus GPS؛ SoftwareSerial ss (4 ، 3) ؛ رادیو RF24 (8 ، 7) ؛ // CE ، CSN struct dataStruct {عرض جغرافیایی دوگانه ؛ طول جغرافیایی دو برابر ؛ تاریخ طولانی بدون امضا ؛ مدت طولانی بدون امضا ؛ } gpsData؛ void setup () {Serial.begin (115200)؛ ss.begin (9600) ؛ Serial.println ("راه اندازی رادیو") ؛ // راه اندازی فرستنده radio.begin ()؛ radio.openWritingPipe (0xF0F0F0F0E1LL) ؛ radio.setChannel (0x76) ؛ radio.setPALevel (RF24_PA_MAX) ؛ radio.setDataRate (RF24_250KBPS) ؛ radio.stopListening ()؛ radio.enableDynamicPayloads ()؛ radio.powerUp ()؛ Serial.println ("شروع به ارسال") ؛ } void loop () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo ()؛ radio.write (& gpsData، sizeof (gpsData))؛ }}} void getInfo () {if (gps.location.isValid ()) {gpsData.longitude = gps.location.lng ()؛ gpsData.latitude = gps.location.lat ()؛ } else {gpsData.longitude = 0.0؛ gpsData.latitude = 0.0؛ } if (gps.date.isValid ()) {gpsData.date = gps.date.value ()؛ } else {gpsData.date = 0؛ } if (gps.time.isValid ()) {gpsData.time = gps.time.value ()؛ } else {gpsData.time = 0؛ }}

گیرنده

#عبارتند از

#شامل #شامل رادیو RF24 (8 ، 7) ؛ // CE ، CSN struct dataStruct {عرض جغرافیایی دوگانه ؛ طول جغرافیایی دو برابر ؛ تاریخ طولانی بدون امضا ؛ مدت طولانی بدون امضا ؛ } gpsData؛ void setup () {Serial.begin (115200)؛ // راه اندازی گیرنده radio.begin ()؛ radio.openReadingPipe (1 ، 0xF0F0F0F0E1LL) ؛ radio.setChannel (0x76) ؛ radio.setPALevel (RF24_PA_MAX) ؛ radio.setDataRate (RF24_250KBPS) ؛ radio.startListening ()؛ radio.enableDynamicPayloads ()؛ radio.powerUp ()؛ } void loop () {if (radio.available ()) {radio.read (& gpsData، sizeof (gpsData))؛ Serial.print ("مکان:")؛ Serial.print (gpsData.latitude، 6)؛ Serial.print ("،") ؛ Serial.print (gpsData.longitude ، 6) ؛ Serial.print ("تاریخ:") ؛ Serial.print (gpsData.date) ؛ Serial.print ("زمان:")؛ Serial.print (gpsData.time) ؛ Serial.println ()؛}}}

(ویدیوی این کد را در https://www.youtube.com/embed/xz1ix76U28E ببینید)

مرحله 3: ذخیره داده ها با استفاده از ماژول کارت SD

ذخیره اطلاعات با استفاده از ماژول کارت SD
ذخیره اطلاعات با استفاده از ماژول کارت SD

ماژول رادیویی کاملاً قابل اعتماد است ، اما گاهی اوقات در صورت قطع برق در سمت گیرنده یا خارج شدن رادیو از محدوده ، به یک برنامه اضطراری نیاز دارید. برنامه احتمالی ما یک ماژول کارت SD است که به ما اجازه می دهد داده های جمع آوری شده را ذخیره کنیم. حجم داده های جمع آوری شده زیاد نیست ، بنابراین حتی یک کارت SD کوچک به راحتی قادر به ذخیره داده های یک روز است.

#عبارتند از

#شامل #شامل #شامل #شامل TinyGPSPlus GPS؛ SoftwareSerial ss (4 ، 3) ؛ struct dataStruct {عرض جغرافیایی دوگانه ؛ طول جغرافیایی دو برابر ؛ تاریخ طولانی بدون امضا ؛ مدت طولانی بدون امضا ؛ } gpsData؛ void setup () {Serial.begin (115200)؛ ss.begin (9600) ؛ if (! SD.begin (5)) {Serial.println ("کارت خراب شد ، یا موجود نیست") ؛ برگشت؛ } Serial.println ("کارت راه اندازی شد.")؛ file dataFile = SD.open ("gps_data.csv"، FILE_WRITE)؛ if (dataFile) {dataFile.println ("عرض جغرافیایی ، طول ، تاریخ ، زمان") ؛ dataFile.close ()؛ } else {Serial.println ("نمی توان فایل را باز کرد")؛ }} حلقه void () {while (ss.available ()> 0) {if (gps.encode (ss.read ())) {getInfo ()؛ printResults ()؛ saveInfo ()؛ }}} void getInfo () {if (gps.location.isValid ()) {gpsData.latitude = gps.location.lat ()؛ gpsData.longitude = gps.location.lng ()؛ } else {Serial.println ("مکان نامعتبر")؛ } if (gps.date.isValid ()) {gpsData.date = gps.date.value ()؛ } else {Serial.println ("تاریخ نامعتبر")؛ } if (gps.time.isValid ()) {gpsData.time = gps.time.value ()؛ } else {Serial.println ("زمان نامعتبر")؛ }} void printResults () {Serial.print ("Location:")؛ Serial.print (gpsData.latitude، 6)؛ Serial.print ("،") ؛ Serial.print (gpsData.longitude ، 6) ؛ Serial.print ("تاریخ:") ؛ Serial.print (gpsData.date) ؛ Serial.print ("زمان:")؛ Serial.print (gpsData.time) ؛ Serial.println ()؛ } void saveInfo () {File dataFile = SD.open ("gps_data.csv"، FILE_WRITE)؛ if (dataFile) {dataFile.print (gpsData.latitude) ؛ dataFile.print ("،") ؛ dataFile.print (gpsData.longitude) ؛ dataFile.print ("،") ؛ dataFile.print (gpsData.date) ؛ dataFile.print ("،") ؛ dataFile.println (gpsData.time) ؛ dataFile.close ()؛ } else {Serial.println ("نه هیچ پرونده داده")؛ }}

(ما از طریق این کد در ویدیو https://www.youtube.com/embed/xz1ix76U28E صحبت می کنیم)

مرحله 4: ارسال و ذخیره داده های GPS

ارسال و ذخیره اطلاعات GPS
ارسال و ذخیره اطلاعات GPS
ارسال و ذخیره اطلاعات GPS
ارسال و ذخیره اطلاعات GPS

مرحله 5: با تشکر

با تشکر!
با تشکر!

در لیست پست ما ثبت نام کنید!

قسمت 1: اندازه گیری موج و دما

قسمت 2: رادیو GPS NRF24 و کارت SD

قسمت 3: برنامه ریزی قدرت برای شناور

قسمت 4: استقرار شناور

توصیه شده: