Inhaltsverzeichnis:
- Schritt 1: Anforderungen
- Schritt 2: Löten / Verdrahtung
- Schritt 3: Raspberry Pi-Setup
- Schritt 4: Datenbankeinrichtung
- Schritt 5: Code
- Schritt 6: Verbinden
Video: WeatherCar - Gunook
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-10 13:45
Das WeatherCar, ein kleines selbstgemachtes Projekt, das fahren kann und gleichzeitig nützliche Daten sammelt!
Ich habe dieses Projekt als Abschluss für mein erstes Jahr im Howest of Kortrijk gemacht. Dieses Projekt hat noch kein gutes Ende, aber dieses Dokument behandelt alle Interna dieses Autos, ohne den vollen Rahmen zu machen.
Schritt 1: Anforderungen
Sie benötigen alle diese Komponenten für dieses Projekt:
- Himbeer-PI
- 2 x Motor (12V)
- Servo
- DHT11
- BMP280
- GY-NEO6MV2 GPS-Modul
- 4 x NPN-Transistoren
- 2 x Widerstände (1k und 2k)
- Kraftfahrer
- 2 x 6V Akkupacks
- Prototyping-Platine
- Abwärtsspannungsregler
- Isolierter Kupferdraht
- Flaches Kabel
- Altes Micro-USB-Kabel
- Sperrholz
Schritt 2: Löten / Verdrahtung
Für den ersten Schritt werden wir direkt alle Drähte anschließen. (PS. Sie können ein Steckbrett zum Testen verwenden, bevor Sie alles löten)
Ich habe ein Schema bereitgestellt, das Ihnen zeigt, wie ich alles verkabelt habe, obwohl ich nicht das richtige Teil für meinen Motorfahrer finden konnte. Für meinen Motortreiber habe ich die 4 NPN-Transistoren verwendet, um mein 3,3-V-Signal in ein 12-V-Signal umzuwandeln, um den Motortreiber zu steuern. Dies, weil der von mir verwendete nur 1 Spannung (12 V, weil meine Motoren 12 V sind) unterstützt.
Schritt 3: Raspberry Pi-Setup
Wenn Sie noch kein Setup haben, müssen Sie dies zuerst tun, andernfalls können Sie diesen Schritt überspringen, wenn Sie die erforderlichen Programme aus dem letzten Code-Snippet in diesem Schritt haben.
Zuerst müssen Sie die Raspbian-Desktop-Version herunterladen, die Sie hier finden können:
Nachdem Sie diese heruntergeladen haben, müssen Sie Etcher oder WinDiskImager verwenden, um die Bilddatei von Ihrem Raspberry Pi auf die SD-Karte zu übertragen. (Dies kann eine Weile dauern).
Wenn das Programm fertig ist, öffnen Sie den Datei-Explorer und öffnen Sie das Laufwerk namens "boot". Hier finden Sie eine Textdatei "cmdline.txt". Öffnen Sie diese und fügen Sie ip=169.254.10.1 am Ende der Datei hinzu. Achten Sie darauf, der Datei keine Eingaben hinzuzufügen, da dies zu Problemen führen könnte.
Da der PI nun eine Standard-IP-Adresse hat, müssen wir noch SSH aktivieren, um eine Verbindung zu ihm herstellen zu können. Sie können dies tun, indem Sie eine neue Datei namens "SSH" ohne Erweiterung erstellen. Dadurch wird der Raspberry Pi angewiesen, ssh beim ersten Booten zu aktivieren.
Damit können wir uns nun über ein Ethernet-Kabel mit dem Himbeer-Pi verbinden. Verbinden Sie das Kabel zwischen Ihrem PC und dem Raspberry PI. Jetzt brauchen wir einen SSH-Client. Dafür habe ich Putty (https://www.putty.org/) verwendet. Öffnen Sie Putty und geben Sie 169.254.10.1 als Hostnamen ein. Es kann eine Weile dauern, bis Sie eine Verbindung herstellen können.
Sobald Sie verbunden sind, melden Sie sich mit diesen Zugangsdaten an:
Login: piPasswort: Himbeere
Jetzt können wir eine Internetverbindung einrichten, um dies zu tun. Führen Sie diesen Befehl aus und ersetzen Sie SSID und Netzwerkkennwort durch den Namen und das Kennwort Ihres WLANs.
echo "Passwort" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant/wpa_supplicant.conf
wpa_cli -i wlan0 neu konfigurieren
Nachdem wir nun eine Internetverbindung haben, können wir Python und andere benötigte Programme mit den folgenden Befehlen installieren
sudo apt-Update
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
python3 -m pip install --upgrade pip setuptools rad virtualenv
mkdir wetterauto && cd wetterauto
python3 -m venv --system-site-packages env
source env/bin/activate
python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib Flask-socketio
Schritt 4: Datenbankeinrichtung
Da Ihr Raspberry Pi nun über alle benötigten Programme verfügt, müssen wir noch die Datenbank konfigurieren. Was wir tun können, indem wir zuerst Mysql starten
sudo mariadb
und dann
BENUTZER ERSTELLEN 'project1-admin'@'localhost' IDENTIFIZIERT DURCH 'adminpassword';CREATE BENUTZER 'project1-web'@'localhost' IDENTIFIZIERT DURCH 'webpassword';CREATE USER 'project1-sensor'@'localhost' IDENTIFIED BY 'sensorpassword';
DATENBANK ERSTELLEN weathercar_db;
GEWÄHRLEISTEN SIE ALLE PRIVILEGIEN AUF weathercar.* an 'project1-admin'@'localhost' MIT GRANT OPTION;GEWÄHREN SIE AUSWÄHLEN, EINFÜGEN, AKTUALISIEREN, LÖSCHEN AUF project1.* AN 'project1-web'@'localhost';GEWÄHREN AUSWAHL, EINFÜGEN, AKTUALISIEREN, DELETE ON project1.* TO 'project1-sensor'@'localhost';PRIVILEGES FLUSH;
Schritt 5: Code
In diesem Schritt klonen wir den benötigten Code auf Ihren Himbeer-Pi. Dies werden wir tun, indem wir Folgendes tun:
Stellen Sie zunächst sicher, dass Sie sich in Ihrem Home-Verzeichnis befinden, indem Sie "cd" eingeben
CD
Jetzt klonen wir das Repository mit
git-Klon
Jetzt können wir die Datenbankeinstellungen importieren mit:
sudo mariadb weathercar_db < /weathercar/sql/weathercar_db_historiek.sql sudo mariadb weathercar_db < /weathercar/sql/weathercar_db_sensoren.sql
Nachdem wir die Datenbank fertiggestellt haben, können wir unseren Service einrichten
sudo cp weathercar/conf/project1-*.service /etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl start project1-*sudo systemctl enable project1-*
Schritt 6: Verbinden
Wir sind fast am Ziel, nur noch ein Schritt. Und das ist die IP-Adresse, die uns das WLAN gegeben hat.
Wir werden dies tun, indem wir setzen
IP-Adresse
Es wird eine Menge Mist angezeigt, aber Sie sollten "wlan0" und dann ein paar Zeilen weiter "inet 192.168.x.x" finden können.
Geben Sie diese IP-Adresse in Ihren Browser ein und los geht's. Sie sind mit der Website verbunden.