Πίνακας περιεχομένων:
Βίντεο: Arduino 1-wire Generic Client/Slave Device (Sensor): 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Διαβάστε την Εισαγωγή και το Βήμα 2 του οδηγού μου σχετικά με τον τρόπο δημιουργίας μιας οθόνης Arduino 1-wire (144 Chars) για να λάβετε περισσότερες πληροφορίες σχετικά με την κατάσταση και τις διαθέσιμες βιβλιοθήκες. Όπως εξηγείται εκεί, θα χρησιμοποιήσουμε τη βιβλιοθήκη OneWire-Hub (εξομοιωτής συσκευής OneWire) από την orgua (δώστε προσοχή υπάρχουν και άλλα πιρούνια γύρω) για να δημιουργήσετε γενικές συσκευές 1 καλωδίου (π.χ. αισθητήρες) χρησιμοποιώντας ένα Arduino.
Βήμα 1: Λογισμικό
Το πιο σημαντικό πράγμα είναι να φτιάξετε μια συσκευή που μπορεί να επιστρέψει βασικά κάθε είδους αξία με απλό τρόπο. Αυτό σημαίνει ότι το τυπικό λογισμικό μπορεί να χρησιμοποιηθεί για την άμεση ανάγνωση όλων των τιμών (δεν απαιτείται συνομιλία ή δυαδικός χειρισμός). Για αυτό χρειαζόμαστε μια πολύ απλή προεπιλεγμένη συσκευή 1 καλωδίου που μπορεί να επιστρέψει πλωτήρες και υποστηρίζεται ευρέως. Η μόνη επιλογή που γνωρίζω είναι το θερμόμετρο DS18B20 (το DS2438 Battery Monitor είναι ενδιαφέρον και χρήσιμο, αλλά πολύ περίπλοκο και επομένως αργό μεταξύ άλλων μειονεκτημάτων). Η βιβλιοθήκη OneWire-Hub περιέχει ένα παράδειγμα που ονομάζεται DS18B20_asInterface που κάνει ακριβώς αυτό που χρειαζόμαστε. Δημιουργεί μια δέσμη DS18B20, εκ των οποίων το καθένα αντιπροσωπεύει μία τιμή float που θέλουμε να επιστρέψουμε από τους αισθητήρες μας. Οι περιορισμοί εδώ είναι η ανάλυση και οι τιμές πρέπει να είναι στην περιοχή -55, 0… 125, 0. Αυτό μπορεί εύκολα να επιτευχθεί - στη χειρότερη περίπτωση να γίνει επαναστέγαση - και είναι πραγματικά καλύτερο από τις τιμές που μπορούν να αναπαρασταθούν π.χ. τις τιμές DS2438 (1,5 έως 10V). Εναλλακτικά, μπορεί να οριστεί μεγαλύτερο εύρος τιμών χρησιμοποιώντας:
setTemperatureRaw (static_cast (τιμή * 16.0f));
αλλά η ανάγνωση και η επεξεργασία αυτών των τιμών ενδέχεται να μην υποστηρίζονται από όλο το λογισμικό καθώς είναι εκτός προδιαγραφών.
Αυτό που πρέπει να γνωρίζετε είναι ότι αρχικά ο μέγιστος αριθμός σκλάβων περιορίζεται σε 8 αλλά μπορεί να αλλάξει στο "OneWireHub_config.h" αυξάνοντας το HUB_SLAVE_LIMIT έως 32. Επίσης, πρέπει να βεβαιωθείτε ότι θα υιοθετήσετε ONEWIRE_TIME_MSG_HIGH_TIMEOUT εάν χρειαστεί Δίκτυο 1 καλωδίων (π.χ. x10), όπως εξηγείται στο βήμα 2 της οθόνης Arduino 1-wire (144 Chars). Και για να χρησιμοποιήσετε την έκδοση IDE> = 1.8.3 για να μεταγλωττίσετε και να ανεβάσετε τον κώδικα στο Arduino σας.
Εδώ ως παράδειγμα ο κώδικας της συσκευής που κατασκευάζω πολύ πρόσφατα. Καθώς υποθέτω ότι δεν χρησιμοποιείτε τον ίδιο συνδυασμό αισθητήρων που κάνω, δεν θα επεκταθώ εδώ περαιτέρω, ελέγξτε τον κώδικα και κάντε ερωτήσεις εάν χρειάζεστε βοήθεια.
Βήμα 2: Υλικό
Βασικά οτιδήποτε μπορείτε να συνδέσετε σε ένα Arduino μπορεί να χρησιμοποιηθεί ως αισθητήρας επιλογής σας. Ο μόνος περιορισμός είναι ότι η ανάγνωση του αισθητήρα πρέπει να είναι όσο το δυνατόν γρηγορότερη για να έχει πολύ χρόνο για να πραγματοποιηθεί η επικοινωνία 1 καλωδίου (παραγγείλετε το βήμα 2 του οδηγού μου σχετικά με την οθόνη 1-καλωδίου Arduino (144 Chars) για να πάρουμε ένα παράδειγμα).
Ένα παράδειγμα πιθανού υλικού θα μπορούσε να είναι ένας μετεωρολογικός σταθμός όπως π.χ.
https://shop.boxtec.ch/wetter-messer-p-41289.html
Επιπρόσθετα ή αντί για εσάς, ίσως θελήσετε να χρησιμοποιήσετε το ίδιο το Arduino ως αισθητήρα σας. Μπορείτε να διαβάσετε περισσότερα σχετικά με αυτό στο instruction μου σχετικά με τα Arduino Lesser Known Features - πιθανές τιμές είναι η τάση πηγής και η εσωτερική θερμοκρασία.
Εδώ ως παράδειγμα μια εικόνα της συσκευής που έφτιαξα πολύ πρόσφατα. Καθώς υποθέτω ότι δεν χρησιμοποιείτε τον ίδιο συνδυασμό αισθητήρων που κάνω, δεν θα επεκταθώ εδώ περαιτέρω, ελέγξτε τον κώδικα και κάντε ερωτήσεις εάν χρειάζεστε βοήθεια.
Βήμα 3: Δοκιμάστε τη συσκευή
Συνδέστε το στο δίκτυό σας και ελέγξτε το λογισμικό σας για να υπάρχουν όλα τα αναγνωριστικά ROM και οι τιμές που επιστρέφουν ως θερμοκρασία.
Βήμα 4: Προσάρτημα: ATtiny85
Μεμονωμένες συσκευές (περιορισμός μνήμης) μπορούν επίσης να γίνουν σε ένα ATtiny85. Αυτό χρειάζεται μερικά βήματα καθώς προγραμματίζουμε το ATtiny85 χρησιμοποιώντας το Arduino Uno ως ISP με τη βοήθεια του Arduino IDE:
-
Συνδέσεις
- https://playground.boxtec.ch/doku.php/arduino/att…
- https://sebastian.expert/could-not-find-usbtiny-d…
- https://learn.sparkfun.com/tutorials/tiny-avr-pro…
- https://forum.arduino.cc/index.php?topic=425532.0
- https://forum.arduino.cc/index.php?topic=128963.0
- χρησιμοποιήστε Arduino IDE> = 1.8.3
-
εγκαταστήστε την επιλογή ATtiny στο IDE
- Αρχείο> Προτιμήσεις> Πρόσθετες διευθύνσεις διευθύνσεων πινάκων:
- Εργαλεία> Πίνακας: ??? > Διευθυντής Διοικητικού Συμβουλίου…
- αναζήτηση για: "μικροσκοπικό" και εγκατάσταση
-
μεταφόρτωση σκίτσου ISP σε Uno
Αρχείο> Παραδείγματα> ArduinoISP> ArduinoISP
-
τοποθετήστε το ATtiny85 στην υποδοχή προγραμματισμού (μηδενικής δύναμης) και συνδέστε το:
- Arduino Pin MOSI D11 σε ATtiny Pin 5
- Arduino Pin MISO D12 to ATtiny Pin 6
- Arduino Pin SCK D13 έως ATtiny Pin 7
- Επαναφορά Arduino Pin D10 σε ATtiny Pin 1
- Arduino Pin GND σε ATtiny Pin 4
- Arduino Pin VCC σε ATtiny Pin 8
- (> = Μπορεί να χρειαστεί καπάκι 10uF στην καρφίτσα Arduino Uno RESET)
-
επιλέξτε ATtiny85 (δείτε εικόνα):
- Πίνακας: "ATtiny25/45/85"
- Χρονόμετρο 1 Ρολόι: "CPU"
- B. O. D.: "B. O. D. Disabled"
- LTO (μόνο 1.6.11 +): "Απενεργοποιημένο"
- Τσιπ: "ATtiny85"
- Ρολόι: "8 MHz (εσωτερικό)" (συμβατό με ATtiny85 και ATtiny84)
- Ρολόι: "16 MHz (PLL)" (εναλλακτική ρύθμιση μόνο για ATtiny85)
- Λιμάνι: ???
-
επιλέξτε προγραμματιστή:
Εργαλεία> Προγραμματιστής: "Arduino ως ISP" (ΟΧΙ "ArduinoISP"!)
-
ορίστε τις ρυθμίσεις ασφάλειας (ρολόι, κ.λπ.):
Εργαλεία> Burn Bootloader
- ανεβάστε αυτόν τον κωδικό (το LED σφάλματος προγραμματιστή πρέπει να είναι απενεργοποιημένο, αλλιώς επαναφέρετε τον)
-
Διάταξη καρφιτσών ATtinyX5 (ATtiny85):
- Καρφίτσα 1: PB5 (RST)
- Καρφίτσα 2: PB3 (A3) - προαιρετικά συνδεδεμένο μέσω 220ohm σε 1 <-TX
- Καρφίτσα 3: PB4 (A2) - συνδεδεμένο με 1 -καλώδιο DATA
- Pin 4: GND - συνδεδεμένο στο GND
- Pin 5: PB0 (PWM) - συνδεδεμένο στον αισθητήρα I2C SDA
- Pin 6: PB1 (PWM) - συνδεδεμένο με LED με 4,7k σε GND
- Pin 7: PB2 (A1) - συνδεδεμένο στον αισθητήρα I2C SCL
- Pin 8: VCC - συνδεδεμένο σε 5V
Η εργασία με το ATTiny85 χρειάζεται λίγη περισσότερη δουλειά καθώς χρειάζεστε επιπλέον βιβλιοθήκες για I2C comm (adafruit/TinyWireM) και σειριακή έξοδο (TinyDebugSerial). Επιπλέον καθώς η μνήμη είναι αρκετά περιορισμένη ίσως θελήσετε να δουλέψετε πολύ με το #define π.χ. για κατάργηση σειριακών εντοπισμών σφαλμάτων. Στο παράδειγμα μπορείτε να δείτε όλα αυτά μαζί.
Για τον έλεγχο, το πρώτο βήμα είναι να ελέγξετε εάν η λυχνία LED αναβοσβήνει με τη σωστή συχνότητα, 0,5Hz. Στη συνέχεια, συνδέστε το στο δίαυλο 1wire και ελέγξτε για τη νέα συσκευή.
Συνιστάται:
Generic Rooms in Twine With Sugarcube: 11 Βήματα
Generic Rooms in Twine With Sugarcube: Γεια σας και καλώς ήλθατε στο σεμινάριό μου για την κατασκευή του Wumpus Hunt in Twine with Sugarcube! Το Twine είναι ένα πολύ απλό εργαλείο, σχεδιασμένο για τη δημιουργία παιχνιδιών περιπέτειας κειμένου! Η αγαπημένη μου μικρή ξαδέρφη επέλεξε να κάνει ένα παιχνίδι με το Twine για το ανώτερο έργο της, ένα
[Αρχική IoT] ESP8266 MQTT Client Device: 7 Βήματα
[Home IoT] ESP8266 MQTT Client Device: Είναι ενδιαφέρον ότι χρησιμοποιώντας ένα φθηνό MCU με δυνατότητα WiFi με το πρωτόκολλο MQTT για τον έλεγχο των συσκευών όπως ο αυτόματος τροφοδότης νερού για τη γάτα μου. Υπάρχει το ιστολόγιό μου για περισσότερες λεπτομέρειες (https://regishsu.blogspot.com/2019/07/home-iot-esp…Spe
ESP32 Client Picture Logging Client: 5 βήματα
ESP32 Camera Picture Logging Client: Το ESP32 Camera Picture Logging Client Project επικεντρώνεται στη χρήση μικροελεγκτή ESP32 για λήψη φωτογραφιών και την αποστολή στον κεντρικό διακομιστή μέσω Internet χρησιμοποιώντας τη δυνατότητα WiFi της μονάδας ESP32. Η κύρια πλακέτα PCB σχεδιάστηκε με δύο βασικούς στόχους:
IOT123 - ASIMIMATE SENSOR HUB: ICOS10 GENERIC SHELL (IDC) ΣΥΝΑΡΜΟΛΟΓΗΣΗ: 6 Βήματα
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 GENERIC SHELL (IDC) ΣΥΝΑΡΜΟΛΟΓΗΣΗ: ΣΗΜΕΙΩΣΗΑυτή είναι μια βελτιωμένη (στιβαρότητα κυκλώματος) έκδοσης του ASUB SENSOR HUB: ICOS10 GENERIC SHELL (HOOKUP WIRE). Συναρμολογείται γρηγορότερα και έχει κύκλωμα υψηλότερης ποιότητας, αλλά κοστίζει περισσότερο (~ 10 $ επιπλέον αν υποστηρίζει 10 αισθητήρες). Το κύριο fe
Generic Switch Hijacker: 3 Βήματα
Generic Switch Hijacker: Αυτό το άρθρο περιγράφει τον τρόπο δημιουργίας μιας συσκευής μικροελεγκτή στερεάς κατάστασης που ελέγχει φυσικούς διακόπτες. Είναι πολύ φθηνό να φτιάξετε (περίπου 4 $), υποθέτοντας ότι έχετε προγραμματιστή μικροελεγκτή. Το ίδιο το κύκλωμα είναι ασήμαντης πολυπλοκότητας. Αυτό το π