ዝርዝር ሁኔታ:

ስማርት ቡዩ [ጂፒኤስ ፣ ሬዲዮ (NRF24) እና የ SD ካርድ ሞዱል] - 5 ደረጃዎች (ከስዕሎች ጋር)
ስማርት ቡዩ [ጂፒኤስ ፣ ሬዲዮ (NRF24) እና የ SD ካርድ ሞዱል] - 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ስማርት ቡዩ [ጂፒኤስ ፣ ሬዲዮ (NRF24) እና የ SD ካርድ ሞዱል] - 5 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ስማርት ቡዩ [ጂፒኤስ ፣ ሬዲዮ (NRF24) እና የ SD ካርድ ሞዱል] - 5 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: extreme ስማርት ቲቪ ዳሰሳ//Extreme Smart TV Review 2024, ህዳር
Anonim
Image
Image

ይህ ስማርት ቡይ ተከታታይ ከመደርደሪያ ውጭ ምርቶችን በመጠቀም ስለ ባሕሩ ትርጉም ያለው ልኬቶችን ሊወስድ የሚችል ሳይንሳዊ buoy ለመገንባት የእኛን (የሥልጣን ጥም) ሙከራ ያሳያል። ይህ ከአራቱ ሁለት ትምህርት ነው - ወቅታዊ መሆንዎን ያረጋግጡ ፣ እና ለፕሮጀክቱ ፈጣን መግቢያ ከፈለጉ ፣ ማጠቃለያዎን ይመልከቱ።

ክፍል 1 ሞገድ እና የሙቀት መለኪያዎች ማድረግ

በዚህ መማሪያ ውስጥ የጂፒኤስ መረጃን እንዴት እንደሚያገኙ ፣ በ SD ካርድ ላይ እንደሚያከማቹ እና ሬዲዮን በመጠቀም ወደ አንድ ቦታ እንደሚልኩ እናሳይዎታለን።

እኛ ይህንን ያደረግነው የባሕር ውስጥ ቡዩ ያለበትን ቦታ መከታተል እንድንችል ነው። ሬዲዮው እኛ በርቀት ማየት እንችላለን ማለት ነው እና የ SD ካርዱ ማለት በአጋጣሚ አንድ ነገር ተሰብሮ ለቅderት ይሄዳል ፣ ባልታቀደው ሽርሽር ወቅት የሰበሰበውን ውሂብ ማውረድ እንችላለን - እሱን ማምጣት ከቻልን!

አቅርቦቶች

የጂፒኤስ ሞዱል - አማዞን

ኤስዲ ካርድ ሞዱል - አማዞን

ኤስዲ ካርድ - አማዞን

2 ኤክስ ሬዲዮ ሞጁሎች (NRF24L01+) - አማዞን

2 ኤክስ አርዱinoኖ - አማዞን

ደረጃ 1 የጂፒኤስ መረጃን ማግኘት

በሬዲዮ በኩል የጂፒኤስ መረጃን በመላክ ላይ
በሬዲዮ በኩል የጂፒኤስ መረጃን በመላክ ላይ

ስማርት buoy የጂፒኤስ አካባቢን እና የጊዜን ጊዜ ጨምሮ በባህር ውስጥ ሲቀመጥ የአነፍናፊ መለኪያዎች ያደርጋል። ወረዳውን እንዴት እንደምናቀናብር የሚያሳየውን መርሃግብር ይመልከቱ። የጂፒኤስ ሞጁል በተከታታይ ግንኙነት በኩል ይገናኛል ፣ ስለዚህ እኛ ከእሱ ጋር ለመገናኘት የአርዱዲኖ ሶፍትዌር ተከታታይ ቤተ -መጽሐፍት እንዲሁም ጥቃቅን የጂፒኤስ ቤተ -መጽሐፍት እየተጠቀምን ነው። እነዚህ ቤተ -መጻሕፍት ሁሉንም ነገር እጅግ በጣም ቀላል ያደርጉታል። እስቲ በኮዱ እንውሰድ…

#ያካትቱ

#ያካትቱ // የ TinyGPS ++ ነገር TinyGPSPlus gps; // ከጂፒኤስ መሣሪያው የሶፍትዌር ተከታታይ ኤስ.ኤስ.ኤስ (4 ፣ 3) ጋር ያለው ተከታታይ ግንኙነት ፤ የተዋቀረ ውሂብ መዋቅር {ድርብ ኬክሮስ; ድርብ ኬንትሮስ; ያልተፈረመ ረጅም ቀን; ያልተፈረመ ረጅም ጊዜ; } gpsData; ባዶነት ማዋቀር () {Serial.begin (115200); ss.begin (9600); } ባዶነት loop () {ሳለ (ss.available ()> 0) {ከሆነ (gps.encode (ss.read ())) {getInfo (); printResults (); }}} ባዶ getInfo () {ከሆነ (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } ሌላ {Serial.println («ልክ ያልሆነ ቦታ»); } ከሆነ (gps.date.isValid ()) {gpsData.date = gps.date.value (); } ሌላ {Serial.println («ልክ ያልሆነ ቀን»); } ከሆነ (gps.time.isValid ()) {gpsData.time = gps.time.value (); } ሌላ {Serial.println («ልክ ያልሆነ ጊዜ»); }} ባዶ ህትመት ውጤቶች () {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 (); }

(ለዚህ ኮድ ቪዲዮውን ይመልከቱ

ደረጃ 2 - በሬዲዮ በኩል የጂፒኤስ መረጃን መላክ

በሬዲዮ በኩል የጂፒኤስ መረጃን በመላክ ላይ
በሬዲዮ በኩል የጂፒኤስ መረጃን በመላክ ላይ

እንቆቅልሹ በባህር ውስጥ ልኬቶችን በመውሰድ እንበል ፣ ግን እኛ እግራችንን ሳናጥብ ወይም ቡሩን ወደ ባህር ሳናመጣ ውሂቡን ማየት እንፈልጋለን። ልኬቶችን በርቀት ለማግኘት ፣ በግንኙነቱ በሁለቱም በኩል ከአርዱዲኖ ጋር የተገናኘ የሬዲዮ ሞጁሉን እንጠቀማለን። ለወደፊቱ ፣ ተቀባዩ-ጎን አርዱዲኖን በራዝቤሪ ፓይ እንተካለን። ሬዲዮ ከሁለቱም እነዚህ በይነገጾች ጋር በተመሳሳይ ሁኔታ ይሠራል ስለዚህ እነሱን መቀያየር በጣም ቀጥተኛ ነው።

የሬዲዮ ሞዱል ከ I2C ይልቅ ጥቂት ተጨማሪ ግንኙነቶችን የሚፈልግ ግን አሁንም በ NRF24 ቤተ -መጽሐፍት ምክንያት ለመጠቀም በጣም ቀላል የሆነውን SPI ን በመጠቀም ይገናኛል። ለአነፍናፊ መለኪያዎች የጂፒኤስ ሞዱሉን በመጠቀም መረጃውን ከአንዱ አርዱinoኖ ወደ ሌላው እናስተላልፋለን። የጂፒኤስ እና የሬዲዮ ሞጁሉን ከአርዲኖ ጋር እናገናኘዋለን እና በሌላ በኩል አርዱዲኖን ከሬዲዮ ሞዱል ጋር እናገናኘዋለን - መርሃግብሩን ይመልከቱ።

አስተላላፊ

#ያካትቱ

#አካትት #አካትት #አካትት #አካትት TinyGPSPlus gps; SoftwareSerial ss (4, 3); RF24 ሬዲዮ (8 ፣ 7); // ከክርስቶስ ልደት በኋላ ፣ የ CSN መዋቅራዊ ውሂብ ግንባታ {ድርብ ኬክሮስ ፤ ድርብ ኬንትሮስ; ያልተፈረመ ረጅም ቀን; ያልተፈረመ ረጅም ጊዜ; } gpsData; ባዶነት ማዋቀር () {Serial.begin (115200); ss.begin (9600); Serial.println ("ሬዲዮን ማቀናበር"); // አስተላላፊ ሬዲዮ ሬዲዮ.begin (); radio.openWritingPipe (0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); radio.enableDynamicPayloads (); radio.powerUp (); Serial.println ("መላክ በመጀመር ላይ"); } ባዶነት loop () {ሳለ (ss.available ()> 0) {ከሆነ (gps.encode (ss.read ())) {getInfo (); radio.write (& gpsData ፣ sizeof (gpsData)); }}} ባዶ getInfo () {ከሆነ (gps.location.isValid ()) {gpsData.longitude = gps.location.lng (); gpsData.latitude = gps.location.lat (); } ሌላ {gpsData.longitude = 0.0; gpsData.latitude = 0.0; } ከሆነ (gps.date.isValid ()) {gpsData.date = gps.date.value (); } ሌላ {gpsData.date = 0; } ከሆነ (gps.time.isValid ()) {gpsData.time = gps.time.value (); } ሌላ {gpsData.time = 0; }}

ተቀባይ

#ያካትቱ

#ያካትቱ #RF24 ሬዲዮን ያካትቱ (8 ፣ 7) ፤ // ከክርስቶስ ልደት በኋላ ፣ የ CSN መዋቅራዊ ውሂብ ግንባታ {ድርብ ኬክሮስ ፤ ድርብ ኬንትሮስ; ያልተፈረመ ረጅም ቀን; ያልተፈረመ ረጅም ጊዜ; } gpsData; ባዶነት ማዋቀር () {Serial.begin (115200); // የሬዲዮ ሬዲዮ ሬዲዮ.begin () ማዋቀር; radio.openReadingPipe (1, 0xF0F0F0F0E1LL); radio.setChannel (0x76); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.startListening (); radio.enableDynamicPayloads (); radio.powerUp (); } ባዶነት loop () {ከሆነ (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 ();}}

(ለዚህ ኮድ ቪዲዮውን ይመልከቱ

ደረጃ 3 - የ SD ካርድ ሞዱልን በመጠቀም መረጃን ማከማቸት

የኤስዲ ካርድ ሞዱልን በመጠቀም መረጃን ማከማቸት
የኤስዲ ካርድ ሞዱልን በመጠቀም መረጃን ማከማቸት

የሬዲዮ ሞጁሉ በጣም አስተማማኝ ነው ፣ ግን በተቀባዩ በኩል የኃይል መቆራረጥ ካለ ወይም ሬዲዮው ከክልል ቢወጣ አንዳንድ ጊዜ የድንገተኛ ዕቅድ ያስፈልግዎታል። የእኛ ድንገተኛ ዕቅድ እኛ የምንሰበስበውን መረጃ ለማከማቸት የሚያስችለን የ SD ካርድ ሞዱል ነው። እየተሰበሰበ ያለው የውሂብ መጠን ያን ያህል ትልቅ አይደለም ፣ ስለዚህ አንድ ትንሽ ኤስዲ ካርድ እንኳን የአንድ ቀን ዋጋን በቀላሉ ማከማቸት ይችላል።

#ያካትቱ

#ያካትቱ #ያካትቱ #ያካትቱ TinyGPSPlus gps; SoftwareSerial ss (4, 3); የተዋቀረ ውሂብ መዋቅር {ድርብ ኬክሮስ; ድርብ ኬንትሮስ; ያልተፈረመ ረጅም ቀን; ያልተፈረመ ረጅም ጊዜ; } gpsData; ባዶነት ማዋቀር () {Serial.begin (115200); ss.begin (9600); ከሆነ (! SD.begin (5)) {Serial.println ("ካርድ አልተሳካም ፣ ወይም የለም") መመለስ; } Serial.println ("ካርድ ተጀምሯል"); የፋይል ውሂብ ፋይል = SD.open ("gps_data.csv", FILE_WRITE); ከሆነ (dataFile) {dataFile.println ("ኬክሮስ ፣ ኬንትሮስ ፣ ቀን ፣ ሰዓት"); dataFile.close (); } ሌላ {Serial.println (“nope ፋይል መክፈት አይችልም”) ፤ }} ባዶነት loop () {ሳለ (ss.available ()> 0) {ከሆነ (gps.encode (ss.read ())) {getInfo (); printResults (); saveInfo (); }}} ባዶ getInfo () {ከሆነ (gps.location.isValid ()) {gpsData.latitude = gps.location.lat (); gpsData.longitude = gps.location.lng (); } ሌላ {Serial.println («ልክ ያልሆነ ቦታ»); } ከሆነ (gps.date.isValid ()) {gpsData.date = gps.date.value (); } ሌላ {Serial.println («ልክ ያልሆነ ቀን»); } ከሆነ (gps.time.isValid ()) {gpsData.time = gps.time.value (); } ሌላ {Serial.println («ልክ ያልሆነ ጊዜ»); }} ባዶ ህትመት ውጤቶች () {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 (); } ባዶ ባዶ savefo () {ፋይል dataFile = SD.open ("gps_data.csv", FILE_WRITE); ከሆነ (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 (); } ሌላ {Serial.println ("nope no datafile"); }}

(በዚህ ኮድ በቪዲዮው ውስጥ እንነጋገራለን

ደረጃ 4 የጂፒኤስ መረጃን መላክ እና ማከማቸት

የጂፒኤስ መረጃን መላክ እና ማከማቸት
የጂፒኤስ መረጃን መላክ እና ማከማቸት
የጂፒኤስ መረጃን መላክ እና ማከማቸት
የጂፒኤስ መረጃን መላክ እና ማከማቸት

ደረጃ 5: አመሰግናለሁ

አመሰግናለሁ!
አመሰግናለሁ!

ወደ የመልዕክት ዝርዝራችን ይመዝገቡ!

ክፍል 1 ማዕበል እና የሙቀት መጠን መለካት

ክፍል 2 - GPS NRF24 ሬዲዮ እና ኤስዲ ካርድ

ክፍል 3 - ኃይልን ለቡዩ ማቀድ

ክፍል 4 - ቡይውን ማሰማራት

የሚመከር: