ዝርዝር ሁኔታ:
- አቅርቦቶች
- ደረጃ 1 የጂፒኤስ መረጃን ማግኘት
- ደረጃ 2 - በሬዲዮ በኩል የጂፒኤስ መረጃን መላክ
- ደረጃ 3 - የ SD ካርድ ሞዱልን በመጠቀም መረጃን ማከማቸት
- ደረጃ 4 የጂፒኤስ መረጃን መላክ እና ማከማቸት
- ደረጃ 5: አመሰግናለሁ
ቪዲዮ: ስማርት ቡዩ [ጂፒኤስ ፣ ሬዲዮ (NRF24) እና የ SD ካርድ ሞዱል] - 5 ደረጃዎች (ከስዕሎች ጋር)
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:29
ይህ ስማርት ቡይ ተከታታይ ከመደርደሪያ ውጭ ምርቶችን በመጠቀም ስለ ባሕሩ ትርጉም ያለው ልኬቶችን ሊወስድ የሚችል ሳይንሳዊ 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 - ቡይውን ማሰማራት
የሚመከር:
ስማርት ዴስክ የ LED መብራት - ስማርት መብራት ወ/ አርዱinoኖ - የኒዮፒክሰል የሥራ ቦታ 10 ደረጃዎች (ከስዕሎች ጋር)
ስማርት ዴስክ LED መብራት | ስማርት መብራት ወ/ አርዱinoኖ | ኒዮፒክስልስ የሥራ ቦታ - አሁን አንድ ቀን እኛ ብዙ ጊዜ በቤት ውስጥ እያጠፋን ፣ እያጠናን እና ምናባዊ ሥራን እየሠራን ነው ፣ ስለዚህ የሥራ ቦታችንን በብጁ እና በዘመናዊ የመብራት ስርዓት አርዱዲኖ እና በ Ws2812b LEDs ላይ የበለጠ ለምን አናደርግም። እዚህ እንዴት የእርስዎን ስማርት እንደሚገነቡ አሳያችኋለሁ። ዴስክ LED መብራት
ካርድ ነጋዴ ለንግድ ካርድ ማሽን (ዝማኔ 2019-01-10): 12 ደረጃዎች (ከስዕሎች ጋር)
ካርድ ነጋዴ ለንግድ ካርድ ማሽን (2019-01-10 ያዘምኑ): የካርድ ነጋዴ ለንግድ ካርድ ማሽን የለውጥ ምዝግብ በመጨረሻው ደረጃ ላይ ሊገኝ ይችላል። ዳራ እኔ በፕሮጄክት ተነሳሽነት በካርድ መጋቢ ጽሑፍ ውስጥ አስቀድሜ ገልጫለሁ። ግን በአጭሩ እኔ እና ልጆቼ ብዙ የግብይት ካርድ አከማችተናል
አርዱዲኖ + ጂፒኤስ ሞዱል - የመድረሻ ማሳወቂያ 6 ደረጃዎች
አርዱinoኖ + ጂፒኤስ ሞዱል - የመድረሻ ማሳወቂያ - በትራፊክ መጨናነቅ ውስጥ ምን ያህል ጊዜ እናጠፋለን? ይህንን ጊዜ ውጤታማ በሆነ መንገድ ለመጠቀም በአርዱዲኖ የሚንቀሳቀስ የመድረሻ ማሳወቂያ ሠራሁ። የትራፊክ መጨናነቅ ዋና ጊዜ ማባከን ሊሆን እንደሚችል ሁሉም ያውቃል። እና ምን ያህል ጊዜ እንደሚወስድ ለመተንበይ አይቻልም
NRF24 ለቴሌሜትሪ ባለሁለት መንገድ ሬዲዮ 9 ደረጃዎች (ከስዕሎች ጋር)
NRF24 ለቴሌሜትሪ ባለሁለት መንገድ ሬዲዮ-ሠላም ወንዶች ፣ ስሜ ፔድሮ ካቴላኒ ነው እናም የመጀመሪያ አስተማሪዬን አመጣላችኋለሁ-ከአርዱዲኖ ጋር የሁለት መንገድ ሬዲዮ መገንባት ፣ ለማንኛውም ፣ ለሚፈልጉት በዚህ ፕሮጀክት ውስጥ እኛ እናደርጋለን እንደ ተቀባዩ እና አስተላላፊ ሆነው የሚሠሩ ሁለት የተለያዩ ወረዳዎች
የፍጥነት መለኪያ-ምዝግብ ማስታወሻ በ SD ካርድ ካርድ 6 ደረጃዎች (ከስዕሎች ጋር)
የፍጥነት መለኪያ-ሎገር ከ SD ካርድ ማህደረ ትውስታ ጋር-በሮለር ኮስተር ላይ ኃይሎችን ለመለካት እና ወደ ኤስዲ-ካርድ ለማስቀመጥ የምዝግብ ማስታወሻ አሃድ። እሱ ከተገናኘ ሌሎች ነገሮችን ለመለካት እንዲችል በሶፍትዌሩ ውስጥ ሶፍትዌሩን ማሻሻልም ይቻላል። i2c-bus.Top Thrill Dragster