Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Κωδικός πρώτος/Υλικό δεύτερος
- Βήμα 2: Υλικό και καλωδίωση
- Βήμα 3: Τρισδιάστατη εκτύπωση κατοικίας
Βίντεο: Wifi Enabled OLED ESP32 Car Gauges: 3 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Εισαγωγές πρώτα…
Κατασκευάζω μετρητές αυτοκινήτων ως ένα είδος επανειλημμένου και απενεργοποιημένου χόμπι. Ανατρέξτε στη διεύθυνση https://www.instructables.com/id/Remote-Car-Monit… και https://www.instructables.com/id/Remote-Car-Monit… για δύο πιο πρόσφατα παραδείγματα. Μου αρέσουν ιδιαίτερα αυτά που συνδυάζονται με τα αρχικά μέρη του αυτοκινήτου. Λοιπόν, γιατί αυτό είναι διαφορετικό και τι με ενέπνευσε να το φτιάξω. Η απάντηση είναι δύο πράγματα:
1) ESP32 - wantedθελα να δοκιμάσω το νέο παιδί στο τσιπ block, ειδικά επειδή η εργαλειοθήκη που βασίζεται σε arduino είναι αρκετά ώριμη. Ένα από τα ενδιαφέροντα πράγματα που επιτρέπει το ESP32 είναι το IOT με ενσωματωμένες δυνατότητες wifi και bluetooth. Η κοινότητα έχει γράψει πολλαπλές βιβλιοθήκες για να το κάνει κάπως απλό (διακομιστές ιστού, AP, πελάτες wifi, mDNS κλπ., Κ.λπ.).
2) Φτηνές οθόνες OLED - Πίσω στο 2007 έκανα έναν μετρητή χρησιμοποιώντας ένα TFT που ήταν στη θέση του ρολογιού σε ένα GD (2004-2007) WRX. Το TFT έρχεται σε διάφορες γεύσεις. Κάποιοι δουλεύουν καλύτερα τη νύχτα, κάποιοι δουλεύουν καλύτερα την ημέρα κλπ. Αλλά κανένα από αυτά δεν λειτουργεί σε όλες τις συνθήκες. Δεν συνειδητοποίησα το λάθος των τρόπων μου μέχρι που ένας από τους μετρητές που χρησιμοποίησα ήταν άχρηστος κατά τη διάρκεια της ηλιόλουστης ημέρας ενός μέλους του φόρουμ. Εισαγάγετε OLED, τα οποία είναι υπέροχα για εφαρμογές αυτοκινήτων. Δεν είναι πολύ φωτεινά τη νύχτα και (το πιο σημαντικό) είναι ορατά στις περισσότερες συνθήκες ηλιακού φωτός.
Αυτό είναι ένα διδακτικό δύο για ένα, καθώς έγραψα τα πάντα για δύο κοινούς μετρητές αυτοκινήτων, την πίεση λαδιού και την πίεση turbo. Και τα δύο είναι ουσιαστικά το ίδιο πράγμα: ένας μικρός μετρητής συντελεστής μορφής με μια ζωντανή αναλογική εμφάνιση OLED οθόνη με διακριτούς αριθμούς και μέγιστα εμφανιζόμενα. Και οι δύο λειτουργούν επίσης ως wifi AP και διακομιστές ιστού. Όταν κάποιος συνδέεται μαζί τους μέσω υπολογιστή ή κινητού τηλεφώνου, μπορεί να προβληθεί ένα κινούμενο γράφημα EKG (αυτό είναι το κάπως καινοτόμο μέρος).
Προμήθειες
Ενότητα HELTEC ESP32-αποκτήστε την παραλλαγή wifi
Ειδικά μέρη πίεσης λαδιού:
Αισθητήρας πίεσης λαδιού - Χρησιμοποίησα αυτοκινητιστές 5222 εξαρτήματα σύνδεσης αισθητήρα πίεσης λαδιού - αυτό διαφέρει ανάλογα με το αυτοκίνητο και τη θέση εγκατάστασης. Συμβουλευτείτε εγχειρίδια σέρβις, φόρουμ, μηχανήματα κ.λπ. και κάντε το σωστά, ώστε να μην υπάρχουν διαρροές λαδιού
Ειδικά εξαρτήματα μετρητή ενίσχυσης:
- Αισθητήρας πίεσης αέρα (μόνο εάν θέλετε να κάνετε ένα μανόμετρο) -
- Σωλήνας αέρα
- Εξαρτήματα Τ
Βιβλιοθήκες που χρησιμοποίησα ήταν απαραίτητες:
Smoothiecharts - https://smoothiecharts.org/ Εξαιρετικά και ελαφριά ζωντανά ενημερωμένα γραφήματα. Πολύ προσαρμόσιμο και δεν βασίζεται στην αναφορά μιας βιβλιοθήκης js κάπου αλλού στο διαδίκτυο. Αυτό επιτρέπει τη ρύθμιση τύπου "local-IOT" και ολόκληρη η βιβλιοθήκη ταιριάζει σε μια συμβολοσειρά για τη δήλωση διακομιστή ιστού σε κώδικα!
ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- κάνει αυτό που λέει στο κουτί και το κάνει καλά
Βιβλιοθήκη γραφικών ThingPulse OLED (καλέστε μερικές φορές τη βιβλιοθήκη squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - πολύ αποτελεσματικά και απλά γραφικά για τα τσιπ ESP. Μου επέτρεψε να κάνω έναν τεμπέλη προγραμματισμό και να συνεχίσω να έχω πειστικά κινούμενα σχέδια.
Εργαλεία/διάφορα:
συγκολλητικό σίδερο - χρησιμοποιείται για την εκτέλεση μεγάλων καλωδίων για αισθητήρες, την τοποθέτηση κεφαλίδων επί του σκάφους, συρρίκνωση συρρικνωμένου περιτυλίγματος κ.λπ.
κατσαβίδι/πρίζες/άλλα εργαλεία αυτοκινήτου - απαραίτητα για την εγκατάσταση αισθητήρων στο αυτοκίνητο
ταινία διπλής όψης - για τοποθέτηση μετρητών σε περιβλήματα και τοποθέτηση περιβλήματος στο αυτοκίνητο (μπορεί να λειτουργήσει ζεστή κόλλα και άλλα πράγματα, αλλά προτιμώ την εξωτερική επένδυση διπλής όψης 3Μ. Κρατάει καλά και μπορεί να τραβηχτεί χωρίς να καταστραφούν τα πράγματα.)
ψαλίδι - για ταινία και κοπή σωλήνων και φερμουάρ
φερμουάρ - για συγκράτηση αντικειμένων, δέσιμο καλωδίων κάτω από το ταμπλό και στο χώρο του κινητήρα, συγκράτηση αισθητήρων στη θέση του κ.λπ.
Βήμα 1: Κωδικός πρώτος/Υλικό δεύτερος
Μπορείτε να κατεβάσετε τον κώδικα εδώ:
Πίεση λαδιού -
Ενίσχυση πίεσης -
Ενίσχυση πίεσης με πρόσωπα αντί για αναλογικά όργανα μέτρησης -
Κωδικός γραφικών: Η βιβλιοθήκη ThingPulse είναι τόσο αποτελεσματική που μπορείτε να σχεδιάσετε xbms το ένα πάνω στο άλλο και να έχετε πειστικά αποτελέσματα!
Οι εικόνες μετρητή προήλθαν στην πραγματικότητα από ένα αποθετήριο γραφικών ανοιχτού κώδικα (https://thenounproject.com/). Ο καλλιτέχνης Iconic, CY (https://thenounproject.com/icon/490005/).
Χρησιμοποίησα το gimp για να δημιουργήσω 20 διαφορετικά πλαίσια με τη βελόνα να δείχνει προς κάθε σημάδι τσιμπούρι. Τα εικονίδια smiley είναι της NOVITA ASTRI, ID και είναι εδώ:
Στη συνέχεια, μετέτρεψα όλα αυτά σε συστοιχίες const uint8_t χρησιμοποιώντας αυτήν την τεχνική (υπόδειξη: αν τα χρώματα αντιστραφούν όταν τα εμφανίζετε, απλά αντιστρέψτε τα χρώματα στο πρωτότυπο): https://blog.squix.org/2015/05/esp8266- nodemcu-ho…
Ο κώδικας ζωντανής κινούμενης εικόνας είναι αρκετά απλός:
- Διαβάστε από τον αισθητήρα
- Ανάγνωση κλίμακας (το έκανα 1 προς 1 για θετικές τιμές ώθησης και μετακινήστε τη βελόνα μόνο όταν είναι σε ώθηση και όχι όταν είναι στο κενό)
- Σχεδιάστε xbm και, στη συνέχεια, καταγράψτε αριθμούς χαρακτήρων για όλα τα άλλα.
- ξεπλύνετε και επαναλάβετε
Κωδικός αισθητήρα: Χρησιμοποιώ ξανά τον κωδικό αισθητήρα που έχω χρησιμοποιήσει για αυτούς τους δύο αισθητήρες για μερικά άλλα έργα. Πρόσθεσα κάποιους μέσους όρους για να ξεφύγω από τους ανυπόμονους αισθητήρες. Αυτό περιλαμβάνει ανάγνωση κάθε "ανάγνωσης" που είναι κατά μέσο όρο 5 αναγνώσεις.
Κωδικός ενίσχυσης (ο αισθητήρας δίνει μια αναλογική τιμή από 0-5 βολτ την οποία το ADC μετατρέπει σε βήματα από 0-1024):
int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // float ResultPSI = (rboost*(. 00488)/(. 022) +20) /6.89 - atmo; // άδεια του /6.89 για kpa float ResultPSI = (((rboost /4095) + 0.04) /0.004) * 0.145 - atmo; // κατά 0,145 σε calc psi // 4096 τιμές στο esp32 /*rBoost = rBoost + 1; εάν (rBoost> = 20) {rBoost = 0; }*/ return (ResultPSI); }
Κωδικός πίεσης λαδιού (ο αισθητήρας μεταβάλλει την αντίστασή του με βάση την πίεση που αισθάνεται, οπότε απαιτείται διαχωριστής τάσης για να μετατραπεί σε τάση από 0-5v δείτε: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… (προς τα κάτω) για περισσότερες πληροφορίες):
int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0.0601*psival + 177.04 - 14.5; επιστροφή psival? }
Λειτουργικότητα διακομιστή Web και AP: Η λειτουργικότητα AP είναι αρκετά απλή - στιγμιαία και αντικείμενο AP με το ESSID που θέλετε να μεταδώσετε και τον κωδικό πρόσβασης και είστε έτοιμοι.
const char *ssid = "boost_gauge_ap"; const char *password = "password"?
WiFi.softAP (ssid, κωδικός πρόσβασης);
Έχει ακόμη και διακομιστή DHCP, ώστε να μην χρειάζεται να ανησυχείτε για αυτό. Από προεπιλογή, η IP είναι 192.168.1.4 (δεν υπάρχει ιδέα γιατί, αυτό ακριβώς επέλεξε). Το κομμάτι του διακομιστή ιστού είναι λίγο πιο περίπλοκο και απαιτεί λίγη έρευνα. Βασικά θέλετε έναν διακομιστή ιστού συγχρονισμού, ώστε να μπορεί να λαμβάνει ζωντανά δεδομένα ενημέρωσης. Ευτυχώς υπάρχει βιβλιοθήκη για αυτό. Δεν είμαι προγραμματιστής javascript, γι 'αυτό ασχολήθηκα με μια δέσμη βιβλιοθηκών χαρτογράφησης και γραφικών παραστάσεων μέχρι που έπεσα πάνω σε γραφήματα smoothie. Οι περισσότερες άλλες βιβλιοθήκες γραφημάτων γράφονται έτσι ώστε να κληρονομούν κάθε είδους κώδικα από άλλες βιβλιοθήκες από ολόκληρο τον ιστό που φορτώνονται δυναμικά κατά την απόδοση μιας σελίδας. Wantedθελα αυτό να λειτουργεί ανεξάρτητα από το διαδίκτυο, οπότε αυτό ήταν ένα μεγάλο εύρημα. Δεύτερον, έπρεπε να είναι αρκετά μικρό ώστε να ταιριάζει σε ένα arduino και, όπως μπορείτε να δείτε στον κώδικα, ταιριάζει σε έναν πίνακα char.
Δηλώσεις διακομιστή ιστοσελίδων: #include AsyncTCP.h #include ESPAsyncWebServer.h… διακομιστής AsyncWebServer (80); // υποδείξτε το και επιλέξτε θύρα (80 είναι τυπική για http)… server.on ("/", HTTP_GET, (AsyncWebServerRequest *request) {request-> send (200, "text/html", "… // η ιστοσελίδα + η βιβλιοθήκη smoothiecharts σε μια τεράστια συστοιχία χαρακτήρων}); server.on ("/val", HTTP_GET, (αίτημα AsyncWebServerRequest *) {// η πρώτη σελίδα ονομάζει πραγματικά αυτήν την πολύ μικρή σελίδα που επιστρέφει απλώς το αίτημα τιμής -> αποστολή (200, "text/html", Sboost);}); server.begin ();
Βήμα 2: Υλικό και καλωδίωση
Στη γκαλερί απεικονίζονται οι δύο αισθητήρες που χρησιμοποιώ. Ο μεγάλος χρυσός είναι ένας αισθητήρας πίεσης λαδιού Autometer 2242. Το σώμα και το σπείρωμα αυτού του αισθητήρα είναι γειωμένα και ο ακροδέκτης είναι η ένδειξη στην αντίσταση.
Το Autometer θα σας παρέχει μια καμπύλη αντίστασης στην πίεση ή αντίσταση στη θερμοκρασία για οποιονδήποτε από τους αισθητήρες τους. Το έχω μετατρέψει σε τάση χρησιμοποιώντας ένα διαχωριστή τάσης (βλέπε διάγραμμα καλωδίωσης).
Ο αισθητήρας πίεσης αέρα MPX4250AP έχει τρεις ζωντανές ακίδες και αρκετές ακίδες που δεν χρησιμοποιούνται. Είναι έξοδο V, γείωση και έξοδος αισθητήρα. Εξάγει μια ένδειξη 0-5v που μπορεί να διαβαστεί από τον μικροελεγκτή (ή στην περίπτωση αυτού του mcu 0-3 βολτ. Έτσι, η ένδειξη του αισθητήρα μειώνεται χρησιμοποιώντας διαχωριστή τάσης.). Το φύλλο προδιαγραφών για αυτό μπορείτε να το βρείτε εδώ:
Υπάρχουν διάφορα ζητήματα στη μείωση της λογικής από 5v σε 3v. Στην περίπτωσή μου χρησιμοποίησα το διαχωριστή τάσης για απλότητα και είχα τα μέρη γύρω από τον πάγκο εργασίας μου. Θα εισαγάγετε ένα μικρό σφάλμα στις ενδείξεις με βάση το πιθανό σφάλμα των πρόσθετων εξαρτημάτων (οι δύο αντιστάσεις). Αυτό θα μπορούσε να κάνει τις αναγνώσεις σας 10% έκπτωση σε ορισμένες περιπτώσεις. Μπορώ να ζήσω με αυτό. Εάν δεν μπορείτε, μπορείτε να χρησιμοποιήσετε ένα opamp και αντιστάσεις ή έναν μετατροπέα λογικού επιπέδου (διαθέσιμο από διάφορους προμηθευτές ηλεκτρονικών ειδών. Το Sparkfun έχει ένα εδώ: https://www.sparkfun.com/products/12009 Μπορώ να το αλλάξω ως Μερικές φορές λαμβάνω υψηλές ενδείξεις σε αυτό το μετρητή (στην πραγματικότητα έχω δείξει αυτό το προϊόν στο διάγραμμα καλωδίωσης).
Τροφοδοτούσα το ESP32 μέσω USB. Αυτό περιλάμβανε την καλωδίωση ενός άμεσου φορτιστή όπως αυτός: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… στο αυτοκίνητο και στη συνέχεια χρησιμοποιώντας έναν διανομέα USB για να τον χωρίσετε. Μπορείτε να δείτε ότι χρησιμοποίησα καλώδια usb ορθής γωνίας για να διασφαλίσω ότι όλα λειτουργούν σε μια μικρή περιοχή (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).
Άλλες φωτογραφίες δείχνουν μέρη που έκοψα τρύπες ή έτρεξα σύρμα. Κάθε αυτοκίνητο θα είναι διαφορετικό. Να είστε προσεκτικοί, τα μαχαίρια και το ψαλίδι είναι αιχμηρά, ο ηλεκτρισμός μπορεί να είναι επικίνδυνος, οπότε αποσυνδέστε την μπαταρία πριν από την καλωδίωση.
Βήμα 3: Τρισδιάστατη εκτύπωση κατοικίας
Έχω χρησιμοποιήσει πολλά περιβλήματα τρισδιάστατης εκτύπωσης για αυτό.
- Ένα γενικό μεγάλο στρογγυλό μετρητή 2 οθονών. Μπορείτε να το δείτε σε αυτές τις εικόνες της πρώτης σελίδας. Το έβαλα δίπλα στο ρολόι μου στην παύλα μου.
- Ένα ενιαίο στυλ σφήνας που ταιριάζει στην περιοχή του ρολογιού ενός subaru impreza (wrx, sti, κ.λπ.) από το 2008 έως το 2014 περίπου.
- Ένα κομμάτι διπλού μετρητή που ταιριάζει στις κολώνες του τιμονιού και σε άλλες ελαφρώς στρογγυλεμένες επιφάνειες:
Είστε ευπρόσδεκτοι να αντιγράψετε και να τροποποιήσετε αυτά για να ταιριάζουν στις ανάγκες σας. Κανένα από αυτά δεν είναι τέλειο και όλα θα χρειαστούν λίγη προσαρμογή.
Μερικές σημειώσεις:
- Τελειωσα το δικο μου με plastidip? είναι η προτιμώμενη μέθοδος των τεμπέληδων.
- Το τρίψιμο των πλαστικών κάνει εξαιρετικά σωματίδια που δεν είναι καλά για εσάς, χρησιμοποιήστε μια κατάλληλη μάσκα.
- Χρησιμοποίησα το PETG για τα σπίτια μου. Το ABS είναι επίσης καλό. Το PLA θα παραμορφωθεί στον καυτό ήλιο σε ένα ταμπλό.
Δεύτερο Βραβείο στο IoT Challenge
Συνιστάται:
Alexa Enabled Remote Control (χρησιμοποιώντας WEMO D1 Mini): 3 βήματα
Alexa Enabled Remote Control (χρησιμοποιώντας WEMO D1 Mini): Αυτή είναι μια ενημερωμένη έκδοση μιας προηγούμενης ανάρτησης: https: //www.instructables.com/id/Voice-Activated-R..Στην προηγούμενη έκδοση, χρησιμοποίησα ένα Geetech μονάδα φωνής για τον έλεγχο ενός συνηθισμένου τηλεχειριστηρίου τύπου ανοιχτήρι γκαράζ. Σε αυτό το διδακτικό έχω αντικαταστήσει το φωνητικό
IoT Enabled Coffee Machine: 9 βήματα (με εικόνες)
IoT Enabled Coffee Machine: Αυτό το διδάξιμο συμμετέχει στον διαγωνισμό IoT - Αν σας αρέσει, ψηφίστε το! ΕΝΗΜΕΡΩΜΕΝΟ: Τώρα υποστηρίζει 2 -way comms και ενημερώσεις OTA Εδώ και λίγο καιρό είχα μια καφετιέρα Jura και πάντα ήθελα για να το αυτοματοποιήσω με κάποιο τρόπο. Έχω
Alexa-Enabled Death Star Lamp: 17 βήματα (με εικόνες)
Alexa-Enabled Death Star Lamp: Φέρτε ένα απόσπασμα από τη σκοτεινή πλευρά στο σαλόνι σας με αυτόν τον μοναδικό λαμπτήρα με φωνητική ενεργοποίηση. Ένα λειτουργικό έργο τέχνης που είναι χρήσιμο και ευχάριστο να το κοιτάξεις. Ενεργοποίηση ή απενεργοποίηση; Όλες οι λάμπες το κάνουν! Αλλαγή φωτεινότητας; Πολύ κοινό! Μπορεί όμως το δικό σας
IoT Enabled Sensor Data Collection Center With ESP8266 & PubNub: 9 βήματα (με εικόνες)
IoT Enabled Sensor Data Collection Center With ESP8266 & PubNub: Τα περισσότερα από τα σεμινάρια στο ESP8266 είναι είτε σε επίπεδο αρχάριου (αναβοσβήνει από απόσταση ένα led) είτε είναι πολύ περίπλοκα για κάποιον που ψάχνει κάτι να βελτιώσει και να αναβαθμίσει με τις ικανότητές του να αναβοσβήνει με led. Αυτό Ο εκπαιδευτικός στόχος είναι να γεφυρώσει αυτό το χάσμα στη δημιουργία
My Car Stereo - Ipod Enabled: 8 Steps
My Car Stereo - Ipod Enabled: Kindly Note: Κάντε το με δική σας ευθύνη, οι πιθανότητες είναι ότι, θα μπορούσατε να σας χαλάσετε το Ipod και τον ήχο του αυτοκινήτου σας. Πώς μπορείτε να κάνετε το αυτοκίνητό σας Audio, Ipod Enabled, έχω Pioneer Car Audio και Ipod Mini. Χρειάζεστε καλώδια ήχου και στερεοφωνικό 2 μονοφωνικό pin