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

Σύνθεση ρετρό ομιλίας. Μέρος: 12 IoT, Αυτοματισμός σπιτιού: 12 βήματα (με εικόνες)
Σύνθεση ρετρό ομιλίας. Μέρος: 12 IoT, Αυτοματισμός σπιτιού: 12 βήματα (με εικόνες)

Βίντεο: Σύνθεση ρετρό ομιλίας. Μέρος: 12 IoT, Αυτοματισμός σπιτιού: 12 βήματα (με εικόνες)

Βίντεο: Σύνθεση ρετρό ομιλίας. Μέρος: 12 IoT, Αυτοματισμός σπιτιού: 12 βήματα (με εικόνες)
Βίντεο: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Ιούλιος
Anonim
Image
Image
Σύνθεση ρετρό ομιλίας. Μέρος: 12 IoT, Αυτοματισμός σπιτιού
Σύνθεση ρετρό ομιλίας. Μέρος: 12 IoT, Αυτοματισμός σπιτιού

Αυτό το άρθρο είναι το 12ο σε μια σειρά Οδηγιών αυτοματισμού σπιτιού που τεκμηριώνουν πώς να δημιουργήσετε και να ενσωματώσετε μια IoT Retro Speech Synthesis Device σε ένα υπάρχον σύστημα οικιακού αυτοματισμού που περιλαμβάνει όλες τις απαραίτητες λειτουργίες λογισμικού για να καταστεί δυνατή η επιτυχής ανάπτυξη σε οικιακό περιβάλλον.

Η εικόνα 1 δείχνει την ολοκληρωμένη συσκευή σύνθεσης ομιλίας IoT και η εικόνα 2 δείχνει όλα τα συστατικά μέρη που χρησιμοποιήθηκαν στο πρωτότυπο και τα οποία μειώθηκαν ως προς το τελικό προϊόν.

Το βίντεο δείχνει τη συσκευή σε δράση (κατά τη διάρκεια των δοκιμών).

Εισαγωγή

Όπως αναφέρθηκε παραπάνω, αυτό το Instructable περιγράφει λεπτομερώς πώς να φτιάξετε μια IoT Retro Speech Synthesis Device και βασίζεται γύρω από τα Γενικά Όργανα SP0256-AL2.

Ο πρωταρχικός σκοπός του είναι να προσθέσει τη σύνθεση φωνής «old school» σε ένα δίκτυο IoT. Γιατί μπορείτε να ρωτήσετε «παλιά σχολή»; Λοιπόν, επειδή ήμουν γύρω στη δεκαετία του '80 όταν κατασκευάστηκαν για πρώτη φορά αυτά τα πράγματα και έκανα μια σύνδεση στο BBC Micro μου, οπότε για μένα υπάρχει κάποιος βαθμός νοσταλγίας γύρω από το SP0256-AL2.

Προτιμώ πολύ την πρόκληση να προσπαθήσω να καταλάβω τι λέγεται στη γη από αυτήν την ηχηρή φωνή του Dalek παρά να ακούω τους σιωπηλούς τόνους ενός hipster Amazon ηχώ ή Siri. Πού είναι η πρόκληση σε αυτό που σας ρωτάω;

Ω, και για να μην αναφέρω ότι έχω επίσης ένα "φορτίο σακούλας" IC "SP0256-AL2" γύρω.

Η συσκευή είναι επίσης ικανή να διαβάζει τοπική θερμοκρασία και υγρασία, έτσι επεκτείνει περαιτέρω την περιβαλλοντική οργάνωση της υπάρχουσας υποδομής IoT που συνδέεται με το δίκτυο IoT βασισμένο σε MQTT/OpenHAB που περιγράφεται σε αυτήν τη σειρά για οικιακό αυτοματισμό (HA), βασισμένο σε επαναχρησιμοποιημένο κώδικα που λαμβάνεται από εδώ.

Στην καρδιά του βρίσκεται ένα ESP8266-07 το οποίο είναι υπεύθυνο για τις επικοινωνίες MQTT και τον έλεγχο όλων των λειτουργιών του συστήματος (πρόσβαση σε κάρτα SD, έλεγχος led, ανίχνευση θερμοκρασίας/υγρασίας, έλεγχος έντασης, σύνθεση ομιλίας). Η συσκευή είναι πλήρως διαμορφώσιμη μέσω αρχείων κειμένου που είναι αποθηκευμένα σε ένα τοπική κάρτα SD, αν και οι παράμετροι βαθμονόμησης και ασφάλειας δικτύου μπορούν επίσης να προγραμματιστούν μέσω απομακρυσμένων δημοσιεύσεων MQTT.

Τι μέρη χρειάζομαι;

Δείτε τον λογαριασμό των υλικών εδώ

Τι λογισμικό χρειάζομαι;

  • Arduino IDE 1.6.9,
  • Το Arduino IDE έχει διαμορφωθεί για να προγραμματίζει το ESP8266-07 (ίδιο με αυτό). Στη συνέχεια, διαμορφώστε το IDE όπως υποδεικνύεται στη λεπτομερή περιγραφή που παρέχεται στο σκίτσο του λογισμικού εδώ,
  • Python v3.5.2 εάν θέλετε να χρησιμοποιήσετε την αυτόματη δυνατότητα δοκιμής, λεπτομέρειες εδώ

Τι εργαλεία χρειάζομαι;

  • Μικροσκόπιο τουλάχιστον x3 (για συγκόλληση SMT),
  • Εργαλείο πτύχωσης συνδέσμων Molex (για συνδετήρες JST),
  • SMD συγκολλητικό σίδερο (με στυλό υγρής ροής και κόλλα συγκόλλησης ροής),
  • Κατσαβίδια (διάφορα),
  • Θερμοπίστολο,
  • Τρυπάνια (διάφορα),
  • Handsink εργαλείο χειρός,
  • Αρχεία (διάφορα),
  • Dremel (διάφορα κομμάτια),
  • Στιβαρή κακία (μικρή και μεγάλη, σαν μαύρος και ντεκέρ συνεργάτης),
  • Χειρουργικό νυστέρι,
  • Δαγκάνες Vernier (χρησιμοποιούνται για τη μέτρηση της κατασκευής και χρήσιμες για το μέγεθος των εξαρτημάτων PCB),
  • Spanners and Nut drivers (διάφορα),
  • Ισχυρά τσιμπιδάκια (για συγκόλληση SMT),
  • Junior Hacksaw,
  • Τρυπάνι (με διάφορα τρυπάνια),
  • Pιές πένσες (μύτη και μύτη),
  • Κόφτες ξεπλύματος,
  • DMM με ακουστικό έλεγχο συνέχειας,
  • Digitalηφιακό πεδίο διπλού καναλιού (πρακτικό για εντοπισμό σφαλμάτων σήματος)

Τι δεξιότητες χρειάζομαι;

  • Πολυ υπομονη,
  • Μεγάλη χειροτεχνική επιδεξιότητα και εξαιρετικός συντονισμός χεριών/ματιών,
  • Άριστες δεξιότητες συγκόλλησης,
  • Άριστες δεξιότητες κατασκευής,
  • Η δυνατότητα απεικόνισης σε 3 διαστάσεις,
  • Κάποιες γνώσεις ανάπτυξης λογισμικού με «C» (εάν θέλετε να κατανοήσετε τον πηγαίο κώδικα),
  • Κάποιες γνώσεις Python (πώς να εγκαταστήσετε και να εκτελέσετε δέσμες ενεργειών, εάν θέλετε να χρησιμοποιήσετε τον αυτοματοποιημένο έλεγχο),
  • Γνώση του Arduino και του IDE,
  • Καλή γνώση ηλεκτρονικών,
  • Κάποια κατανόηση του οικιακού σας δικτύου.

Θέματα που καλύπτονται

  • Εγχειρίδιο χρήστη
  • Επισκόπηση κυκλώματος
  • Κατασκευή και συναρμολόγηση PCB
  • Κατασκεύασμα
  • Επισκόπηση συστήματος λογισμικού
  • Επισκόπηση λογισμικού
  • Βαθμονόμηση αισθητήρα
  • Σύμβαση ονοματοδοσίας θεμάτων MQTT
  • Εντοπισμός σφαλμάτων και εύρεση βλαβών
  • Δοκιμάζοντας το Σχέδιο
  • συμπέρασμα
  • Χρησιμοποιούνται αναφορές

Σύνδεσμοι σειράς Μέρος 11: Κονσόλα IoT Desktop. Μέρος: 11 IoT, Αυτοματισμός σπιτιού

Βήμα 1: Εγχειρίδιο χρήστη

Εγχειρίδιο χρήστη
Εγχειρίδιο χρήστη
Εγχειρίδιο χρήστη
Εγχειρίδιο χρήστη
Εγχειρίδιο χρήστη
Εγχειρίδιο χρήστη

Η εικόνα 1 παραπάνω δείχνει το μπροστινό μέρος του Retro Speech Synthesizer και η εικόνα 2 το πίσω μέρος.

Εμπρός περίβλημα

  1. Ομιλητής Grill
  2. Υποδοχή ακουστικών 3,5 mm: Το κύριο ηχείο απενεργοποιείται όταν τοποθετηθεί υποδοχή 3,5 mm.
  3. Κόκκινη λυχνία LED: Αυτή η λυχνία ανάβει κατά την εκφώνηση μιας λέξης κατά την εκκίνηση της ομιλίας μέσω αιτήματος
  4. Μπλε LED: Αυτή η λυχνία LED ανάβει ενώ λέγεται μια λέξη όταν ξεκίνησε η ομιλία μέσω ενός αιτήματος MQTT IoT.

Περίβλημα Πίσω

  1. Κουμπί επαναφοράς: Χρησιμοποιείται για σκληρή επαναφορά της συσκευής ESP8266-07 IoT.
  2. Κουμπί φλας: Όταν χρησιμοποιείται σε συνδυασμό με το κουμπί Επαναφοράς επιτρέπει να αναβοσβήνει ξανά το ESP8266-07.
  3. Βύσμα κεραίας WiFi (SMA Plug): Για εξωτερική κεραία WiFi που δίνει τη μικρότερη εξασθένηση διαδρομής RF καθώς το κλείσιμο είναι αλουμίνιο.
  4. Εξωτερική θύρα προγραμματισμού: Για να καταργήσετε την ανάγκη να ξεβιδώσετε το περίβλημα για να αποκτήσετε πρόσβαση στο ESP8266-07 για σκοπούς επαναπρογραμματισμού. Οι ακίδες προγραμματισμού του ESP8266-07 μεταφέρθηκαν στην εξωτερική θύρα προγραμματισμού. Η εικόνα 3 είναι ο προσαρμογέας προγραμματισμού.
  5. Πράσινο LED: Αυτό είναι το σύστημα IoT led και χρησιμοποιείται για να υποδείξει τη διαγνωστική κατάσταση της συσκευής και να ξεκινήσει και κατά τη λειτουργία.
  6. Εξωτερικός αισθητήρας θερμοκρασίας/υγρασίας (AM2320)
  7. Υποδοχή κάρτας SD: Διατηρεί όλα τα δεδομένα διαμόρφωσης/ασφάλειας μαζί με σελίδες διακομιστή ιστού.
  8. Υποδοχή τροφοδοσίας 2,1mm 6vdc

Βήμα 2: Επισκόπηση κυκλώματος

Επισκόπηση κυκλώματος
Επισκόπηση κυκλώματος
Επισκόπηση κυκλώματος
Επισκόπηση κυκλώματος

Η συσκευή Retro Speech Synth περιλαμβάνει δύο PCB.

  • RetroSpeechSynthIoTBoard: Πρόκειται για ένα γενικό, επαναχρησιμοποιήσιμο ESP8266-07/12/12E/13 PCB
  • RetroSpeechSynthBoard: Αυτό είναι ένα γενικό PCB SP0256-AL2

Retro Speech Synth IoT Board

Αυτός ο πίνακας επιτρέπει είτε την απευθείας συγκόλληση μιας υποδοχής πίστας ESP8266-07/12/12E/13 είτε 0,1 που φιλοξενεί ένα PCB φορέα ESP8266.

Ο πίνακας σχεδιάστηκε για να επεκτείνει την είσοδο/έξοδο μέσω σύνδεσης I2C και μπορεί να υποστηρίξει επίπεδα τροφοδοσίας 3v3 ή 5v μέσω Q1, Q2, R8-13.

Η σύνδεση με τον πίνακα επιτυγχάνεται μέσω μιας από τις δύο κεφαλίδες J2 και J4, μια κορδέλα DIL IDC 8 κατευθύνσεων ή JST/Molex 5 κατευθύνσεων.

Παροχή U2 και U3 3.3v και 5v επί του κανονισμού παροχής πλοίου. Εναλλακτικά, εάν απαιτείται μεγαλύτερη χωρητικότητα ρεύματος, μπορούν να συνδεθούν σειριακοί ρυθμιστές διακλάδωσης σειρών μέσω των συνδετήρων J10 και J11 αντίστοιχα.

Οι σύνδεσμοι J1 και J3 προσφέρουν εξωτερική υποστήριξη κάρτας SD μέσω SPI. Το J1 έχει σχεδιαστεί για Molex 8 κατευθύνσεων και το J3 διαθέτει άμεση ακίδα για υποστήριξη συμβατότητας με καρφίτσες για PCB κάρτας SD χωρίς ράφι με υποστήριξη 3v3 ή 5v.

Retro Speech Synth Board

Ο έλεγχος αυτής της πλακέτας πραγματοποιείται μέσω σύνδεσης συμβατής με I2C 5v μέσω J1, J5 ή J6, 4-κατεύθυνσης JST/Molex, 8-way DIL IDC ή 8-way IDC κορδέλα.

Το U2 MPC23017 παρέχει το I2C σε παράλληλη διασύνδεση με το U3 το SP0256-AL2 και LEDS D1 (Πράσινο), D2 (Κόκκινο) και D3 (Μπλε). Η έξοδος του Speech Synth τροφοδοτείται με ενισχυτή ήχου CR1 TBA820M μέσω αναλογικού δοχείου RV1 ή ψηφιακού δοχείου U1 MCP4561.

Το Digital Pot U1 ελέγχεται επίσης μέσω I2C συμβατό με 5v.

Σημείωση: Η συσκευή ESP8266-07 επιλέχθηκε καθώς διαθέτει ενσωματωμένο σύνδεσμο IPX RF που επιτρέπει την προσθήκη εξωτερικής κεραίας WiFi στο περίβλημα αλουμινίου.

Βήμα 3: Κατασκευή και συναρμολόγηση PCB

Κατασκευή και συναρμολόγηση PCB
Κατασκευή και συναρμολόγηση PCB
Κατασκευή και συναρμολόγηση PCB
Κατασκευή και συναρμολόγηση PCB
Κατασκευή και συναρμολόγηση PCB
Κατασκευή και συναρμολόγηση PCB
Κατασκευή και συναρμολόγηση PCB
Κατασκευή και συναρμολόγηση PCB

Οι εικόνες 1 και 2 δείχνουν τα ολοκληρωμένα και ενσύρματα υποσύνολα PCB που βρίσκονται στο υπόστρωμα περιβλήματος αλουμινίου.

Τα δύο PCB σχεδιάστηκαν με χρήση του Kicad v4.0.7, που κατασκευάστηκαν από την JLCPCB και συναρμολογήθηκαν από εμένα και φαίνονται παραπάνω στις φωτογραφίες 3 έως 13.

Βήμα 4: Κατασκευή

Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα
Κατασκεύασμα

Η εικόνα 1 δείχνει μια διάταξη στυλ Haynes Manual σε όλα τα προκατασκευασμένα μέρη πριν από την τελική συναρμολόγηση.

Οι φωτογραφίες 2… 5 δείχνουν διάφορες λήψεις κατά την κατασκευή του περιβλήματος με ελάχιστες αποστάσεις.

Βήμα 5: Επισκόπηση συστήματος λογισμικού

Επισκόπηση συστήματος λογισμικού
Επισκόπηση συστήματος λογισμικού
Επισκόπηση συστήματος λογισμικού
Επισκόπηση συστήματος λογισμικού

Αυτή η συσκευή σύνθεσης Iro Retro Speech περιέχει έξι βασικά στοιχεία λογισμικού όπως φαίνεται στην εικόνα 1 παραπάνω.

Κάρτα SD

Αυτό είναι το εξωτερικό σύστημα αρχειοθέτησης SD SPI Flash και χρησιμοποιείται για τη διατήρηση των ακόλουθων πληροφοριών (βλ. Εικόνα 2 παραπάνω).

  • Εικονίδια και «Αρχική σελίδα διαμόρφωσης Speech Synth» index.htm: Εξυπηρετείται από τη συσκευή IoT όταν δεν μπορεί να συνδεθεί στο δίκτυό σας IoT WiFi (συνήθως λόγω λανθασμένων πληροφοριών ασφαλείας ή για πρώτη φορά) και παρέχει στον χρήστη ένα μέσο της απομακρυσμένης διαμόρφωσης των αισθητήρων χωρίς την ανάγκη εκ νέου αναπαραγωγής νέου περιεχομένου SD. Διαθέτει επίσης index1.htm, mqtt.htm και sp0256.htm, αυτές είναι οι τοπικά προσφερόμενες ιστοσελίδες προσβάσιμες μέσω ενός προγράμματος περιήγησης ιστού επιτρέποντας περιορισμένο έλεγχο της σύνθεσης ομιλίας μέσω
  • Πληροφορίες ασφαλείας: Διατηρεί τις πληροφορίες που χρησιμοποιούνται κατά την ενεργοποίηση της συσκευής IoT για σύνδεση στο δίκτυο IoT WiFi και στο MQTT Broker. Οι πληροφορίες που υποβάλλονται μέσω της αρχικής σελίδας διαμόρφωσης Speech Synth γράφονται σε αυτό το αρχείο («secvals.txt»).
  • Πληροφορίες βαθμονόμησης: Οι πληροφορίες που περιέχονται στα αρχεία («calvals1.txt» και «calvals2.txt») χρησιμοποιούνται για τη βαθμονόμηση των αισθητήρων θερμοκρασίας/υγρασίας επί του σκάφους, εάν είναι απαραίτητο. Οι σταθερές βαθμονόμησης μπορούν να γραφτούν στη συσκευή IoT μέσω εντολών MQTT από έναν μεσίτη MQTT ή αναβοσβήνοντας ξανά την κάρτα SD. Το 'calvals1.txt' αφορά τον αισθητήρα AM2320 και το 'calvals2.txt' το DHT22.
  • Τιμές συστήματος με δυνατότητα διαμόρφωσης χρήστη: Οι πληροφορίες που περιέχονται σε αυτό το αρχείο («confvals.txt»), που επιλέγονται από τον χρήστη, ελέγχουν ορισμένες αποκρίσεις του συστήματος, όπως αρχικό ψηφιακό επίπεδο έντασης, αυτόματη ανακοίνωση «συστήματος έτοιμο» στη συνδρομή μεσίτη MQTT κ.λπ.

διακομιστής mDNS

Αυτή η λειτουργία καλείται όταν η συσκευή IoT δεν έχει συνδεθεί στο δίκτυό σας WiFi ως σταθμός WiFi και αντ 'αυτού έχει γίνει σημείο πρόσβασης WiFi κάτι παρόμοιο με έναν οικιακό δρομολογητή WiFi. Στην περίπτωση ενός τέτοιου δρομολογητή, θα συνδέεστε συνήθως με αυτόν, εισάγοντας τη διεύθυνση IP κάτι σαν το 192.168.1.1 (συνήθως τυπωμένο σε μια ετικέτα που είναι τοποθετημένη στο πλαίσιο) απευθείας στη γραμμή διευθύνσεων URL του προγράμματος περιήγησής σας, οπότε θα λάβετε μια σελίδα σύνδεσης για να εισαγάγετε το όνομα χρήστη και τον κωδικό πρόσβασης που σας επιτρέπουν να διαμορφώσετε τη συσκευή. Για το ESP8266-07 σε λειτουργία AP (λειτουργία σημείου πρόσβασης) η συσκευή είναι προεπιλεγμένη στη διεύθυνση IP 192.168.4.1, ωστόσο με τον διακομιστή mDNS που λειτουργεί πρέπει να εισαγάγετε μόνο το φιλικό προς τον άνθρωπο όνομα "SPEECHSVR.local" στη γραμμή URL του προγράμματος περιήγησης για δείτε την «Αρχική σελίδα διαμόρφωσης Speech Synth».

MQTT Client

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

Διακομιστής Ιστού

Αυτός ο διακομιστής Ιστού έχει δύο σκοπούς.

  1. Εάν η συσκευή IoT δεν μπορεί να συνδεθεί στο δίκτυο WiFi του οποίου τα SSID, P/W κ.λπ. καθορίζονται στο αρχείο πληροφοριών ασφαλείας που βρίσκεται στην κάρτα SD, η συσκευή θα γίνει Σημείο Πρόσβασης. Μόλις συνδεθείτε στο δίκτυο WiFi που παρέχεται από το Σημείο Πρόσβασης, η παρουσία ενός διακομιστή Web HTTP σάς επιτρέπει να συνδέεστε απευθείας στη συσκευή και να αλλάζετε τη διαμόρφωσή της μέσω της χρήσης ενός προγράμματος περιήγησης Web HTTP, σκοπός της οποίας είναι η εξυπηρέτηση της "Διαμόρφωσης συνέντευξης ομιλίας" Ιστοσελίδα της Αρχικής σελίδας που βρίσκεται επίσης στην κάρτα SD.
  2. Μόλις συνδεθεί η συσκευή σύνθεσης IoT Retro Speech στο δίκτυο WiFi και στον μεσίτη MQTT, εάν έχει πρόσβαση, ο διακομιστής Web HTTP θα προβάλλει αυτόματα μια ιστοσελίδα HTTP επιτρέποντας στον περιορισμένο έλεγχο της συσκευής IoT να εκφωνεί μια επιλογή από σταθερές φράσεις και τη δυνατότητα ποδηλατήστε τα δύο μπροστινά κόκκινα και μπλε LEDS.

Σταθμός WiFi

Αυτή η λειτουργικότητα δίνει στη συσκευή IoT τη δυνατότητα να συνδεθεί σε ένα οικιακό δίκτυο WiFi χρησιμοποιώντας τις παραμέτρους στο αρχείο πληροφοριών ασφαλείας, χωρίς αυτό η συσκευή σας IoT δεν θα μπορεί να εγγραφεί/δημοσιεύσει στο MQTT Broker.

WiFi Access Point

Η δυνατότητα να γίνει WiFi Access Point είναι ένα μέσο με το οποίο η συσκευή IoT σας επιτρέπει να συνδεθείτε σε αυτήν και να κάνετε αλλαγές διαμόρφωσης μέσω ενός σταθμού WiFi και ενός προγράμματος περιήγησης (όπως το Safari στο Apple iPad). Αυτό το σημείο πρόσβασης εκπέμπει ένα SSID = "SPEECHSYN" + τα τελευταία 6 ψηφία της διεύθυνσης MAC της συσκευής IoT. Ο κωδικός πρόσβασης για αυτό το κλειστό δίκτυο ονομάζεται ευφάνταστα "PASSWORD"

Βήμα 6: Επισκόπηση λογισμικού

Επισκόπηση λογισμικού
Επισκόπηση λογισμικού
Επισκόπηση λογισμικού
Επισκόπηση λογισμικού
Επισκόπηση λογισμικού
Επισκόπηση λογισμικού

Προοίμιο

Για να μεταγλωττίσετε με επιτυχία αυτόν τον πηγαίο κώδικα θα χρειαστείτε ένα τοπικό αντίγραφο του κώδικα και βιβλιοθήκες που περιγράφονται παρακάτω στο Βήμα 12, Χρησιμοποιούνται αναφορές. Εάν δεν είστε σίγουροι πώς να εγκαταστήσετε μια βιβλιοθήκη Arduino, πηγαίνετε εδώ.

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Το λογισμικό χρησιμοποιεί το μηχάνημα κατάστασης όπως φαίνεται στην εικόνα 1 παραπάνω (πλήρες αντίγραφο της πηγής στο αποθετήριο GitHub εδώ). Υπάρχουν 5 κύριες καταστάσεις όπως περιγράφονται παρακάτω.

  • ΜΕΣΑ ΣΕ ΑΥΤΟ

    Αυτή η κατάσταση προετοιμασίας είναι η πρώτη κατάσταση που εισέρχεται μετά την ενεργοποίηση

  • ΑΝΕΠΙΘΥΜΗΤΗ

    Αυτή η κατάσταση εισάγεται εάν μετά την ενεργοποίηση εντοπιστεί ένα μη έγκυρο ή λείπει αρχείο secvals.txt. Κατά τη διάρκεια αυτής της κατάστασης, η σελίδα διαμόρφωσης είναι ορατή

  • ΑΝΑΜΟΝΗ ΒΔ

    Αυτή η κατάσταση είναι παροδική, εισάγεται ενώ δεν υπάρχει σύνδεση δικτύου WiFi

  • Εκκρεμεί MQTT

    Αυτή η κατάσταση είναι παροδική, εισάγεται μετά τη σύνδεση δικτύου WiFi και ενώ δεν υπάρχει σύνδεση με μεσίτη MQTT σε αυτό το δίκτυο

  • ΕΝΕΡΓΟΣ

    Αυτή είναι η κανονική κατάσταση λειτουργίας που έχει εισαχθεί μόλις δημιουργηθεί τόσο σύνδεση δικτύου WiFi όσο και σύνδεση μεσίτη MQTT. Κατά τη διάρκεια αυτής της κατάστασης, η θερμοκρασία, ο δείκτης θερμότητας και η υγρασία στη συσκευή σύνθεσης IoT Retro Speech δημοσιεύονται τακτικά στον μεσίτη MQTT. Σε αυτήν την κατάσταση είναι ορατή η αρχική σελίδα Speech Synth

Τα γεγονότα που ελέγχουν τις μεταβάσεις μεταξύ καταστάσεων περιγράφονται στην εικόνα 1 παραπάνω. Οι μεταβάσεις μεταξύ καταστάσεων διέπονται επίσης από τις ακόλουθες παραμέτρους SecVals.

  • 1η διεύθυνση IP μεσίτη MQTT. Σε διακεκομμένη δεκαδική μορφή AAA. BBB. CCC. DDD
  • 2ο λιμάνι μεσίτη MQTT. Σε ακέραιη μορφή.
  • 3η σύνδεση MQTT Broker προσπαθεί να πραγματοποιήσει πριν από τη μετάβαση από τη λειτουργία STA στη λειτουργία AP. Σε ακέραιη μορφή.
  • 4ο Δίκτυο WiFi SSID. Σε ελεύθερη μορφή κείμενο.
  • 5ος κωδικός πρόσβασης δικτύου WiFi. Σε ελεύθερη μορφή κειμένου.

Όπως αναφέρθηκε παραπάνω, εάν η συσκευή IoT δεν μπορεί να συνδεθεί ως Σταθμός WiFi στο δίκτυο WiFi, το SSID και το P/W ορίζονται σε secvals.txt που διατηρούνται στην κάρτα SD, η συσκευή IoT θα γίνει Σημείο Πρόσβασης. Μόλις συνδεθεί σε αυτό το σημείο πρόσβασης, θα εμφανιστεί η "Αρχική σελίδα διαμόρφωσης συνομιλίας συνεντεύξεων", όπως φαίνεται παραπάνω στην Εικόνα 2 (εισάγοντας είτε το 'SPEECHSVR.local' είτε το 192.168.4.1 στη γραμμή διευθύνσεων URL του προγράμματος περιήγησης). Αυτή η αρχική σελίδα επιτρέπει την αναδιαμόρφωση της συσκευής σύνθεσης Iro Retro Speech Synthesis μέσω ενός προγράμματος περιήγησης

Απομακρυσμένη πρόσβαση ενώ βρίσκεστε σε ΕΝΕΡΓΗ κατάσταση

Μόλις συνδεθείτε με τον MQTT Broker, είναι επίσης δυνατό να επαναβαθμονομήσετε και να ρυθμίσετε ξανά τη συσκευή μέσω δημοσιεύσεων θεμάτων MQTT. Το αρχείο calvals.txt έχει πρόσβαση R/W και το secvals.txt έχει πρόσβαση μόνο για εγγραφή εκτεθειμένη.

Επίσης, όπως προαναφέρθηκε, από την ενεργή λειτουργία είναι δυνατή η πρόσβαση στο Speech Synth μέσω μιας διεπαφής HTTP εισάγοντας το 'SPEECHSVR.local' ή το 192.168.4.1 στη γραμμή διευθύνσεων URL του προγράμματος περιήγησης. Αυτή η διεπαφή που βασίζεται σε HTTP επιτρέπει τον βασικό έλεγχο του Speech Synth. Οι φωτογραφίες 3, 4 και 5 δείχνουν τις διαθέσιμες ιστοσελίδες.

Σφάλμα χρήστη

Κατά τη διάρκεια της ακολουθίας εκκίνησης, το πράσινο σύστημα συσκευής IoT που οδήγησε στο πίσω μέρος του περιβλήματος δίνει την ακόλουθη ανατροφοδότηση εντοπισμού σφαλμάτων.

  • 1 Σύντομο φλας: Δεν υπάρχει αρχείο διαμόρφωσης που βρίσκεται στην κάρτα SD (secvals.txt)
  • 2 Αναβοσβήνει σύντομα: Η συσκευή IoT προσπαθεί να συνδεθεί σε δίκτυο WiFi
  • Συνεχής φωτισμός: Η συσκευή IoT προσπαθεί να συνδεθεί με τον MQTT Broker
  • Off: Η συσκευή είναι ενεργή.

Λειτουργικότητα συσκευής IoT Retro Speech Synthesis Device in ACTIVE State

Μόλις βρεθεί στην κατάσταση ΕΝΕΡΓΟΠΟΙΗΣΗ, το ESP8266 εισέρχεται σε έναν συνεχή βρόχο καλώντας τις ακόλουθες συναρτήσεις. timer_update (), checkTemperatureAndHumidity () και handleSpeech (). Το καθαρό αποτέλεσμα του οποίου έχει σχεδιαστεί για να παρουσιάζει στο χρήστη μια διεπαφή HTTP ή MQTT, να εξυπηρετεί απρόσκοπτα τον ενσωματωμένο επεξεργαστή ομιλίας με φωνήματα κατά παραγγελία και να δημοσιεύει τοπικές παραμετρικές τιμές περιβάλλοντος σε MQTT.

Στον πηγαίο κώδικα περιλαμβάνεται μια ολοκληρωμένη λίστα με όλες τις συνδρομές θεμάτων και δημοσιεύσεις, συμπεριλαμβανομένων των τιμών ωφέλιμου φορτίου.

Βήμα 7: Βαθμονόμηση αισθητήρα

Βαθμονόμηση αισθητήρα
Βαθμονόμηση αισθητήρα

Όταν ενεργοποιηθεί η συσκευή IoT, ως μέρος της ακολουθίας εκκίνησης, δύο αρχεία με τα ονόματα 'cavals1.txt' και 'cavals2.txt' διαβάζονται από την κάρτα SD.

Τα περιεχόμενα αυτών των αρχείων είναι σταθερές βαθμονόμησης όπως υποδεικνύεται παραπάνω στην εικόνα 1.

  1. 'cavals1.txt': Χρησιμοποιείται από το εξωτερικό AM2320
  2. 'cavals2.txt': Χρησιμοποιείται από το εσωτερικό DHT22

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

Στρατηγική αναφοράς

Αυτή η παράμετρος καθορίζει τον τρόπο με τον οποίο ο απομακρυσμένος αισθητήρας αναφέρει τυχόν παραμετρικές αλλαγές περιβάλλοντος τοπικά σε αυτό. Εάν επιλεγεί μια τιμή 0, ο απομακρυσμένος αισθητήρας θα δημοσιεύει οποιαδήποτε αλλαγή βλέπει στη θερμοκρασία ή την υγρασία κάθε φορά που διαβάζεται ο αντίστοιχος αισθητήρας (περίπου κάθε 10 δευτερόλεπτα). Οποιαδήποτε άλλη τιμή θα καθυστερήσει τη δημοσίευση μιας αλλαγής κατά 1… 60 λεπτά. Η τροποποίηση αυτής της παραμέτρου επιτρέπει τη βελτιστοποίηση της κίνησης δικτύου MQTT. Πρέπει να σημειωθεί ότι τα δεδομένα θερμοκρασίας και υγρασίας από το DHT22 διαβάζονται εναλλάξ λόγω των περιορισμών του αισθητήρα.

Βαθμονόμηση θερμοκρασίας

Για τη βαθμονόμηση του αισθητήρα θερμοκρασίας ακολούθησα την ίδια διαδικασία όπως περιγράφεται εδώ στο βήμα 4, και πάλι χρησιμοποιώντας μια απλή σχέση y = mx+c. Χρησιμοποίησα IoT Temperature, Humidity Sensor #1 ως συσκευή αναφοράς. Οι τιμές από τον αισθητήρα είναι σε βαθμούς Κελσίου.

Βαθμονόμηση υγρασίας

Καθώς δεν διαθέτω μέσα για την ακριβή καταγραφή ή ακόμα και τον έλεγχο της τοπικής υγρασίας περιβάλλοντος, για τη βαθμονόμηση του αισθητήρα, χρησιμοποίησα μια παρόμοια προσέγγιση με αυτήν του παραπάνω βήματος 4, χρησιμοποιώντας ξανά τον αισθητήρα #1 ως αναφορά. Ωστόσο, τα παραπάνω, βρήκα πρόσφατα ένα εξαιρετικό άρθρο στον ιστό που περιγράφει τον τρόπο βαθμονόμησης αισθητήρων υγρασίας. Μπορεί κάλλιστα να δοκιμάσω αυτήν την προσέγγιση κάποια στιγμή στο μέλλον. Οι τιμές από τον αισθητήρα είναι σε %ηλικία σχετικής υγρασίας.

Βήμα 8: Σύμβαση ονοματοδοσίας θεμάτων MQTT

Σύμβαση ονοματοδοσίας θεμάτων MQTT
Σύμβαση ονοματοδοσίας θεμάτων MQTT
Σύμβαση ονοματοδοσίας θεμάτων MQTT
Σύμβαση ονοματοδοσίας θεμάτων MQTT

Όπως αναφέρθηκε σε προηγούμενο Instructable (εδώ) καταλήξαμε στη σύμβαση ονοματοδοσίας του θέματος που περιγράφεται στην εικόνα 1 παραπάνω.

Δηλαδή, «AccessMethod/DeviceType/WhichDevice/Action/SubDevice» Δεν είναι τέλειο, αλλά επιτρέπει την εφαρμογή χρήσιμων φίλτρων για την εμφάνιση όλων των εξόδων αισθητήρα για ένα δεδομένο παραμετρικό θέμα, επιτρέποντας έτσι την εύκολη σύγκριση, όπως στην εικόνα 2 παραπάνω με το MQTTSpy.

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

Υποστηρίζει επίσης εύλογα επεκτάσιμες λογικές ομάδες λειτουργιών σε μια δεδομένη συσκευή IoT.

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

Σημείωση: Εάν δεν είστε σίγουροι πώς να χρησιμοποιήσετε το MQTTSpy δείτε εδώ Ρύθμιση ενός μεσίτη MQTT. Μέρος 2: IoT, αυτοματισμός σπιτιού »

Βήμα 9: Εντοπισμός σφαλμάτων και εύρεση βλαβών

Εντοπισμός σφαλμάτων και εύρεση βλαβών
Εντοπισμός σφαλμάτων και εύρεση βλαβών

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

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

Μετά από κάποιον αρχικό εντοπισμό σφαλμάτων του PCB Speech Synth χρησιμοποιώντας ένα Arduino Uno για την προέλευση φωνημάτων και την απόδειξη ότι αυτός ο πίνακας λειτουργεί, πήρα ένα εύρος στις γραμμές I2C μεταξύ του IoT PCB και του Speech Synth PCB. Δείτε την εικόνα 1 παραπάνω.

Μπορείτε να δείτε καθαρά το «δόντι πριονιού»/εκθετική άκρη στο σήμα I2C στα ίχνη.

Αυτό είναι συνήθως μια ένδειξη ότι οι τιμές έλξης I2C είναι πολύ υψηλές εμποδίζοντας την τάση της γραμμής να ανακάμψει αρκετά γρήγορα σε ένα ανοιχτό κύκλωμα αποστράγγισης.

Ως «εργασία γύρω» παραλλήλισα τις δύο smt pull up αντιστάσεις R12 και R13 με 10K για να δώσουμε 4K7 και σίγουρα το Speech Synth «ξέσπασε στη ζωή»

Αυτός ο τύπος αποτυχίας είναι το αντίθετο από αυτό που μπορεί να συμβεί κατά τον εντοπισμό σφαλμάτων σε τέτοιου είδους έργα. Σε γενικές γραμμές, οι περισσότερες μονάδες βασισμένες σε I2C που αγοράστηκαν από το Ebay τείνουν να διαθέτουν ήδη τοποθετημένα pull up 10K ή 4K7. Εάν σκοπεύετε να χρησιμοποιήσετε> 5 μονάδες I2C, το καθένα με 4K7 pull ups, τότε το συνολικό φορτίο είναι 940R που θα είναι πολύ μεγάλο για το στάδιο εξόδου του κύριου. Η λύση θα ήταν η αποκόλληση όλων εκτός από ένα σετ αντιστάσεων έλξης σε κάθε μονάδα. Κατά προτίμηση αυτό που βρίσκεται πιο μακριά από τον κύριο.

Μια χρήσιμη συμβουλή και αξίζει να έχετε κατά νου όταν σχεδιάζετε ηλεκτρονικά με συσκευές I2C.

Βήμα 10: Δοκιμή του σχεδίου

Image
Image
Δοκιμάζοντας το Σχέδιο
Δοκιμάζοντας το Σχέδιο
Δοκιμάζοντας το Σχέδιο
Δοκιμάζοντας το Σχέδιο

Οι δοκιμές πραγματοποιήθηκαν χρησιμοποιώντας δύο μεθοδολογίες. Χειροκίνητα και αυτόματα.

Το πρώτο, χειροκίνητο και γενικά που χρησιμοποιήθηκε κατά την αρχική ανάπτυξη κώδικα ήταν η χρήση του MQTT Spy για την άσκηση όλων των διαθέσιμων εγγεγραμμένων θεμάτων και τον έλεγχο των δημοσιευμένων απαντήσεων (απεικονίζεται στην εικόνα 2 παραπάνω). Καθώς αυτή είναι μια χειροκίνητη διαδικασία, μπορεί να είναι χρονοβόρα και επιρρεπής σε σφάλματα καθώς εξελίσσεται η ανάπτυξη κώδικα, αν και η μη αυτόματη εκτέλεση επιτρέπει την κάλυψη 100%.

Το MQTTSpy επιλέχθηκε για χειροκίνητες δοκιμές επειδή είναι ένα εξαιρετικό εργαλείο για τη διαμόρφωση ενός συγκεκριμένου ωφέλιμου φορτίου και τη δημοσίευσή του σε οποιοδήποτε θέμα με ευκολία. Εμφανίζει επίσης ένα σαφές, χρονικά σφραγισμένο αρχείο καταγραφής, το οποίο είναι πολύ χρήσιμο για τον εντοπισμό σφαλμάτων (εικόνα 3 παραπάνω).

Η δεύτερη, αυτοματοποιημένη προσέγγιση υιοθετήθηκε καθώς ο πηγαίος κώδικας έγινε πιο περίπλοκος (> 3700 γραμμές). Η αυξημένη πολυπλοκότητα σημαίνει μεγαλύτερους κύκλους χειροκίνητων δοκιμών και πιο πολύπλοκες δοκιμές. Προκειμένου να βελτιωθεί η αξιοπιστία, ο ντετερμινισμός και η ποιότητα των δοκιμών, χρησιμοποιήθηκαν αυτοματοποιημένες δοκιμές μέσω ενός στελέχους δοκιμών python (εικόνα 1). Δείτε το Βήμα #10 σε αυτό το Εγχειρίδιο σχετικά με τον τρόπο με τον οποίο εισήχθησαν οι αυτοματοποιημένες δοκιμές. Ένα πλήρες αντίγραφο των αυτοματοποιημένων δοκιμών που χρησιμοποιούνται σε αυτό το Instructable είναι διαθέσιμο εδώ.

Ένα βίντεο της αυτόματης ακολουθίας δοκιμών σε λειτουργία παρουσιάζεται παραπάνω. Η ακολουθία εκτελεί τα ακόλουθα βήματα.

  • Αυτοματοποιημένο μέσω MQTT

    • Συνδεθείτε στη ραχοκοκαλιά MQTT και ανακοινώστε το "System Ready"
    • Άσκηση Πράσινο LED
    • Άσκηση Κόκκινο LED
    • Άσκηση μπλε LED
    • Ελέγξτε τη λειτουργία του Digital Pot
    • Μιλήστε χρησιμοποιώντας Φωνήματα
    • Μιλήστε χρησιμοποιώντας Hex Codes για Φωνήματα
    • Μιλήστε χρησιμοποιώντας κωδικούς για διόρθωση φράσεων
    • Λίγη διασκέδαση του Dr Who and the Daleks.
  • Χειροκίνητα μέσω

    • Άσκηση μπλε LED
    • Άσκηση Κόκκινο LED
    • Πείτε σταθερές φράσεις "Steven Quinn", "System Ready" και "Hello World"
    • Έχετε τον διακομιστή HTTP, εξυπηρετήστε

      • Λεπτομέρειες για το Speech Synth Chip
      • Λεπτομέρειες MQTT

Βήμα 11: Συμπέρασμα

συμπέρασμα
συμπέρασμα

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

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

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

Σταμάτησα να εφαρμόζω την εντολή λέξης («WFD/SpeechTH/1/Word/Command») επειδή μου έλειψε ο χρόνος και έπρεπε να προχωρήσω. Θα μπορούσα κάλλιστα να το ξαναεπισκεφτώ αν και πότε δημιουργήσω μια βάση δεδομένων MySQL. Αυτή τη στιγμή χρησιμοποιώ το InfluxDB.

Βήμα 12: Χρησιμοποιούνται αναφορές

Οι ακόλουθες πηγές χρησιμοποιήθηκαν για να συνδυάσουν αυτό το Instructable. Πηγαίος κώδικας για τη Συσκευή σύνθεσης IoT Retro Speech (αυτή περιέχει ένα αντίγραφο όλων)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • Από: Nick O'Leary
  • Σκοπός: Επιτρέπει στη συσκευή να δημοσιεύει ή να εγγραφεί σε θέματα MQTT με έναν συγκεκριμένο μεσίτη
  • Από:

DHT.h

  • Από: Adafruit
  • Σκοπός: Βιβλιοθήκη Arduino για DHT11DHT22, κ.λπ. Αισθητήρες θερμοκρασίας & υγρασίας
  • Από:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • Από: Adafruit
  • Σκοπός: Βιβλιοθήκη Arduino για AM2320, κ.λπ. Temp & Humidity Sensor
  • Από:

MCP4561_DIGI_POT.h

  • Από: Steve Quinn
  • Σκοπός: Βιβλιοθήκη Arduino για ψηφιακό ποτενσιόμετρο MCP4561
  • Από:

Adafruit_MCP23017.h

  • Από: Steve Quinn
  • Σκοπός: Βιβλιοθήκη Arduino για το MCP23017 I2C Port Expander. Πρόκειται για ένα πιρούνι GITHub από το Adafruit-MCP23017-Arduino-Library, της Adafruit.
  • Από:

Για πλάκα

https://haynes.com/en-gb/

Κατασκευή PCB

https://jlcpcb.com/

Εγκατάσταση πρόσθετων βιβλιοθηκών Arduino

https://www.arduino.cc/en/Guide/Libraries

Πώς να ελέγξετε και να βαθμονομήσετε έναν αισθητήρα υγρασίας

https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/?utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGN_2017_07_07_07_07_07_77_07_07_77_07_07_07_77_07_07_07_77_07_77_07_07_07_77_07_07_77_07_77_07_07_07_07_07_77_07_07_07_707_07 /

Φύλλο δεδομένων SP0256-AL2

https://www.futurebots.com/spo256.pdf

Κατάστημα τσιπς ομιλίας

https://www.speechchips.com/shop/

Διαγωνισμός Arduino 2019
Διαγωνισμός Arduino 2019
Διαγωνισμός Arduino 2019
Διαγωνισμός Arduino 2019

Επόμενοι στο Διαγωνισμό Arduino 2019

Συνιστάται: