Πίνακας περιεχομένων:

IoT Enabled Coffee Machine: 9 βήματα (με εικόνες)
IoT Enabled Coffee Machine: 9 βήματα (με εικόνες)

Βίντεο: IoT Enabled Coffee Machine: 9 βήματα (με εικόνες)

Βίντεο: IoT Enabled Coffee Machine: 9 βήματα (με εικόνες)
Βίντεο: 🍀Ενεργοποίησε 🤞Φέρε Τύχη με αυτά τα 🪬Κλειδιά & Βήματα🪬ΑΚΑΣ ταρώ 2024, Ιούλιος
Anonim
Image
Image
Απαιτείται εξοπλισμός
Απαιτείται εξοπλισμός

Αυτό το διδάξιμο συμμετέχει στον διαγωνισμό IoT - Αν σας αρέσει, ψηφίστε το

ΕΝΗΜΕΡΩΜΕΝΟ: Τώρα υποστηρίζει 2 -way comms και ενημερώσεις OTA

Εδώ και αρκετό καιρό είχα μια καφετιέρα Jura και πάντα ήθελα να την αυτοματοποιήσω με κάποιο τρόπο.

Λειτουργώ ένα βασικό σύστημα αυτοματισμού σπιτιού εδώ και μερικά χρόνια, αλλά η καφετιέρα δεν ήταν κάτι που ήταν απλό στη λειτουργία (ή έτσι νόμιζα). Οι μηχανές καφέ Jura έχουν γενικά μια «θύρα διάγνωσης» ή/και μια θύρα που χρησιμοποιείται για την προσθήκη συστήματος πληρωμών στο μηχάνημα, ωστόσο δεν μπόρεσα να βρω καμία πληροφορία για το πώς θα μπορούσε να χρησιμοποιηθεί. Πιο πρόσφατα, το πρωτόκολλο σχεδιάστηκε αντίστροφα από ορισμένα άτομα και δημοσιοποιήθηκε. Το πρόβλημα ήταν ότι οι περισσότερες αναφορές στις διαθέσιμες λειτουργίες αφορούσαν πολύ μεγαλύτερα μηχανήματα από τα δικά μου (Ena 7).

Επιπλέον, το μηχάνημά μου δεν έχει μόνιμη ισχύ αναμονής όπως τα μεγαλύτερα μηχανήματα, αντ 'αυτού έχει έναν διακόπτη HV που κάνει το τροφοδοτικό "κλειδωμένο". Το φυσικό κουμπί στο μηχάνημα ενεργοποιεί στην πραγματικότητα 2 διακόπτες - έναν χαμηλό βολτ (λογική πλευρά, απενεργοποίηση) και έναν υψηλό βολτ (ενεργοποίηση). Και οι δύο διακόπτες είναι στιγμιαίοι.

Χρειάστηκε επίσης να βεβαιωθώ ότι το μηχάνημα εξακολουθεί να λειτουργεί 100% ανεξάρτητα από οποιονδήποτε μηχανισμό ελέγχου, δηλαδή το μηχάνημα εξακολουθεί να λειτουργεί κανονικά σαν να μην ήταν ενεργοποιημένο το IoT.

Για να αυτοματοποιήσετε το μηχάνημα απαιτούνται δύο πράγματα: 1) Για να ελέγχετε την ισχύ του μηχανήματος 2) Για να μπορείτε να επικοινωνείτε με το μηχάνημα για να ενεργοποιήσετε τις λειτουργίες για την παρασκευή καφέ, το ξέβγαλμα κ.λπ.

Βήμα 1: Πώς θα το κάνουμε

Θα χρησιμοποιήσουμε μια μονάδα ESP8266 'ESP-01' για να συνδεθούμε στο οικιακό wifi και να εγγραφούμε στο διακομιστή MQTT/στο θέμα που ακούει εντολές. Το «Front End» που χρησιμοποίησα είναι το OpenHAB2, αλλά δεν υπάρχει κανένας λόγος που να μην μπορείτε να προσθέσετε στη διεπαφή ιστού της συσκευής και να το ελέγξετε απευθείας εάν θέλετε ή μέσω εντολών HTTP Get.

Το ESP8266 θα χειρίζεται τον έλεγχο 2 ρελέ που σχετίζονται με το κουμπί λειτουργίας και θα επεξεργάζεται σειριακές εντολές προς/από την καφετιέρα.

ΠΡΟΕΙΔΟΠΟΙΗΣΗ - Αυτό το οδηγό περιγράφει τη διαδικασία που χρησιμοποίησα για να τροποποιήσω την καφετιέρα μου Jura Ena7 για έλεγχο μέσω οικιακού αυτοματισμού. Ασχολείται με την τροποποίηση μιας συσκευής ηλεκτρικού ρεύματος, η οποία μπορεί να είναι επικίνδυνη εάν εκτελεστεί λανθασμένα. Οι πληροφορίες εδώ μπορεί να είναι ελλιπείς, ανακριβείς και ανασφαλείς. Προχωρήστε με προσοχή. Καμία ευθύνη δεκτή.

Βήμα 2: Απαιτείται εξοπλισμός

Απαιτείται εξοπλισμός
Απαιτείται εξοπλισμός
Απαιτείται εξοπλισμός
Απαιτείται εξοπλισμός
Απαιτείται εξοπλισμός
Απαιτείται εξοπλισμός

Ανταλλακτικά

  • Ενότητα ESP-01 και τρόπος προγραμματισμού (Arduino IDE και φυσικός προσαρμογέας για προγραμματισμό)
  • Μονάδα ρελέ 2 κατευθύνσεων EBAY
  • 5v -> 3.3v Ρυθμιστής EBAY
  • Μικρός φορτιστής 5V τροφοδοσίας τηλεφώνου
  • Μετατροπέας λογικού επιπέδου* Freetronics
  • Διάφορα καλώδια, κεφαλίδες καρφιτσών, θερμοσυρρίκνωση κλπ για σύνδεση όλων.

Εργαλεία

  • Σίδερο συγκόλλησης με λεπτές άκρες
  • Κόλλα μετάλλων
  • Τα Strip Strip είναι εύχρηστα
  • Πρόγραμμα οδήγησης Torx T15
  • Οβάλ εργαλείο ασφαλείας (ή κάντε ένα, διαρκεί μόνο λίγα λεπτά)

*Αρχικά χρησιμοποίησα ένα arduino UNO στον έλεγχο όλων των σειριακών εντολών στο μηχάνημα και λειτούργησε άψογα, ωστόσο η μονάδα ESP αρνήθηκε να λειτουργήσει. Έλεγξα τρεις φορές τον κώδικα και ήμουν σίγουρος ότι οι εντολές που έβγαιναν από τη μονάδα ESP ήταν ίδιες με το arduino, ωστόσο ήταν απαγορευτικό. Το έβαλα στη μονάδα ESP που λειτουργεί μόνο σε λογική 3.3v και όχι 5V. Μόλις έβαλα τον μετατροπέα λογικής, δούλεψε μια χαρά. Αυτό μπορεί να απαιτείται ή όχι σε άλλα μηχανήματα.

Στην ιδανική περίπτωση, θα είχατε ένα υπάρχον σύστημα αυτοματισμού σπιτιού που υποστηρίζει το πρωτόκολλο MQTT (όπως το openhab), καθώς αυτό είναι που στοχεύει το έργο. Εάν θέλετε απλώς να το ελέγξετε μέσω κουμπιών σε μια ιστοσελίδα χωρίς κανένα υποστηρικτικό σύστημα, θα χρειαστεί να κάνετε κάποιες αλλαγές στον ενσωματωμένο κώδικα της ιστοσελίδας. Δεν είναι πολύ περίπλοκο να επιτευχθεί (ίσως rev2..)

Βήμα 3: Το πρωτόκολλο Jura

Το πρωτόκολλο Jura
Το πρωτόκολλο Jura

Τα δεδομένα από/προς το μηχάνημα είναι απλώς σειριακά @ 9600, αλλά η Jura έχει και κάποια κόλπα στα μανίκια. Το πρωτόκολλο είτε το χρησιμοποιεί για επιπλέον ECC είτε/και για να αποκρύψει την επικοινωνία. Με απλά λόγια, κάθε byte δεδομένων (χαρακτήρας) χωρίζεται στα δυαδικά ψηφία 2 και 5 των 4 τυπικών σειριακών byte που ακολουθούνται από παύση 8 ms. Εάν ενδιαφέρεστε να μάθετε πώς λειτουργεί αυτό, υπάρχουν πολλές πληροφορίες στους συνδέσμους εδώ.

Πληροφορίες πρωτοκόλλου που εξάγονται από:

Ο κώδικας arduino απλοποιεί αυτό, επιτρέποντάς σας να μεταδώσετε τυπικές, ανθρώπινες αναγνώσιμες εντολές τις οποίες στη συνέχεια μεταφέρει στο πρωτόκολλο Jura.

Ο κωδικός μου είναι ένας συνδυασμός κώδικα από:

Οι εντολές που αναφέρονται στους παραπάνω ιστότοπους δεν ήταν ακριβείς για το μηχάνημά μου, αλλά με μια μέθοδο δοκιμής και λάθους, κατάφερα να καταλήξω στα παρακάτω:

FA: 01 - Απενεργοποιείται (αλλά δεν φαίνεται να ξεπλένεται, ακόμη και αν χρειάζεται) FA: 02 - Απαντά «εντάξει», αλλά δεν είμαι σίγουρος τι κάνει. FA: 03 - Μήνυμα Ξεβγάλματος (Αναγκάζει ένα μήνυμα «ξέβγαλμα» στην οθόνη, πατώντας το περιστρεφόμενο μηχάνημα ξεβγάλματος) FA: 04 - Ενέργεια ξεβγάλματος - Ξεπλένεται όταν εμφανιστεί το μήνυμα «Πατήστε το κουμπί Περιστροφικού», διαφορετικά δεν κάνει τίποτα FA: 05 - Ισχυρό στην οθόνη (Πιθανότατα να το συνδυάσετε με το να φτιάχνετε έναν καφέ για δυνατά) FA: 06 - Ισχυρό στην οθόνη (Πιθανότατα να το συνδυάζετε με το να φτιάχνετε έναν καφέ για δυνατό) FA: 07 - «Special» στην οθόνη αλλά στην πραγματικότητα δεν κάνει τίποτα, δεν είμαι σίγουρος τι είναι αυτό: 08 - Ατμός FA: 09 - Μικρός Καφές FA: 0A - Μεγάλος Καφές

Υπάρχουν άλλες εντολές, αλλά αυτό είναι αρκετό για μένα…

Να είστε προσεκτικοί όταν εκδίδετε άγνωστες εντολές, για παράδειγμα, προφανώς το AN: 0A θα σκουπίσει το EEPROM του μηχανήματος ….

Βήμα 4: Αποσυναρμολόγηση

Το άνοιγμα του ίδιου του μηχανήματος δεν είναι υπερβολικά εύκολο, καθώς χρειάζεστε μερικά ελαφρώς ειδικά εργαλεία, αλλά ένας έντονος άνθρωπος θα βρει έναν τρόπο - Χρειάζεστε ένα κομμάτι T15 Torx και ένα «οβάλ κλειδί» για 2 βίδες. Το Torx που είχα ήδη, το οβάλ εργαλείο που έφτιαξα από ένα μπουλόνι κεφαλής υποδοχής 4 χιλιοστών τρυπήθηκε και ισιώθηκε λίγο με ένα σφυρί.

Οι οδηγίες εδώ παρουσιάζονται αρκετά καλά-https://marius.me.uk/blog/2015/03/open-jura-ena-5/

Βήμα 5: Ακύρωση της εγγύησης

Ακύρωση της Εγγύησης
Ακύρωση της Εγγύησης
Ακύρωση της Εγγύησης
Ακύρωση της Εγγύησης
Ακύρωση της Εγγύησης
Ακύρωση της Εγγύησης
Ακύρωση της Εγγύησης
Ακύρωση της Εγγύησης

Μόλις μπείτε στο μηχάνημα, θα δείτε τα κύρια εξαρτήματα. Η κύρια είσοδος τροφοδοσίας έχει ένα ωραίο σημείο κάτω για την προσθήκη του φορτιστή 5v.

Πρόσθεσα (κύρια ονομαστική) καλώδια στο μπλοκ ακροδεκτών στην είσοδο του μηχανήματος και τα συγκολλούσα/θερμαίνωσα στα ακροδέκτες του φορτιστή 5v. Το συγκεκριμένο μοντέλο μου δεν ήταν τύπος θύρας USB, αλλά μόνιμα συνδεδεμένο το καλώδιο. Μπορεί να μην έχετε αρκετό χώρο για μια θύρα usb τύπου μία για να μπορείτε να χρησιμοποιήσετε ένα πραγματικό καλώδιο USB, αλλά αν ανοίξετε το φορτιστή, μπορείτε να αφαιρέσετε τη θύρα USB και να την αντικαταστήσετε με ένα τυπικό καλώδιο στα σημεία 5v και Gnd.

Αν θέλετε, μπορείτε να αντικαταστήσετε άλλο τροφοδοτικό 5V. 500m θα πρέπει να είναι αρκετά.

Υπάρχει άφθονος χώρος για τη μονάδα ρελέ κοντά στο μύλο. Πρέπει να συνδέσουμε τα δύο ρελέ για να λειτουργήσουμε παράλληλα με τους κύριους διακόπτες ισχύος. Απλώς έκοψα τα υπάρχοντα καλώδια, γδύθηκα, κονσέρβα, πρόσθεσα ένα επιπλέον καλώδιο και συγκολλήθηκα ξανά μαζί (μην ξεχνάτε τη θερμοσυρρίκνωση). Υπήρχε αρκετή χαλάρωση στα καλώδια για να γίνει αυτό.

Η μονάδα ρελέ συγκρατείται με καλή ταινία διπλής όψης καλής ποιότητας. Με τα καλώδια συνδεδεμένα και με περιορισμένο μόνο χώρο για κίνηση, ακόμη και αν η ταινία χάσει το κράτημα, η μονάδα δεν θα πάει πολύ μακριά και δεν μπορεί να έρθει σε επαφή με μεταλλικά αντικείμενα.

Επίσης, επέστρεψα πίσω τη διαγνωστική θύρα στο μηχάνημά μου για να καθορίσω τη θέση των εσωτερικών συνδέσεων, ώστε να μπορέσω να επιτύχω μια εντελώς κρυφή ενσωμάτωση. Χρησιμοποιούνται μόνο καλώδια tx, rx και Gnd.

Εάν έχετε ένα πιο εμπορικό μηχάνημα που υποστηρίζει τάση αναμονής και/ή δεν θέλετε να ακυρώσετε την εγγύηση στο μηχάνημά σας, μπορείτε να συνδεθείτε απευθείας στη διαγνωστική θύρα, αλλά ενδέχεται να μην μπορείτε να ενεργοποιήσετε το μηχάνημα χρησιμοποιώντας αυτήν τη συσκευή.

Το μηχάνημά μου χρησιμοποιεί υποδοχή 7 ακίδων. Από αριστερά προς τα δεξιά είναι:

NC Tx G Rx NC 5v NC

Οι αντίστοιχες καρφίτσες στην κεντρική πλακέτα: Κόκκινο = Gnd Πορτοκαλί = Rx Μαύρο = Tx

Περισσότερες πληροφορίες μπορείτε να βρείτε στα pinouts εδώ:

Βήμα 6: Καλωδίωση της λογικής πλευράς

Καλωδίωση της λογικής πλευράς
Καλωδίωση της λογικής πλευράς
Καλωδίωση της λογικής πλευράς
Καλωδίωση της λογικής πλευράς
Καλωδίωση της λογικής πλευράς
Καλωδίωση της λογικής πλευράς

Αναθεωρήστε το διάγραμμα - Φαίνεται υπερβολικά περίπλοκο, αλλά πραγματικά δεν είναι.

Τοποθέτησα τον μετατροπέα στάθμης στο πίσω μέρος του ρυθμιστή τάσης (αποσυνδεδεμένος) με κάποια ταινία διπλής όψης. Στη συνέχεια χρησιμοποίησα ορισμένα σκέλη για να συγκολλήσω τις ακίδες ισχύος και γείωσης εκατέρωθεν του μετατροπέα στάθμης στους αντίστοιχους πείρους μονάδας ισχύος. Όλη αυτή η ενότητα λειτουργεί στη συνέχεια ως "διέλευση" για όλη τη λογική και την παροχή ισχύος για το ESP-01.

Χρησιμοποίησα τους δύο μεσαίους μετατροπείς για τα σειριακά δεδομένα και τους δύο εξωτερικούς για τα σήματα οδήγησης ρελέ, αλλά δεν έχει σημασία ποια θα χρησιμοποιήσετε.

Δεν είναι πραγματικά απαραίτητο με αυτές τις μονάδες αναμετάδοσης να εκτελέσετε μια λογική 5v καθώς είναι ενεργές LOW, αλλά λειτούργησε καλά, έτσι το έκανα ούτως ή άλλως.

Χρησιμοποίησα μια γυναικεία κεφαλίδα 4x2 για σύνδεση στη μονάδα ESP. Αυτό επιτρέπει την εύκολη μεταφόρτωση κώδικα ή την αντικατάσταση της μονάδας.

Η είσοδος 5V δεν απεικονίζεται στο διάγραμμα - συνδέω το δικό μου απευθείας στη μονάδα ρελέ (δείτε τη δεύτερη εικόνα). Το μαύρο καλώδιο στο κάτω αριστερό μέρος της εικόνας είναι τα σειριακά δεδομένα που απενεργοποιούνται στον κεντρικό πίνακα. Χρησιμοποίησα ένα μέρος ενός θωρακισμένου καλωδίου επέκτασης ακουστικών 3,5 mm μόνο για να μειώσω τις πιθανότητες παρεμβολών στη γραμμή δεδομένων.

Ο κωδικός 12f χρησιμοποιεί SoftwareSerial αντί σειριακού υλικού - Αυτό επιτρέπει στη μονάδα να αναφέρει την κατάσταση για εντοπισμό σφαλμάτων μέσω κανονικού σειριακού. Οι συνδέσεις γίνονται μέσω των ακίδων 4 και 5. Προσάρμοσα την ίδια κεφαλίδα για να κάνω το ESP12F ένα plug-in swap για το ESP-01, αλλάζοντας απλώς αυτές τις σειριακές ακίδες

Βήμα 7: Προγραμματισμός της ενότητας

Προγραμματισμός της Ενότητας
Προγραμματισμός της Ενότητας

Ο κώδικας καταρτίστηκε έναντι του Arduino 1.8.1 με το πρόσθετο πλακέτας ESP8266 και το PubSubClient 2.6.0 (που είναι η βιβλιοθήκη MQTT)

Τροποποιήστε τον κώδικα σύμφωνα με τις απαιτήσεις σας και ανεβάστε τον κωδικό στη μονάδα ESP-01 και συνδεθείτε στο μηχάνημα. Προσοχή με τον προσανατολισμό των ακίδων!

Διαμόρφωση

Επιλογή 1)

Μόνο σε βασικό κώδικα σε zip. Όταν η μονάδα ESP εκκινήσει για πρώτη φορά, μεταβαίνει στη λειτουργία AP και ορίζει την IP της σε 192.168.4.1. Στη συνέχεια, μπορείτε να συνδεθείτε στη μονάδα και να αλλάξετε την IP και να συνδεθείτε στο δικό σας σημείο πρόσβασης. Θα χρειαστεί επίσης να ορίσετε μια IP για το μηχάνημά σας σε αυτό το εύρος, καθώς δεν υπάρχει DHCP στη μονάδα.

Το προεπιλεγμένο SSID AP είναι "ESPSwitch" και ο κωδικός πρόσβασης είναι "12345678"

Παραμένει από προεπιλογή σε λειτουργία AP για 2 λεπτά. Μπορείτε να αλλάξετε αυτήν τη ρύθμιση στο 'global.h' - Λέγεται 'adminTimeout' και βρίσκεται σε χιλιοστά του δευτερολέπτου. Σας συνιστώ να το αλλάξετε σε κάτι χαμηλό μόλις έχετε μια έγκυρη ρύθμιση παραμέτρων στο EEPROM, διότι διαφορετικά θα προκαλέσει περιττές καθυστερήσεις στην εκκίνηση της συσκευής.

Επιλογή 2)

Αυτή είναι η προεπιλεγμένη λειτουργία για τον νεότερο κώδικα που υποστηρίζει επικοινωνίες 2 τρόπων, η επιλογή 1 δεν είναι διαθέσιμη. Μπορείτε επίσης να αλλάξετε τις προεπιλεγμένες ρυθμίσεις SSID/Κωδικού πρόσβασης στο κύριο αρχείο ino (αναζητήστε '// DEFAULT CONFIG'), ώστε να φορτωθεί αυτές τις ρυθμίσεις στο EEPROM κατά την πρώτη εκκίνηση και αλλάξτε την καθυστέρηση λειτουργίας διαχειριστή σε κάτι χαμηλό σε 'global.h'. Αυτό αποφεύγει να ανακατευτεί η σύνδεση με το προσωρινό AP.

Η συσκευή θα ορίσει αυτόματα το αναγνωριστικό MQTT (και τη διαδρομή εγγραφής) στα 4 τελευταία ψηφία του σειριακού αριθμού των ενοτήτων. Η διαδρομή από προεπιλογή είναι ha/mod //#, αλλάξτε όπως κρίνετε κατάλληλο, αλλά διαβάστε τα σχόλια στον κώδικα για να βεβαιωθείτε ότι ο κατάλληλος πίνακας έχει το σωστό μήκος.

Το κάνω επειδή σημαίνει ότι δεν χρειάζεται να δημιουργήσω ένα μοναδικό αναγνωριστικό για κάθε μονάδα στο δίκτυό μου.

Το αναγνωριστικό συσκευής είναι ορατό και ο διακομιστής MQTT μπορεί να ρυθμιστεί μέσω της σελίδας διακομιστή MQTT στον εσωτερικό διακομιστή ιστού

Βήμα 8: Κάνοντας το να κάνει πράγματα…

Οι εντολές MQTT είναι

ha/mod/xxxx/0 ή 1 = Εναλλαγή ισχύος

Οποιαδήποτε άλλη συμβολοσειρά θα αντιμετωπίζεται ως εντολή και θα αποστέλλεται μέσω σειριακής θύρας. Η κατάσταση αναφέρεται στο /ha /coffee στο HEX

Με το OpenHAB

coffeemachine.items

Number Coffee_Machine_Power "Power" {mqtt = "> [control: ha/mod/8002/: command:*: default]"} String Coffee_Machine_Status {mqtt = "<[control: ha/coffee: state: default]"}

Χάρτης ιστοτόπου

Group item = "Coffee Machine" {Switch item = Coffee_Machine_Power label = "Power" mappings = [1 = "Toggle"] Switch item = Coffee_Machine_Cmd label = "" mappings = ["FA: 09" = "Small"] Switch item = Coffee_Machine_Cmd label = "" mappings = ["FA: 0A" = "Large"] Switch item = Coffee_Machine_Cmd label = "" mappings = ["FA: 04" = "Rinse"] Στοιχείο κειμένου = Coffee_Status label = "Κατάσταση [%s] "}}

voicecontrol.rules

εισαγωγή org.openhab.model.script.actions.* import org.openhab.core.library.types.* import java.util.*

κανόνας "Κανόνες φωνητικής εντολής"

όταν το στοιχείο VoiceCommand έλαβε εντολή τότε var String command = VoiceCommand.state.toString.toLowerCase logInfo ("Voice. Rec", "VoiceCommand Received"+command)

εάν (command.contains ("ενεργοποιήστε την καφετιέρα") || command.contain ("απενεργοποιήστε την καφετιέρα")) {

sendCommand (Coffee_Machine_Power, 1)} if (command.contains ("make me a small coffee")) {sendCommand (Coffee_Machine_Cmd, "FA: 09")}} if (command.contain ("make me a large coffee")) { sendCommand (Coffee_Machine_Cmd, "FA: 0A")} if (command.contains ("rinse the coffee machine")) {sendCommand (Coffee_Machine_Cmd, "FA: 04")}} τέλος

Κανόνες (για την ερμηνεία των απαντήσεων HEX σε «πραγματικές» τιμές):

κανόνας "Κατάσταση μηχανής καφέ" όταν το στοιχείο Coffee_Machine_Status έλαβε ενημέρωση και στη συνέχεια var String response = Coffee_Machine_Status.state.toString () if (respond.indexOf ("ic:")> -1) {var String hexString = reply.substring (3, 5)

var int num = (Integer.parseInt (hexString, 16));

var String binaryString = String.format ("%8s", Integer.toBinaryString (num)). αντικατάσταση ('', '0')

var int trayBit = binaryString.substring (0, 1)

var int tankBit = binaryString.substring (2, 3) var int heatBit = binaryString.substring (7, 8) var int rinseBit = binaryString.substring (6, 7)

εάν (trayBit == "0") {

postUpdate (Coffee_Status, "Tray Missing")} if (tankBit == "1") {postUpdate (Coffee_Status, "Fill Tank")} if (rinseBit == "1") {postUpdate (Coffee_Status, "Press Rotary")} if (trayBit == "1" && tankBit == "0" && rinseBit == "0") {postUpdate (Coffee_Status, "Ready")}

}

if (answer == "Off") {postUpdate (Coffee_Status, "Off")} τέλος

Βήμα 9: Βελτιώσεις/Todo

Απλοποιήστε την αρχική ρύθμιση σύνδεσης στο wifi - Τέλος. Εγκατέλειψε την ιδέα της «λειτουργίας διαχειριστή» καθώς ήταν ενοχλητική. Τώρα απλά πληκτρολογήστε SSID και κωδικό πρόσβασης στον κωδικό. Αποθηκεύεται στο EEPROM εάν ενημερώσετε/αλλάξετε μέσω διεπαφής ιστού.

Ο νεότερος κώδικας υποστηρίζει επίσης ενημερώσεις OTA, αλλά θα χρειαστεί να αναβαθμίσετε το EEPROM στη μονάδα ESP-01 για να λειτουργήσει ή να σχολιάσετε τα αντίστοιχα στοιχεία OTA

Προσθέστε κώδικα για την επεξεργασία των απαντήσεων από το μηχάνημα και διαβάστε την κατάσταση όπως δεν υπάρχει δίσκος, άδειες βάσεις και δεξαμενή πλήρωσης - Έγινε. Έχω προσθέσει κώδικα για να διαβάσω ξανά την κατάσταση και να δημοσιεύσω στο ha/coffee. Αυτές είναι μόνο οι ακατέργαστες απαντήσεις και εξακολουθώ να εργάζομαι για να τις ερμηνεύσω, αλλά μέχρι στιγμής λείπει ο Δίσκος και το Δοχείο αδειάζει. Δημοσκοπεί το μηχάνημα κάθε 9 δευτερόλεπτα όταν είναι ενεργοποιημένο και δημοσιεύει την απάντηση στο MQTT

Η απόκριση είναι σε HEX αλλά μεμονωμένα bits υποδεικνύουν τους αισθητήρες

Προσθέστε κώδικα στις ιστοσελίδες για άμεσο έλεγχο μέσω εντολών HTTP GET.

Διαγωνισμός Internet of Things 2017
Διαγωνισμός Internet of Things 2017
Διαγωνισμός Internet of Things 2017
Διαγωνισμός Internet of Things 2017

Πρώτο Βραβείο στο Διαγωνισμό Διαδικτύου των Πραγμάτων 2017

Συνιστάται: