Skip to content

Latest commit

 

History

History
30 lines (25 loc) · 4.18 KB

File metadata and controls

30 lines (25 loc) · 4.18 KB

Γενικές πληροφορίες

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

Και οι τρεις μονάδες διαθέτουν από δύο μικροελεγκτές. Έναν 8 bit τύπου AVR (Arduino Nano) με πολλούς ακροδέκτες εισόδου / εξόδου, ο οποίος λειτουργεί ως expander και επικοινωνεί με τους αισθητήρες, όργανα ή ενεργοποιητές που διαφέρουν από μονάδα σε μονάδα. Έναν 32 bit τύπου ESP8266 με 1Mbyte μνήμη Flash (ESP-01). Αυτός είναι πολύ πιο ισχυρός διαθέτει ελάχιστους ακροδέκτες εισόδου / εξόδου. Οι δύο ελεγκτές επικοινωνούν μέσω σειριακής θύρας.

Στην πραγματικότητα ο δεύτερος αναλαμβάνει τον μεγαλύτερο φόρτο εργασίας και εκτελεί τα ακόλουθα καθήκοντα:

  1. Λαμβάνει μηνύματα από τον AVR σε τακτά χρονικά διαστήματα (κάθε 1sec) με τις τιμές των αισθητήρων ή των οργάνων.
  2. Αν πάρει εντολή από τον Node Red server ή το Web Interface, άμεσα την μεταβιβάζει στον AVR expander ώστε να στείλει σήματα στους ενεργοποιητές (Relays, Servos κλπ).
  3. Αναλαμβάνει την επικοινωνία μέσω WiFi με το οικίο Access Point αλλά μπορεί να λειτουργήσει και ο ίδιος σαν AP ώστε να γίνουν οι αρχικές ρυθμίσεις σύνδεσης.
  4. Λειτουργεί ολοκληρωμένος TCP/IP stack για την επικοινωνία με το διαδίκτυο.
  5. Λειτουργεί mini Web Server για τον χειρισμό αλλά και τις αρχικές ρυθμίσεις των μονάδων.
  6. Λειτουργεί mqtt client ώστε να στέλνει και να λαμβάνει μηνύματα από τον οικείο broker. Η περίοδος αποστολής είναι ρυθμιζόμενη από 0,5 - 10 λεπτά.
  7. Κρατάει αρχεία καταγραφής με τις μετρήσεις και τις ενέργειες που έγιναν.
  8. Έχει ακριβή χρόνο NTP από το διαδίκτυο.

Για τον προγραμματισμό των αρθρωμάτων ESP-01 χρησιμοποιήσαμε αυτόν τον προγραμματιστή:

Στο αρχείο pltformio.ini περιγράφεται και το σχήμα διαμόρφωσης της μνήμης Flash 1Mbyte. Η μνήμη χωρίζεται σε δύο blocks των 512Kbyte. Το 1ο καταλαμβάνεται από τον κώδικα που φτάνει στο 73-75% ενώ το δεύτερο διαμορφώνεται με το σύστημα αρχείων LittleFs. Εκεί αποθηκεύονται οι σελίδες HTML, τα αρχεία CSS και JavaScript καθώς και τα αρχεία ρυθμίσεων και καταγραφής.