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

MQTT στους πίνακες Armtronix: 3 βήματα
MQTT στους πίνακες Armtronix: 3 βήματα

Βίντεο: MQTT στους πίνακες Armtronix: 3 βήματα

Βίντεο: MQTT στους πίνακες Armtronix: 3 βήματα
Βίντεο: Умное окно - автоматизация проветривания комнаты, интеграция в Home Assistant 2024, Ιούλιος
Anonim
MQTT στους πίνακες Armtronix
MQTT στους πίνακες Armtronix

Σε αυτό το διδακτικό θα θέλαμε αρχικά να σας δείξουμε πώς μπορείτε να χρησιμοποιήσετε ένα σύστημα που βασίζεται σε Linux (Debian ή Ubuntu) και να εγκαταστήσετε το Mosquitto (Mqtt Broker) σε αυτό, επίσης να σας δείξουμε πώς να χρησιμοποιείτε το πρόγραμμα -πελάτη Mqtt στο τηλέφωνό σας (Android)/ Linux σύστημα, αποστολή και λήψη μηνυμάτων μέσω Mqtt. Αφού εξοικειωθείτε με αυτό, θα θέλαμε να σας δείξουμε πώς μπορείτε να διαμορφώσετε και να συνδέσετε τον πίνακα μας με αυτόν τον εγκατεστημένο μεσίτη Mqtt. Επίσης, θα ήθελα να σας δείξω πώς μπορείτε να προσθέσετε έλεγχο ταυτότητας στον μεσίτη Mqtt και μερικές βασικές συμβουλές και κόλπα για εντοπισμό σφαλμάτων. Ας ξεκινήσουμε λοιπόν ………..

Βήμα 1: Εγκατάσταση Mqtt Broker:

Εγκατάσταση Mqtt Broker
Εγκατάσταση Mqtt Broker
Εγκατάσταση Mqtt Broker
Εγκατάσταση Mqtt Broker
Εγκατάσταση Mqtt Broker
Εγκατάσταση Mqtt Broker
Εγκατάσταση Mqtt Broker
Εγκατάσταση Mqtt Broker

Υπάρχουν πολλοί μεσίτες Mqtt που μπορείτε να εγκαταστήσετε. Μερικά γνωστά είναι όπως αναφέρονται παρακάτω. Ορισμένες από αυτές είναι υπηρεσίες που βασίζονται σε cloud.

  • HiveMQ
  • MosquittoCloud
  • MQTT
  • Adafruit.io

Θα σας δείξουμε πώς να εγκαταστήσετε το Mosquitto σε σύστημα που βασίζεται σε Linux (Ubuntu 18.04). Για να το κάνετε αυτό, προσθέστε πρώτα το Mosquitto στη λίστα πηγών του ubuntu. Μόλις το Mosquitto είναι διαθέσιμο στα αποθετήρια του Ubuntu, θα μπορείτε να το εγκαταστήσετε με το apt-get.

Απλά ανοίξτε ένα τερματικό. Για να ανοίξετε ένα τερματικό, μεταβείτε στην αριστερή κάτω γωνία της επιφάνειας εργασίας του Ubuntu, κάντε κλικ στην επιλογή Εμφάνιση εφαρμογής (Doted 3X3 grid). Θα ανοίξει ένα παράθυρο. Εκεί αναζητάτε τερματικό. Κάντε κλικ στο τερματικό, θα πρέπει να μπορείτε να δείτε ένα παράθυρο ανοιχτό, όπως φαίνεται στις παρακάτω εικόνες.

  • Εμφάνιση εφαρμογής (Εικόνα 1).
  • Αναζήτηση Τερματικού (Εικόνα 2).
  • Τερματικό παράθυρο (Εικόνα 3).

Εισαγάγετε τις ακόλουθες εντολές αφού ανοίξετε το τερματικό

sudo apt-add-repository ppa: mosquitto-dev/mosquitto-ppa

sudo apt-get ενημέρωση

sudo apt-get install mosquitto

Μπορείτε επίσης να εγκαταστήσετε το πρόγραμμα -πελάτη Mqtt. Εντολή για να γίνει αυτό θα είναι

sudo apt-get install mosquitto-clients

Μερικές εικόνες για την αναφορά σας

  • Προσθήκη ppa (Εικόνα 4).
  • Ενημέρωση repo (Εικόνα 5).
  • Εγκατάσταση Mosquitto (Εικόνα 6).
  • Εγκατάσταση Mosquitto Client (Εικόνα 7).

Βήμα 2: Δοκιμή MQTT (Mosquitto)

Δοκιμή MQTT (Mosquitto)
Δοκιμή MQTT (Mosquitto)
Δοκιμή MQTT (Mosquitto)
Δοκιμή MQTT (Mosquitto)
Δοκιμή MQTT (Mosquitto)
Δοκιμή MQTT (Mosquitto)

Για να δοκιμάσετε το mqtt μέσω ubuntu (ίδιο σύστημα ή άλλο σύστημα) πρέπει να εγκαταστήσετε το πρόγραμμα-πελάτη mqtt που εγκαταστάθηκε νωρίτερα από την εντολή sudo apt-get install mosquitto-clients. Σε περίπτωση που θέλετε να το δοκιμάσετε χρησιμοποιώντας ένα κινητό τηλέφωνο (android), μπορείτε να εγκαταστήσετε την εφαρμογή MyMqtt από το play store.

Το Mqtt λειτουργεί σε κάτι που ονομάζεται Θέματα. Για ευκολία κατανόησης, εξετάστε αυτά τα θέματα ως φάκελο σε σκληρό δίσκο υπολογιστή. Ας αντιμετωπίσουμε αυτόν τον υπολογιστή ως διακομιστή υπολογιστών (ο οποίος στον κόσμο του mqtt είναι μεσίτης Mqtt). Σε αυτόν τον διακομιστή ας σκεφτούμε να έχουμε έναν φάκελο.

Όνομα φακέλου: /Folder_one /

Τώρα ας εξετάσουμε δύο άτομα από δύο διαφορετικά συστήματα (PC/Laptop) που έχουν πρόσβαση σε αυτόν τον διακομιστή είτε για ανάγνωση αρχείων είτε για αποστολή/απόρριψη αρχείων είτε για να κάνουν και τις δύο λειτουργίες.

Θα ονομάσουμε τα δύο άτομα/σύστημα ως System X, System Y (These are Mqtt Clients in the Mqtt World).

Τώρα, ας πούμε ότι το System X στέλνει/Αποβάλλει κάποιο αρχείο (όνομα αρχείου: θερμοκρασία) στο φάκελο "/Folder_one/", αυτό στον κόσμο του mqtt μπορούμε να το ονομάσουμε δημοσίευση (στέλνουμε κάποιο μήνυμα/ωφέλιμο φορτίο αντί για αρχείο).

Τώρα, ας πούμε ότι το System Y επιθυμεί να λάβει/διαβάσει αυτό το αρχείο ή οποιοδήποτε νέο αρχείο ή να ενημερώσει αυτόν τον φάκελο, το πρώτο πράγμα που χρειάζεται είναι να γνωρίζει το όνομα και τη διαδρομή του φακέλου, το οποίο στην περίπτωσή μας είναι "/Folder_one/". Έτσι, τώρα θα μεταβεί σε αυτόν το φάκελο και θα διαβάσει/λάβει αυτό το αρχείο (όνομα αρχείου: θερμοκρασία). Η γνώση της διαδρομής/Θέματος και ο έλεγχος για αλλαγές στο αρχείο/νέα αρχεία στον κόσμο Mqtt είναι συνδρομή σε αυτό το θέμα.

Λαμβάνοντας υπόψη το παραπάνω παράδειγμα, Το System X δημοσιεύεται στο "/Folder_one" και το System Y έχει εγγραφεί στο "/Folder_one"

Σημειώστε επίσης ότι το System X μπορεί επίσης να εγγραφεί στο "/Folder_one" και το System Y μπορεί επίσης να δημοσιεύσει στο "/Folder_one". Σαν σοφό, ακόμη και το σύστημα διακομιστή (The Mqtt Broker) μπορεί να δημοσιεύσει/εγγραφεί στο "/Folder_one" εγκαθιστώντας το πρόγραμμα -πελάτη Mqtt σε αυτό, όπως κάναμε αυτήν τη στιγμή. Το άλλο πράγμα που πρέπει να θυμάστε είναι να δημοσιεύσετε ή να εγγραφείτε σε ένα θέμα που θα πρέπει να γνωρίζετε τη διεύθυνση IP του Mqtt Broker.

Αρχικά θα το δοκιμάσουμε μέσω του πελάτη ubuntu που είναι εγκατεστημένο στο ίδιο σύστημα με το μεσίτη. Θα ανοίξουμε δύο παράθυρα τερματικού το ένα θα δημοσιεύσει και το άλλο θα εγγραφεί σε αυτό. Για το παράδειγμα Θα χρησιμοποιήσουμε το /Folder_one ως θέμα. Πριν από το pub/sub σε ένα θέμα θα πρέπει να βρείτε τη διεύθυνση IP του ubuntu. Για να το κάνετε αυτό, κάντε κλικ στη δεξιά γωνία της οθόνης, επιλέξτε ρύθμιση wifi, από εκεί θα μπορείτε να βρείτε τη διεύθυνση IP του συστήματος ubuntu (αυτήν τη στιγμή η IP μεσίτη). Το στιγμιότυπο οθόνης μοιράστηκε για αναφορά (Εικόνα 8).

Or για να βρείτε τη διεύθυνση IP του μεσίτη, μπορείτε να βρείτε τη διεύθυνση IP εγκαθιστώντας εργαλεία δικτύου χρησιμοποιώντας την ακόλουθη εντολή στο τερματικό

sudo apt install net-tools

Εγκατάσταση δικτυακών εργαλείων (Εικόνα 9). Μετά απλώς πληκτρολογήστε την εντολή ipconfig θα λάβετε μια λίστα διεπαφών δικτύου με το mac και τη διεύθυνση IP

sudo ipconfig

Η διεύθυνση IP του συστήματός μου είναι 192.168.1.67 (Εικόνα 10)

Να δημοσιεύσω

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m pub_to_folderone

Εδώ, το mosquitto_pub είναι η εντολή, ακολουθούμενη από το στοιχείο αναγνώρισης παραμέτρων -h που είναι διεύθυνση IP κεντρικού υπολογιστή /μεσίτη (Στην περίπτωσή μας 192.168.1.67), ακολουθούμενο από -t που είναι το όνομα θέματος στον εκδότη (Στην περίπτωσή μας /Folder_one), ακολουθούμενο από -m που σημαίνει το μήνυμα/ωφέλιμο φορτίο που θα αποσταλεί (Στην περίπτωσή μας είναι pub_to_folderone).

Να περιγράψω

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Μήνυμα που στάλθηκε από τον εκδότη: pub_to_folderone

Παράδειγμα δημοσίευσης

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “hi test mqtt”

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m "mqtt working"

Παράδειγμα για απάντηση που ελήφθη κατά την εγγραφή στο θέμα

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Μήνυμα που εστάλη από τον εκδότη:

  • pub_to_folderone
  • γεια δοκιμή mqtt
  • Το mqtt λειτουργεί

Pub Sub σε δύο ξεχωριστά παράθυρα τερματικού δίπλα -δίπλα (Εικόνα 11)

Δοκιμή Mqtt στο Android (το mqtt μου)

Εγκαταστήστε την εφαρμογή mymqtt από το play store στο τηλέφωνό σας Android (Εικόνα 12)

Ανοίξτε την εφαρμογή και κάντε κλικ στην αριστερή επάνω γωνία (Εικόνα 13, Εικόνα 14).

Κάντε κλικ στις Ρυθμίσεις και εισαγάγετε τη διεύθυνση IP του μεσίτη, η θύρα από προεπιλογή θα είναι 1883. Προς το παρόν δεν χρησιμοποιούμε πιστοποιημένο μεσίτη mqtt, οπότε το όνομα χρήστη και ο κωδικός πρόσβασης θα είναι κενά. Απλώς αποθηκεύστε το και κάντε ξανά κλικ στην αριστερή επάνω γωνία της εφαρμογής (<Ρυθμίσεις) το συρτάρι θα ανοίξει ξανά (Εικόνα 15).

Στην κορυφή του συρταριού θα σας δείξει τη διεύθυνση IP του μεσίτη και τη θύρα στην οποία είναι συνδεδεμένη η εφαρμογή (Εικόνα 16).

Τώρα προσθέστε το θέμα που θέλετε να εγγραφείτε κάνοντας κλικ στο Εγγραφή. Εδώ θα προσθέσουμε θέμα ως /Folder_one (Εικόνα 17, Εικόνα 18).

Αφού το κάνουμε αυτό, από το σύστημα ubuntu χρησιμοποιώντας τερματικό θα δημοσιεύσουμε στο θέμα. Κατά τη δημοσίευση θα πρέπει να λάβετε το ωφέλιμο φορτίο/μήνυμα που δημοσιεύεται σε αυτήν την εφαρμογή για κινητά. Για παράδειγμα, δημοσίευση ωφέλιμου φορτίου ως "ARM -Automation Robotics & Mechatronics". Η εντολή είναι όπως αναφέρθηκε προηγουμένως.

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m "ARM -Automation Robotics & Mechatronics"

δημοσίευση από το σύστημα ubuntu (Εικόνα 19).

Λήφθηκε δημοσιευμένο μήνυμα στον πίνακα ελέγχου (Εικόνα 20).

Τώρα ας δημοσιεύσουμε από το τηλέφωνο Android (My mqtt) και εγγραφείτε στο σύστημα ubuntu. Για αυτό το παράδειγμα χρησιμοποιούμε το θέμα "/mymqtt_to_pub".

Για να το κάνετε αυτό, ανοίξτε πρώτα ένα τερματικό από το σύστημά σας ubuntu και εγγραφείτε στο θέμα "/mymqtt_to_pub" χρησιμοποιώντας την ακόλουθη εντολή (Εικόνα 21)

mosquitto_sub -h 192.168.1.67 -t /mymqtt_to_pub

Τώρα μεταβείτε στο συρτάρι της εφαρμογής mymqtt και κάντε κλικ στη δημοσίευση. Προσθέστε το θέμα δημοσίευσης (Στην περίπτωσή μας είναι "/mymqtt_to_pub") και στείλτε κάποιο μήνυμα όπως θα στείλουμε "hi Ubuntu", πατήστε το κουμπί αποστολής (Εικόνα 22, Εικόνα 23).

Το μήνυμα θα πρέπει να εμφανίζεται στο τερματικό παράθυρο του συστήματος ubuntu (Εικόνα 24).

Σημειώστε ότι τόσο το σύστημα ubuntu όσο και το τηλέφωνο android θα πρέπει να βρίσκονται στο ίδιο δίκτυο ή η θύρα 1883 θα πρέπει να εκτεθεί και θα πρέπει να γνωρίζετε τη διεύθυνση IP του δρομολογητή/πύλης σας για να λειτουργήσει το mqtt. Εάν θέλετε να προσθέσετε έλεγχο ταυτότητας στον μεσίτη mqtt, μπορείτε να το κάνετε ακολουθώντας τον παρακάτω σύνδεσμο ιστολογίου https://medium.com/@eranda/setting-up-authenticat… Ακολουθήστε από το δεύτερο βήμα αυτού του ιστολογίου. Έχουμε ενεργοποιήσει τον έλεγχο ταυτότητας του μεσίτη μας και θα χρησιμοποιήσουμε πιστοποιημένο μεσίτη για τους πίνακες μας.

Βήμα 3: Εργασία με το Armtronix Board & Mqtt

Συνεργασία με το Armtronix Board & Mqtt
Συνεργασία με το Armtronix Board & Mqtt
Συνεργασία με το Armtronix Board & Mqtt
Συνεργασία με το Armtronix Board & Mqtt
Συνεργασία με το Armtronix Board & Mqtt
Συνεργασία με το Armtronix Board & Mqtt

Προς το παρόν για αυτό το διδακτικό, χρησιμοποιούμε τον πίνακα Wifi Single Dimmer που χρησιμοποιεί το Triac για να κόψει το ημιτονοειδές κύμα και με τη σειρά του να μειώσει τη λάμπα ή να ελέγξει την ταχύτητα του ανεμιστήρα. Επίσης, το έχουμε συνδέσει μέσω τύπου ελέγχου ταυτότητας mqtt.

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

Power On the board, θα αρχίσει να φιλοξενεί ένα Wifi Access Point.

Χρησιμοποιήστε τηλέφωνο Android ή φορητό υπολογιστή συνδεθείτε σε αυτό το AP (Εικόνα 25).

Μόλις συνδεθείτε σε αυτό το AP, πληκτρολογήστε 192.168.4.1 ανοίγοντας ένα πρόγραμμα περιήγησης (chrome/firefox) από το συνδεδεμένο AP/σύστημα/τηλέφωνο. Βεβαιωθείτε ότι δεν χρησιμοποιείτε τη σύνδεση δεδομένων (3G/4G).

Κατά την πληκτρολόγηση της IP, θα ανοίξει μια ιστοσελίδα όπου πρέπει να εισαχθεί το ακόλουθο (Εικόνα 26).

  • SSID: Όνομα AP Wifi.
  • Κωδικός πρόσβασης: Κωδικός SSID.
  • Λειτουργία IoT Mqtt ή Http (Επιλέξτε Mqtt).
  • Mqtt Broker IP (Στην περίπτωσή μας είναι 192.168.1.67).
  • Όνομα χρήστη και κωδικό πρόσβασης Mqtt, καθώς χρησιμοποιούμε τύπο ελέγχου ταυτότητας, έχουμε χρησιμοποιήσει Naren, xxxx
  • Mqtt θέμα δημοσίευσης: Αυτό θα αφορά το θέμα που δημοσιεύει επίσης ο πίνακας, έχουμε χρησιμοποιήσει /testpub.
  • Θέμα εγγραφής Mqtt: Αυτό θα αφορά το θέμα που ακούει ο πίνακας για εντολές που ενεργοποιούν το triac, που έχουμε χρησιμοποιήσει /testub.
  • Όνομα συσκευής: Είναι το όνομα που καλείτε στην alexa για ενεργοποίηση του πίνακα, έχουμε χρησιμοποιήσει corvi.

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

Λάβετε υπόψη ότι έχουμε συνδέσει τον πίνακα μας μέσω Uart στη σειριακή οθόνη του Arduino IDE. Έτσι, στην αριστερή πλευρά θα δείτε τα μηνύματα εντοπισμού σφαλμάτων που εκτυπώνει μέσω Uart (αυτό είναι μόνο για αναφορά σας).

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

Συνδέθηκε με μεσίτη MQTT με έλεγχο ταυτότητας. Εγγραφείτε στο θέμα 1.

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

Για αυτόν τον πίνακα οι εντολές είναι:

  • R13_ON: Για να ενεργοποιήσετε το triac στο 100%.
  • R13_OFF: Για να απενεργοποιήσετε το triac στο 0%.
  • Dimmer: xx: Όπου, xx είναι η τιμή εξασθένισης και μπορεί να μεταβληθεί από 0 έως 99.
  • Επαναφορά: Για να διαγράψετε τη διαμόρφωση της πλακέτας.
  • Κατάσταση: Εκτυπώστε την κατάσταση αμυδρότητας του πίνακα στο θέμα δημοσίευσης του πίνακα.

Για να στείλετε αυτήν την εντολή από ένα σύστημα που βασίζεται στο ubuntu όπου είναι εγκατεστημένο το πρόγραμμα -πελάτης mqtt, απλώς πληκτρολογήστε το όπως φαίνεται παρακάτω. Δύο πρόσθετες παράμετροι προστίθενται εδώ λόγω ελέγχου ταυτότητας -δηλαδή -u που είναι το όνομα χρήστη και -P είναι ο κωδικός πρόσβασης, σημειώστε ότι αυτές είναι κεφαλαίες.

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m Dimmer: 50

Σημείωση: 50 είναι η τιμή dimmer

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m Κατάσταση

Για την πιο πρόσφατη κατάσταση, η κατάσταση εκτυπώνεται στο θέμα δημοσίευσης του πίνακα που στην περίπτωσή μας είναι /testpub. Στον πίνακα μας οποιαδήποτε αλλαγή στη συσκευή εκτυπώνεται στο θέμα δημοσίευσης του πίνακα. Για παράδειγμα, εάν περάσουμε το Dimmer: 50 στο θέμα εγγραφής στον πίνακα παρά στη φυσική εκτέλεση αυτού, ο πίνακας θα στείλει ένα μήνυμα που δηλώνει το χαμηλό επίπεδο στο θέμα της δημοσίευσης. Το παράδειγμα φαίνεται παρακάτω, Για να εγγραφείτε από το σύστημα ubuntu στο θέμα δημοσίευσης του πίνακα, εισαγάγετε την ακόλουθη εντολή

mosquitto_sub -h 192.168.1.67 -u Naren -P xxxx -t /testpub

μήνυμα που λαμβάνουμε είναι

DimmerIS50

παρακάτω υπάρχουν μερικά σορτς οθόνης (Εικόνα 28, Εικόνα 29)

Συνιστάται: