فهرست مطالب:
- تدارکات
- مرحله 1: دریافت داده های GPS
- مرحله 2: ارسال داده های GPS از طریق رادیو
- مرحله 3: ذخیره داده ها با استفاده از ماژول کارت SD
- مرحله 4: ارسال و ذخیره داده های GPS
- مرحله 5: با تشکر
تصویری: شناور هوشمند [GPS ، رادیو (NRF24) و ماژول کارت SD]: 5 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
این سری Smart Buoy تلاش ما (جاه طلبانه) برای ساختن یک شناور علمی است که بتواند با استفاده از محصولات خارج از قفسه اندازه گیری های معنی داری در مورد دریا انجام دهد. این آموزش دو تا چهار است - مطمئن شوید که به روز هستید و اگر به معرفی سریع پروژه نیاز دارید ، خلاصه ما را بررسی کنید.
قسمت 1: اندازه گیری موج و دما
در این آموزش ، ما به شما نشان می دهیم که چگونه می توانید داده های GPS را دریافت کنید ، آنها را روی کارت SD ذخیره کرده و با استفاده از رادیو به جایی ارسال کنید.
ما این کار را کردیم تا بتوانیم محل شناور دریایی خود را پیگیری کنیم. رادیو به این معنی است که ما می توانیم آن را از راه دور تماشا کنیم و کارت SD بدان معناست که در صورت خاموش شدن چیزی خراب می شود و سرگردان می شود ، می توانیم داده هایی را که در طول سفر برنامه ریزی نشده خود جمع آوری کرده است بارگیری کنیم - اگر تا به حال بتوانیم آن را بازیابی کنیم!
تدارکات
ماژول GPS - آمازون
ماژول کارت SD - آمازون
کارت SD - آمازون
2 ماژول رادیویی X (NRF24L01+) - آمازون
2 X آردوینو - آمازون
مرحله 1: دریافت داده های 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 از طریق رادیو
فرض کنید شناور در حال اندازه گیری است ، اما ما می خواهیم بدون خیس شدن پاها یا آوردن شناور به ساحل ، داده ها را ببینیم. برای اندازه گیری از راه دور ، ما از یک ماژول رادیویی متصل به آردوینو در دو طرف ارتباط استفاده می کنیم. در آینده ، 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 کوچک به راحتی قادر به ذخیره داده های یک روز است.
#عبارتند از
#شامل #شامل #شامل #شامل 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
مرحله 5: با تشکر
در لیست پست ما ثبت نام کنید!
قسمت 1: اندازه گیری موج و دما
قسمت 2: رادیو GPS NRF24 و کارت SD
قسمت 3: برنامه ریزی قدرت برای شناور
قسمت 4: استقرار شناور
توصیه شده:
شناور هوشمند [خلاصه]: 8 مرحله (همراه با تصاویر)
شناور هوشمند [خلاصه]: همه ما عاشق ساحل هستیم. ما به عنوان یک گروه جمعی برای تعطیلات به آنجا می رویم تا از ورزش های آبی لذت ببریم یا امرار معاش کنیم. اما ساحل یک منطقه پویا است که به لطف امواج است. بالا آمدن سطح دریا در سواحل و رویدادهای شدید شدید مانند hurri
اسکنر کارت برای دستگاه کارت معاملاتی: 13 مرحله (همراه با تصاویر)
اسکنر کارت برای دستگاه کارت معاملاتی: اسکنر کارت برای دستگاه کارت بازرگانی گزارش تغییرات را می توانید در آخرین مرحله پیدا کنید. سابقه و هدف من انگیزه اصلی پروژه خود را در معرفی کارتخوان توضیح دادم. اما به طور خلاصه ، من و فرزندانم مقدار زیادی کارت بازرگانی جمع آوری کرده ایم
آینه جادویی شناور هوشمند از لپ تاپ قدیمی با تشخیص صدا Alexa: 6 مرحله (همراه با تصاویر)
Floating Smart Magic Mirror از لپ تاپ قدیمی با تشخیص صدا Alexa: در دوره "الکترونیک به طور خلاصه" در اینجا ثبت نام کنید: https://www.udemy.com/electronics-in-a-nutshell/؟couponCode=TINKERSPARK همچنین مرا ببینید کانال یوتیوب در اینجا برای پروژه های بیشتر و آموزش الکترونیک: https://www.youtube.com/channel/UCelOO
رادیو دو طرفه NRF24 برای تله متری: 9 مرحله (همراه با تصاویر)
NRF24 رادیوی دو طرفه برای تله متری: سلام بچه ها ، نام من پدرو کاستلانی است و من اولین دستورالعمل خود را برای شما می آورم: ساخت رادیوی دو طرفه با آردوینو برای هر چیزی که شما به آن نیاز دارید. در این پروژه ، ما دو مدار جداگانه که هم گیرنده و هم انتقال دهنده عمل خواهند کرد
بلندگوهای ضد آب که شناور هستند - & quot؛ شناور است ، یادداشت می کند و یادداشت ها را تکان می دهد! & quot ؛: 7 مرحله (همراه با تصاویر)
اسپیکرهای ضد آب که شناور هستند - & quot؛ شناور می شود ، یادداشت می کند و یادداشت ها را تکان می دهد! & quot ؛: این پروژه بلندگوی ضد آب با الهام از سفرهای زیادی به رودخانه گیلا در آریزونا (و SNL's & quot؛ من در قایق هستم! & quot؛ ) ما از رودخانه شناور می شویم یا خطوطی را به ساحل متصل می کنیم تا شناورهای ما درست در محل اردوگاه ما بمانند. همه ح