Inhaltsverzeichnis:

Home_X: 5 Schritte
Home_X: 5 Schritte

Video: Home_X: 5 Schritte

Video: Home_X: 5 Schritte
Video: 5000 Schritte HOME WORKOUT | 30 Minuten Workout AUF DER STELLE | + Warm-Up & Cool Down | GEWINNSPIEL 2024, Juli
Anonim
Startseite_X
Startseite_X

Ich studiere New Media and Communication Technology (NMCT) bei Howest Kortrijk.

Wir alle mussten ein Projekt machen, das auf Himbeere und / oder Arduino basierte. Wir mussten Sensoren und Datenbanken verwenden, um die Daten auf einer Website anzuzeigen, und da kam mir die Idee, ein Mini-Smart-House zu schaffen.

Mit dem Smart House können Sie alle Sensorwerte auf der Website einsehen.

In diesem anweisbaren werde ich Sie durch jeden Schritt führen, damit Sie dieses Projekt für sich selbst neu erstellen können.

Schritt 1: Materialien: Was brauchen Sie?

  • Himbeer-Pi
  • DHT22
  • Grove - Luftqualitätssensor
  • Grove - Gassensor (MQ2)
  • Steckbrett
  • Raspberry Pi T-Schuster
  • Männliche/weibliche Überbrückungsdrähte
  • 5mm LEDs
  • Widerstände
  • Holz und Werkzeuge
  • Servomotor
  • GrovePi+

Sie können diese Artikel online (Ali Express, Amazon, Kiwi Electronics…) oder in Ihren lokalen Geschäften kaufen.

Eine detaillierte Teileliste mit Link zu den Shops finden Sie weiter unten in der Stückliste.

Schritt 2: Verkabelung

Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung

Ich habe Fritzing für die Verkabelung verwendet, um einen schönen Überblick darüber zu haben, wie meine Verkabelung erfolgen soll. Ich selbst habe einen GrovePi+ für 2 meiner Sensoren verwendet. Wenn Sie dies ohne GrovePi + planen, folgen Sie dem Fritzing-Schema. I Sensoren funktionieren nicht für Sie, versuchen Sie es mit anderen Pins.

Die Fritzing-Datei finden Sie unten.

Schritt 3: Datenbank mit MySQL

Datenbank mit MySQL
Datenbank mit MySQL

Eine der wichtigsten Aufgaben, die wir umsetzen mussten, war die Anbindung an eine MySQL-Datenbank.

Jedes Mal, wenn ein Sensor Messwerte erhält oder ein Licht aufleuchtet, sehen Sie diese Änderungen in der Datenbank.

Die Datenbank sendet diese Daten dann an die Website, damit der Benutzer sie auch dort sehen kann.

Unten finden Sie meine.xml-Datei, in der Sie einen Überblick über die Funktionsweise der Datenbank haben.

aber zuerst müssen Sie MySQL und Flask auf dem Raspberry Pi installieren.

Die Codierung der Sensoren erfolgte über pycharm, also stellen Sie sicher, dass es auch installiert ist (auf Ihrem Computer).

Zuerst müssen Sie nach Updates suchen und Pakete installieren, wie folgt:

sudo apt-get update && sudo apt-get upgrade

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

Jetzt verwenden wir eine virtuelle Umgebung:

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/activate (env)me@my-rpi:~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Es sollte Ihnen mitteilen, dass mariadb.service aktiv ist.

Gehen Sie nun in pycharm zu VCS > Import from Version Control > GitHub en clone

Konfigurieren Sie dann die Bereitstellungskonfiguration für das gerade erstellte Verzeichnis, z. /home/ich/projekt1.

Gehen Sie danach zu den Interpreter-Einstellungen und konfigurieren Sie die virtuelle Umgebung, die Sie gerade erstellt haben, z. /home/me/project/env/bin/python. Die Pfadzuordnung muss ebenfalls ausgefüllt werden.

Wenn Sie all dies getan haben, sollte die Datenbank bereits ausgeführt werden.

sudo systemctl status mysql

Jetzt müssen wir Benutzer für unsere Datenbank erstellen, wie folgt:

sudo mariadb

BENUTZER ERSTELLEN 'project-admin'@'localhost' IDENTIFIZIERT DURCH 'adminpassword'; BENUTZER ERSTELLEN 'project-web'@'localhost' IDENTIFIZIERT DURCH 'webpassword'; CREATE USER 'project-sensor'@'localhost' IDENTIFIED BY 'sensorpassword'; CREATE DATABASE-Projekt;

GEWÄHLE ALLE PRIVILEGIEN FÜR project.* an 'project-admin'@'localhost' WITH GRANT OPTION;GEWÄHRE AUSWÄHLEN, EINFÜGEN, AKTUALISIEREN, LÖSCHEN FÜR projekt.* TO 'project-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'; Flush-Privilegien;

Um nun unsere Datenbank in pycharm zu sehen, müssen wir eine Verbindung herstellen.

Wir können dies tun, indem wir zu Ansicht> Werkzeugfenster> Datenbank gehen und auf die grüne Schaltfläche "Plus" klicken.

Datenquelle > MySQL und klicken Sie (falls vorhanden) auf die Schaltfläche Treiber herunterladen, die angezeigt wird.

Gehen Sie dann zu SSH/SSL und überprüfen Sie SSH. Geben Sie Host/Benutzer/Passwort für den Pi ein und verwenden Sie Port 22, falls noch nicht ausgefüllt.

Wenn Sie möchten, dass sich pycharm Ihr Passwort merkt, aktivieren Sie das Kontrollkästchen "Passwort speichern".

Tragen Sie im Reiter "Allgemein" localhost in host, project in Database ein und verwenden Sie project-admin mit dem Passwort, um die Verbindung testen zu können.

Um die Datenbank jetzt nutzbar zu machen, müssen Sie die.sql ausführen, die ich unten platziere. Versuchen Sie es mit der Importoption, wenn Sie eine Dumpdatei nicht importieren können, müssen Sie die Tabellen manuell hinzufügen.

Danach müssen Sie das conf-Verzeichnis mit den beiden.service-Dateien finden. Ändern Sie dort jeden seb, den Sie finden, mit dem Namen des Benutzers, den Sie auf Ihrem Pi verwenden. Außerdem muss die Gruppe www-data sein.

Der nächste Schritt besteht darin, diese Dienste auf Ihrem Pi zu starten, wie folgt:

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

sudo systemctl daemon-reload

sudo systemctl Projekt starten-*

sudo systemctl status projekt-*

Sie sollten zwei aktive Dienste sehen, wenn alles nach Plan verläuft.

Der letzte Schritt besteht darin, nginx zu aktivieren.

Suchen Sie zuerst nach Apache2 auf Ihrem Pi, wenn Sie dies installiert haben, löschen Sie es oder deaktivieren Sie es.

In der Datei nginx müssen Sie zuerst uwsgi_pass ändern, dann diese Befehle ausführen.

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 Neustart nginx.service

sudo systemctl-status nginx.service

Nginx sollte aktiv sein und ausgeführt werden. Wenn alles in Ordnung ist, können Sie jetzt zu Ihrem Pi surfen. Sie sehen zuerst "Hello world", aber Sie müssen den Inhalt dieser Datei noch mit meinem Code unten ändern.

Sie können Dienste aktivieren, damit sie beim Start des Pi automatisch ausgeführt werden.

Stellen Sie dabei sicher, dass Sie mindestens 1 Haus mit Adresse in die Datenbank eingetragen haben. Sie können dies mit einem einfachen Einfügen in.

Schritt 4: Codierung

Codierung
Codierung
Codierung
Codierung

Sie können den Code über Github herunterladen:

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

Der Code für die Sensoren ist in der Datei sensor.py enthalten.

Vergessen Sie nicht, in den Servicedateien meinen Namen in Ihren (oder den Benutzer, den Sie auf Ihrem Pi verwenden) zu ändern, damit sie ordnungsgemäß ausgeführt werden können und meinen Code in die bereits vorhandenen Dateien in Ihrem Pycharm einfügen.

Schritt 5: Gehäuse

Gehäuse
Gehäuse
Gehäuse
Gehäuse
Gehäuse
Gehäuse
Gehäuse
Gehäuse

Ich habe schnell gezeichnet, wie ich mein Haus haben wollte, aber Ihres kann ganz anders aussehen. Sie müssen nur sicherstellen, dass Sie ein Ganzes haben, damit das Servo ein Fenster öffnen und schließen kann.

Ich benutzte hauptsächlich einen kleinen Bohrer und eine Säge, um das Holz zu schneiden. Ich stellte auch sicher, dass die Wände dick genug waren, damit ich mein Servo darin platzieren konnte.

Wenn Sie mit Ihrem Design fertig sind und das Servo an Ort und Stelle ist, müssen Sie nur noch die Sensoren anschließen und den Pi im Haus platzieren und schon kann es losgehen.

Wie ich bereits erwähnt habe, kann Ihr Haus genauso aussehen wie meines, Sie müssen nur Platz für das Servo und das Fenster schaffen.

Endlich sind Sie mit dem Projekt fertig. Ich hoffe, dieser Leitfaden ist klar genug, damit auch Sie ein tolles Smarthouse wie ich bauen können.

Viel Glück.

Empfohlen: