Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Λήψη δεδομένων GPS
- Βήμα 2: Αποστολή δεδομένων GPS μέσω ραδιοφώνου
- Βήμα 3: Αποθήκευση δεδομένων χρησιμοποιώντας μονάδα κάρτας SD
- Βήμα 4: Αποστολή και αποθήκευση δεδομένων GPS
- Βήμα 5: Ευχαριστώ
Βίντεο: Smart Buoy [GPS, Ραδιόφωνο (NRF24) και μονάδα κάρτας SD]: 5 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Αυτή η σειρά Smart Buoy παρουσιάζει την (φιλόδοξη) προσπάθειά μας να δημιουργήσουμε μια επιστημονική σημαδούρα που μπορεί να λάβει σημαντικές μετρήσεις για τη θάλασσα χρησιμοποιώντας προϊόντα εκτός ράφι. Αυτό είναι το σεμινάριο δύο από τα τέσσερα - βεβαιωθείτε ότι είστε ενημερωμένοι και αν χρειάζεστε μια γρήγορη εισαγωγή στο έργο, ελέγξτε τη σύνοψή μας.
Μέρος 1: Πραγματοποίηση μετρήσεων κύματος και θερμοκρασίας
Σε αυτό το σεμινάριο, σας δείχνουμε πώς μπορείτε να λάβετε δεδομένα GPS, να τα αποθηκεύσετε σε μια κάρτα SD και να τα στείλετε κάπου χρησιμοποιώντας ραδιόφωνο.
Το κάναμε αυτό για να μπορούμε να παρακολουθούμε την τοποθεσία του θαλάσσιου σημαδούρα μας. Το ραδιόφωνο σημαίνει ότι μπορούμε να το παρακολουθήσουμε από απόσταση και η κάρτα SD σημαίνει ότι στην περίπτωση που κάτι σπάσει και ξεφύγει, μπορούμε να κατεβάσουμε τα δεδομένα που συνέλεξε κατά την απρογραμμάτιστη εκδρομή του - αν μπορέσουμε ποτέ να τα ανακτήσουμε!
Προμήθειες
Ενότητα GPS - Amazon
Ενότητα κάρτας SD - Amazon
Κάρτα SD - Amazon
2 μονάδες ραδιοφώνου (NRF24L01+) - Amazon
2 X Arduino - Amazon
Βήμα 1: Λήψη δεδομένων GPS
Ο έξυπνος σημαδούρας κάνει μετρήσεις αισθητήρων καθώς κάθεται στη θάλασσα, συμπεριλαμβανομένης της θέσης GPS και του χρόνου δεδομένων. Ρίξτε μια ματιά στο σχηματικό που δείχνει πώς ρυθμίζουμε το κύκλωμα. Η μονάδα GPS επικοινωνεί μέσω σειριακής σύνδεσης, οπότε χρησιμοποιούμε τη σειριακή βιβλιοθήκη λογισμικού Arduino καθώς και τη μικρή βιβλιοθήκη GPS για να επικοινωνήσουμε μαζί της. Αυτές οι βιβλιοθήκες κάνουν τα πάντα εξαιρετικά απλά. Ας σας μεταφέρουμε τον κωδικό…
#περιλαμβάνω
#include // Το αντικείμενο 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 ("Τοποθεσία:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Ημερομηνία:"); Serial.print (gpsData.date); Serial.print ("Timeρα:"); Serial.print (gpsData.time); Serial.println (); }
(Δείτε το βίντεο για αυτόν τον κωδικό στη διεύθυνση
Βήμα 2: Αποστολή δεδομένων GPS μέσω ραδιοφώνου
Ας υποθέσουμε ότι ο σημαδούρας βρίσκεται στη θάλασσα και λαμβάνει μετρήσεις, αλλά θέλουμε να βλέπουμε τα δεδομένα χωρίς να βρέχουμε τα πόδια μας ή να φέρνουμε τη σημαδούρα στην ξηρά. Για να λάβουμε τις μετρήσεις από απόσταση, χρησιμοποιούμε μια μονάδα ραδιοφώνου συνδεδεμένη με ένα Arduino και στις δύο πλευρές της επικοινωνίας. Στο μέλλον, θα αντικαταστήσουμε το Arduino από την πλευρά του δέκτη με ένα βατόμουρο pi. Το ραδιόφωνο λειτουργεί παρόμοια και με τις δύο αυτές διεπαφές, οπότε η εναλλαγή τους είναι αρκετά απλή.
Η μονάδα ραδιοφώνου επικοινωνεί χρησιμοποιώντας το SPI, το οποίο απαιτεί μερικές περισσότερες συνδέσεις από το I2C, αλλά εξακολουθεί να είναι πραγματικά εύκολο στη χρήση λόγω της βιβλιοθήκης NRF24. Χρησιμοποιώντας τη μονάδα GPS για τις μετρήσεις του αισθητήρα, μεταδίδουμε τα δεδομένα της από το ένα Arduino στο άλλο. Θα συνδέσουμε τη μονάδα GPS και ραδιοφώνου στο Arduino και από την άλλη πλευρά ένα Arduino με τη μονάδα ραδιοφώνου - ρίξτε μια ματιά στο σχηματικό σχήμα.
Πομπός
#περιλαμβάνω
#include #include #include #include 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; }}
ΔΕΚΤΗΣ
#περιλαμβάνω
#include #include RF24 radio (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 ("Timeρα:"); Serial.print (gpsData.time); Serial.println ();}}
(Δείτε το βίντεο για αυτόν τον κωδικό στη διεύθυνση
Βήμα 3: Αποθήκευση δεδομένων χρησιμοποιώντας μονάδα κάρτας SD
Η μονάδα ραδιοφώνου είναι αρκετά αξιόπιστη, αλλά μερικές φορές χρειάζεστε ένα σχέδιο έκτακτης ανάγκης σε περίπτωση που υπάρχει διακοπή ρεύματος στην πλευρά του δέκτη ή εάν το ραδιόφωνο κινείται εκτός εμβέλειας. Το σχέδιο έκτακτης ανάγκης είναι μια μονάδα κάρτας SD που μας επιτρέπει να αποθηκεύσουμε τα δεδομένα που συλλέγουμε. Η ποσότητα των δεδομένων που συλλέγονται δεν είναι τόσο μεγάλη, επομένως ακόμη και μια μικρή κάρτα SD θα μπορεί εύκολα να αποθηκεύσει δεδομένα μιας ημέρας.
#περιλαμβάνω
#include #include #include TinyGPSPlus gps; SoftwareSerial ss (4, 3); struct dataStruct {διπλό γεωγραφικό πλάτος; διπλό γεωγραφικό μήκος ανυπόγραφο μακρύ ραντεβού? ανυπόγραφο καιρό } gpsData; void setup () {Serial.begin (115200); ss.begin (9600); εάν (! SD.begin (5)) {Serial.println ("Η κάρτα απέτυχε, ή δεν υπάρχει"); ΕΠΙΣΤΡΟΦΗ; } Serial.println ("η κάρτα έχει αρχικοποιηθεί."); Αρχείο dataFile = SD.open ("gps_data.csv", FILE_WRITE); if (dataFile) {dataFile.println ("Γεωγραφικό πλάτος, γεωγραφικό μήκος, ημερομηνία, ώρα"); dataFile.close (); } else {Serial.println ("δεν μπορεί να ανοίξει το αρχείο"); }} void loop () {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 ("Τοποθεσία:"); Serial.print (gpsData.latitude, 6); Serial.print (","); Serial.print (gpsData.longitude, 6); Serial.print ("Ημερομηνία:"); Serial.print (gpsData.date); Serial.print ("Timeρα:"); 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 ("όχι όχι datafile"); }}
(Μιλάμε μέσω αυτού του κώδικα στο βίντεο
Βήμα 4: Αποστολή και αποθήκευση δεδομένων GPS
Βήμα 5: Ευχαριστώ
Εγγραφείτε στη λίστα αλληλογραφίας μας!
Μέρος 1: Πραγματοποίηση μέτρησης κύματος και θερμοκρασίας
Μέρος 2: Ραδιόφωνο GPS NRF24 και κάρτα SD
Μέρος 3: Προγραμματισμός ισχύος στον σημαδούρα
Μέρος 4: Ανάπτυξη του σημαδούρα
Συνιστάται:
Μονάδα ελέγχου ArDrone 2.0 Quadcopter Control σε μονάδα MPU6050 και ESP8266: 7 βήματα
Μονάδα ελέγχου ArDrone 2.0 Quadcopter σε μονάδα MPU6050 και ESP8266: Το μέγεθος, η τιμή και η διαθεσιμότητα του Wi-Fi σάς επιτρέπουν να δημιουργήσετε μια μονάδα ελέγχου προϋπολογισμού για το τετρακόπτερο ArDrone 2.0 στην ενότητα ESP8266 (τιμές στο AliExpress, Gearbest). Για έλεγχο, θα χρησιμοποιήσουμε τη μονάδα Gy-521 στο τσιπ MPU6050 (γυροσκόπιο, acc
NRF24 Αμφίδρομο ραδιόφωνο για τηλεμετρία: 9 βήματα (με εικόνες)
NRF24 Αμφίδρομο ραδιόφωνο για τηλεμετρία: Γεια σας παιδιά, το όνομά μου είναι Pedro Castelani και σας φέρνω το πρώτο μου διδακτικό: να φτιάξω ένα αμφίδρομο ραδιόφωνο με arduino για ό, τι και αν το χρειάζεστε. Σε αυτό το έργο, θα φτιάξουμε δύο ξεχωριστά κυκλώματα που θα λειτουργήσουν τόσο ως δέκτης όσο και ως μεταδότης
Καταγραφέας θερμοκρασίας και υγρασίας από Arduino σε τηλέφωνο Android με μονάδα κάρτας SD μέσω Bluetooth: 5 βήματα
Καταγραφέας δεδομένων θερμοκρασίας και υγρασίας από το Arduino στο τηλέφωνο Android με μονάδα κάρτας SD μέσω Bluetooth: Γεια σε όλους, αυτό είναι το πρώτο μου οδηγό με οδηγίες, ελπίζω να βοηθήσω την κοινότητα των κατασκευαστών, καθώς έχω επωφεληθεί από αυτό. Συχνά χρησιμοποιούμε αισθητήρες στα έργα μας, αλλά βρίσκουμε τρόπο να συλλέγουμε τα δεδομένα, να τα αποθηκεύουμε και να τα μεταφέρουμε αμέσως Τηλέφωνα ή άλλες συσκευές
Η φθηνότερη μονάδα κάρτας Arduino Sd: 5 βήματα
Φθηνότερη μονάδα κάρτας Arduino Sd: Περιγραφή: Η μονάδα κάρτας SD χρησιμοποιείται για τη μεταφορά δεδομένων από και προς μια τυπική κάρτα sd. Το pin out είναι άμεσα συμβατό με το Arduino και μπορεί επίσης να χρησιμοποιηθεί με άλλους μικροελεγκτές. Μας επιτρέπει να προσθέσουμε μαζική αποθήκευση και καταγραφή δεδομένων στο
Geek - Κάτοχος πιστωτικής κάρτας/επαγγελματικής κάρτας από παλιό σκληρό δίσκο φορητού υπολογιστή: 7 βήματα
Geek - Κάτοχος πιστωτικής κάρτας / επαγγελματικής κάρτας από παλιό σκληρό δίσκο φορητού υπολογιστή: Ένας εξειδικευμένος επιχειρηματίας / κάτοχος πιστωτικής κάρτας. Μου ήρθε αυτή η τρελή ιδέα όταν ο σκληρός δίσκος του φορητού υπολογιστή μου πέθανε και ουσιαστικά κατέστη άχρηστος. Έχω συμπεριλάβει τις ολοκληρωμένες εικόνες εδώ