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

Home_X: 5 Βήματα
Home_X: 5 Βήματα

Βίντεο: Home_X: 5 Βήματα

Βίντεο: Home_X: 5 Βήματα
Βίντεο: Οι προκλήσεις της Τουρκίας και τα επόμενα βήματα 2024, Ιούλιος
Anonim
Αρχική_Χ
Αρχική_Χ

Είμαι μαθητής στο Howest Kortrijk που σπουδάζει New Media and Communication Technology (NMCT).

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

Με το έξυπνο σπίτι, θα μπορείτε να δείτε όλες τις ενδείξεις αισθητήρων στον ιστότοπο.

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

Βήμα 1: Υλικά: Τι χρειάζεστε

  • Raspberry Pi
  • DHT22
  • Grove - Αισθητήρας ποιότητας αέρα
  • Grove - Αισθητήρας αερίου (MQ2)
  • Breadboard
  • Raspberry Pi T τσαγκάρης
  • Ανδρικά/Γυναικεία καλώδια βραχυκυκλωτήρων
  • LED 5mm
  • Αντιστάσεις
  • Ξύλο και εργαλεία
  • Βοηθητικό μοτέρ
  • GrovePi+

Μπορείτε να αγοράσετε αυτά τα είδη online (Ali express, amazon, kiwi electronics…) ή στα τοπικά σας καταστήματα.

Ένας λεπτομερής κατάλογος μερών με σύνδεσμο προς τα καταστήματα δίνεται παρακάτω στο BOM.

Βήμα 2: Καλωδίωση

Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση

Χρησιμοποίησα το Fritzing για την καλωδίωση για να έχω μια ωραία επισκόπηση του πώς πρέπει να γίνει η καλωδίωσή μου. Εγώ ο ίδιος χρησιμοποίησα ένα GrovePi+ για 2 αισθητήρες μου. Αν σκοπεύετε να το κάνετε χωρίς GrovePi+ ακολουθήστε το σχήμα Fritzing. Οι αισθητήρες I δεν λειτουργούν για εσάς, δοκιμάστε να χρησιμοποιήσετε διαφορετικές ακίδες.

Μπορείτε να βρείτε το αρχείο Fritzing παρακάτω.

Βήμα 3: Βάση δεδομένων χρησιμοποιώντας MySQL

Βάση δεδομένων χρησιμοποιώντας MySQL
Βάση δεδομένων χρησιμοποιώντας MySQL

Ένα από τα πιο ουσιαστικά καθήκοντα που έπρεπε να εφαρμόσουμε ήταν η σύνδεση με μια βάση δεδομένων MySQL.

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

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

Παρακάτω μπορείτε να βρείτε το αρχείο.xml μου όπου έχετε μια επισκόπηση του τρόπου λειτουργίας της βάσης δεδομένων, αλλά πρώτα πρέπει να εγκαταστήσετε MySQL και φιάλη στο Raspberry Pi.

Η κωδικοποίηση των αισθητήρων έγινε μέσω pycharm, οπότε βεβαιωθείτε ότι είναι εγκατεστημένο επίσης (στον υπολογιστή σας).

Πρώτα πρέπει να ελέγξετε για ενημερώσεις και να εγκαταστήσετε πακέτα, όπως αυτό:

sudo apt-get ενημέρωση && sudo apt-get αναβάθμιση

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Τώρα θα χρησιμοποιήσουμε ένα εικονικό περιβάλλον:

me@my-rpi: ~ $ python3 -m pip install-upgrade pip setuptools wheel virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system- site-packages env me@my-rpi: ~/project1 $ source env/bin/activ (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Θα πρέπει να σας πει ότι το mariadb.service είναι ενεργό.

Τώρα, στο pycharm μεταβείτε στο VCS> Import from Version Control> GitHub en clone

Στη συνέχεια, διαμορφώστε τη διαμόρφωση ανάπτυξης για τον κατάλογο που μόλις δημιουργήσατε, π. /home/me/project1.

Αφού γίνει αυτό, μεταβείτε στις ρυθμίσεις διερμηνέα και διαμορφώστε το εικονικό περιβάλλον που μόλις δημιουργήσατε, π. /home/me/project/env/bin/python. Πρέπει επίσης να συμπληρωθεί η χαρτογράφηση διαδρομής.

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

sudo systemctl κατάσταση mysql

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

sudo mariadb

ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ 'project-admin'@'localhost' IDENTIFIED BY 'adminpassword'? ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ 'project-web'@'localhost' IDENTIFIED BY 'webpassword'? ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ 'project-sensor'@'localhost' IDENTIFIED BY 'sensorpassword'; ΔΗΜΙΟΥΡΓΙΑ έργου ΒΑΣΗΣ ΒΑΣΩΝ

ΧΟΡΗΓΗΣΗ ΟΛΩΝ ΤΩΝ ΠΡΟΤΙΜΙΣΜΑΤΩΝ ΣΧΕΤΙΚΑ ΜΕ ΤΟ ΕΡΓΟ.* Στο 'project-admin'@'localhost' WITH GRANT OPTION. GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'? ΠΡΟΣΦΟΡΕΣ ΠΡΟΣΦΟΡΑΣ;

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

Αυτό μπορούμε να το κάνουμε πηγαίνοντας στο Προβολή> Εργαλείο Windows> Βάση δεδομένων και κάνοντας κλικ στο πράσινο κουμπί "συν".

Πηγή δεδομένων> MySQL και κάντε κλικ (εάν υπάρχει) στο κουμπί Λήψη προγράμματος οδήγησης που εμφανίζεται.

Στη συνέχεια, μεταβείτε στο SSH/SSL και ελέγξτε το SSH. Συμπληρώστε τον κεντρικό υπολογιστή/χρήστη/κωδικό πρόσβασης για το pi και χρησιμοποιήστε τη θύρα 22 εάν δεν έχετε συμπληρώσει ακόμα.

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

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

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

Αφού γίνει αυτό, πρέπει να βρείτε τον κατάλογο conf με τα δύο αρχεία.service. Εκεί αλλάξτε κάθε seb που βρίσκετε με το όνομα του χρήστη που χρησιμοποιείτε στο pi σας. Επίσης, η ομάδα πρέπει να είναι www-data.

Το επόμενο βήμα είναι να ξεκινήσετε αυτές τις υπηρεσίες στο pi σας, όπως παρακάτω:

sudo cp conf/project-*. service/etc/systemd/system/

sudo systemctl δαίμονας-επαναφόρτωση

sudo systemctl start project-*

έργο sudo systemctl status-*

Θα πρέπει να δείτε δύο ενεργές υπηρεσίες όταν όλα πάνε σύμφωνα με το σχέδιο.

Το τελευταίο βήμα είναι να ενεργοποιήσετε το nginx.

Αρχικά ελέγξτε για apache2 στο pi σας, εάν το έχετε εγκαταστήσει, διαγράψτε το ή απενεργοποιήστε το.

Στο αρχείο nginx πρέπει πρώτα να αλλάξετε το uwsgi_pass και μετά να εκτελέσετε αυτές τις εντολές.

sudo cp conf/nginx/etc/nginx/sites-available/project

sudo rm/etc/nginx/sites-enabled/default

sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project

sudo systemctl επανεκκίνηση nginx.service

sudo systemctl status nginx.service

Το Nginx πρέπει να είναι ενεργό και να λειτουργεί. Εάν όλα είναι σωστά, μπορείτε τώρα να σερφάρετε στο pi σας. Θα δείτε το "Hello world" στην αρχή, αλλά πρέπει ακόμα να αλλάξετε το περιεχόμενο αυτού του αρχείου με τον κωδικό μου παρακάτω.

Μπορείτε να ενεργοποιήσετε τις υπηρεσίες έτσι ώστε να εκτελούνται αυτόματα όταν ξεκινά το pi.

Όταν το κάνατε αυτό, βεβαιωθείτε ότι έχετε βάλει τουλάχιστον 1 σπίτι με διεύθυνση στη βάση δεδομένων. Μπορείτε να το κάνετε αυτό με ένα απλό ένθετο.

Βήμα 4: Κωδικοποίηση

Κωδικοποίηση
Κωδικοποίηση
Κωδικοποίηση
Κωδικοποίηση

Μπορείτε να κατεβάσετε τον κώδικα μέσω του Github:

github.com/NMCT-S2-Project-I/project-i-Tib…

Ο κωδικός για τους αισθητήρες περιλαμβάνεται στο αρχείο sensor.py.

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

Βήμα 5: Στέγαση

Στέγαση
Στέγαση
Στέγαση
Στέγαση
Στέγαση
Στέγαση
Στέγαση
Στέγαση

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

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

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

Όπως ανέφερα πριν το σπίτι σας μπορεί να μοιάζει ακριβώς με το δικό μου, χρειάζεται μόνο να αφήσετε χώρο για το σερβίς και το παράθυρο.

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

Καλή τύχη.

Συνιστάται: