Inhaltsverzeichnis:
- Schritt 1: Dinge, die in diesem Projekt verwendet werden
- Schritt 2: Geschichte
- Schritt 3: Hardwareverbindung
- Schritt 4: Softwareprogrammierung
- Schritt 5: Betrieb
Video: Seeed IoTea LoRa-Lösung (Update 1811) - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Internet+ ist mittlerweile ein beliebtes Konzept. Dieses Mal haben wir versucht, das Internet plus Landwirtschaft zu nutzen, um aus dem Teegarten den Internet-Tee wachsen zu lassen.
Schritt 1: Dinge, die in diesem Projekt verwendet werden
Hardware-Komponenten
- Grove - Kohlendioxidsensor (MH-Z16)
- Grove - Digitaler Lichtsensor
- Grove - Staubsensor(PPD42NS)
- Grove - Sauerstoffsensor (ME2-O2-Ф20)
- Bodenfeuchte- und Temperatursensor
- LoRa LoRaWAN Gateway - 868MHz Kit mit Raspberry Pi 3
- Grove - Temperatur-, Humi- und Barometersensor (BME280)
Software-Apps und Online-Dienste
Microsoft Visual Studio 2015
Schritt 2: Geschichte
Auf dem Mengding Mountain nordöstlich von Ya’an, Sichuan, verläuft der Bergrücken von Westen nach Osten in einem grünen Meer. Dies ist ein vertrauter Anblick für den 36-jährigen Deng, einer der ganz wenigen Mengding-Teehersteller seiner Generation, mit einer Plantage von 50mu (=3,3 Hektar) auf 1100 m über dem Meeresspiegel. Deng stammt aus einer Familie von Teebereitern, aber das Familienerbe weiterzuführen ist keine leichte Aufgabe. „Unsere Tees werden in großer Höhe in einer biologischen Umgebung angebaut, um ihre hervorragende Qualität zu gewährleisten. Gleichzeitig ist die Wachstumsdichte jedoch gering, die Kosten hoch und die Knospung ist ungleichmäßig, was die Ernte des Tees erschwert. Deshalb sind Hochgebirgstees normalerweise kleine Ernten und ihre Werte spiegeln sich nicht auf dem Markt wider.“Seit zwei Jahren versucht Deng, die Verbraucher für Hochgebirgstee zu sensibilisieren, um ihren Wert zu fördern. Und als er Fan traf, der nach einer Plantage suchte, um die IoTea-Technologie von Seeed zu implementieren, war eine perfekte Lösung gefunden.
Schritt 3: Hardwareverbindung
Die Hardware dieses Projekts kann in 4 Teile aufgeteilt werden: Power, Sensors, Node und Gateway. Der folgende Artikel zeigt Ihnen, wie Sie es Schritt für Schritt durchführen.
Leistungsteil
Power Part enthält hauptsächlich ein Solarpanel und eine Lithiumbatterie. Wenn Sie dieses Projekt nur zur Demonstration erstellen, können Sie sie ignorieren. Oder Sie können das vorherige Tutorial befolgen, um die Knotenstromversorgung zu installieren.
Sensoren Teil
Im Sensorteil haben wir aufgrund der vielen Sensoren eine Wetterstation verwendet und auch eine Acrylhalterung hergestellt, um sie zu installieren.
Wie Sie im Bild oben sehen, befindet sich der Digital Light Sensor immer oben, damit er Beleuchtungsinformationen sammeln kann. Die Sensoren, die Wärme erzeugen, sind in der Mitte der Acrylhalterung installiert, wie z. B. O2-Sensor, Staubsensor und CO2-Sensor. Endlich Temperatur- und Feuchtigkeitssensor an der Unterseite der Acrylhalterung.
Außerdem wird der Bodentemperatur- und Feuchtigkeitssensor allein im Boden installiert. Knotenteil
Node Part ist ein Seeeduino LoRaWan, der in einer wasserdichten Box installiert ist und über Wasserverbindungen mit Strom und Sensoren verbunden ist. Unter ihnen verbinden sich der Staubsensor mit dem digitalen Pin D3 von LoRaWan, der CO2-Sensor mit den Pins D4 und D5, der Bodensensor mit den Pins D6 und D7, der O2-Sensor mit dem analogen Pin A1 und der Lichtsensor und der Barometersensor mit dem I2C-Port.
HINWEIS: Ein 10k Widerstand sollte zwischen dem blauen (Daten) Kabel des Bodensensors und dem roten (Vcc) Kabel hinzugefügt werden.
Seeeduino LoRaWan sammelt ab und zu Sensorwerte und sendet sie über LoRa an das Gateway. Das Datenformat wie folgt:
{
[0], /* Lufttemperatur(℃) */ [1], /* Luftfeuchtigkeit(%) */ [2], /* Höhe(m) High Byte */ [3], /* Höhe(m) Low Byte */ [4], /* CO2-Konzentration (PPM) High Byte */ [5], /* CO2-Konzentration (PPM) Low Byte */ [6], /* Staubkonzentration (Stk/0,01 cf) High Byte */ [7], /* Staubkonzentration (Stk/0.01cf) Low Byte */ [8], /* Lichtintensität (Lux) High Byte */ [9], /* Lichtintensität (Lux) Low Byte */ [10], /* O2-Konzentration (%) */ [11], /* Bodentemperatur (℃) */ [12], /* Bodenfeuchtigkeit (%) */ [13], /* Batteriespannung (V) */ [14] /* Sensorfehlercode */ }
Jedes Bit im Sensorfehlercode-Byte hat eine unterschiedliche Bedeutung, genau wie unten:
{
bit0: 1; /* Barometersensorfehler */ bit1: 1; /* CO2-Sensorfehler */ bit2: 1; /* Staubsensorfehler */ bit3: 1; /* Lichtsensorfehler */ bit4: 1; /* O2-Sensorfehler */ bit5: 1; /* Bodensensorfehler */ reserviert: 2; /* Reserviert */ }
Gateway-Teil
Gateway-Teil ist ein Raspberry Pi, der das Gateway-Modul RHF0M301-868 und die PRI 2 Bridge RHF4T002 eingesteckt hat, es in einer wasserdichten Box installiert und über Wasserverbindungen mit Strom und USB-Kamera verbunden ist. Da es spezielle Firmware verwendet, folgen Sie bitte Seeed Wiki, um es zu konfigurieren.
Schritt 4: Softwareprogrammierung
Als Hardwareverbindung kann auch die Softwareprogrammierung aufgeteilt werden, sie kann in 3 Teile aufgeteilt werden: Knoten, Gateway und Website.
Knotenteil
Die meisten Treiber, die für Node Part erforderlich sind, sind bereits im Ordner origin_driver enthalten. Die folgenden Bibliotheken müssen manuell installiert werden:
Adafruit_ASFcore
Da das Projekt kompliziert ist, empfehlen wir Ihnen, Microsoft Visual Studio anstelle von Arduino IDE zu verwenden. Ein Plugin namens Visual Micro kann Ihnen helfen, ein Arduino-Projekt mithilfe von Visual Studio zu erstellen. Klicken Sie hier, um weitere Informationen zu erhalten.
Zur besseren Lesbarkeit und Wartbarkeit verwenden wir diesmal objektorientierte Programmierung. Das Klassendiagramm dieses Projekts sieht wie folgt aus:
Für diese Sensoren haben wir bereits einen OOP-Treiber, wir haben ihn neu gepackt, um dieses Projekt anzupassen, für andere haben wir ihre Treiber mit OOP neu geschrieben. Die Sensorklasse im Middleware-Layer wird verwendet, um die Schnittstellen realer Sensoren zu vereinheitlichen, beispielsweise kann ein Barometersensor gleichzeitig Temperatur, Luftfeuchtigkeit und Höhe erfassen, sodass er über 3 Schnittstellen zur Erfassung von Temperatur, Luftfeuchtigkeit und Höhe verfügt. Aber sie haben einen unterschiedlichen Methodennamen, der das Programm zum Erfassen von Sensorwerten komplizierter macht, genau wie folgt:
Barometer->getTemperature();
Barometer->getHumidity(); Barometer->getAltitude(); // … anderer_sensor->getSomeValue(); // …
Aber mit OOP sieht es so aus:
for (auto i = 0; i getValue();
}
Wir haben auch eine Application-Klasse gepackt, sie implementiert die IApplication-Schnittstelle, die setup()- und loop()-Methode in IoTea.ino kann die setup()- und die loop()-Methode im Application-Objekt aufrufen.
HINWEIS: USB Serial wird NUR zum Debuggen verwendet. Kommentieren Sie nach dem Debuggen den Initialisierungscode in der setup()-Methode.
Gateway-Teil
Das Python-Programm von Gateway Part im Home-Ordner wird verwendet, um Fotos aufzunehmen und sie stündlich auf den Amazon S3-Server hochzuladen. Stellen Sie vor der Verwendung sicher, dass fswebcam bereits auf Ihrem Raspberry Pi installiert ist:
sudo apt-get update && sudo apt-get install fswebcam
Wenn Sie Fotos hochladen möchten, konfigurieren Sie Ihre AWS, indem Sie die folgenden Schritte ausführen. Installieren Sie zunächst AWS SDK und AWS CLI auf Ihrem Raspberry Pi, indem Sie die folgenden Befehle verwenden:
sudo pip installieren boto3
sudo pip install awscli
und führen Sie dann AWS CLI aus:
sudo aws konfigurieren
Konfigurieren Sie Ihre AWS Access Key ID, AWS Secret Access ID und den Standardregionsnamen.
Wenn Sie Ihre Fotos nicht hochladen möchten, können Sie AWS-Konfigurationsschritte überspringen und Codes zum Hochladen in photo.py kommentieren. Um dieses Programm jedes Mal nach dem Booten des Raspberry Pi auszuführen, können Sie einen Dateinamen photo in /etc/init.d erstellen und den folgenden Code hineinschreiben.
#!/bin/bash
# /etc/init.d/photo ### BEGIN INIT INFO # Liefert: seeed_photo # Erforderlicher-Start: $remote_fs $syslog # Erforderlicher-Stopp: $remote_fs $syslog # Standard-Start: 2 3 4 5 # Standard-Stop: 0 1 6 # Kurzbeschreibung: Fotoaufnahme-Initskript # Beschreibung: Dieser Dienst wird verwendet, um die Fotoaufnahme zu verwalten ### END INIT INFO Fall "$1" in start) echo "Fotoaufnahme starten" /home/rxhf/photo.py &;; stop) echo "Stoppt das Fotografieren" kill $(ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{ print $2 }');; *) echo "Verwendung: Dienstfoto start|stop" exit 1;; esac-Ausgang 0
Ausführungsberechtigung festlegen
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
und teste es
sudo /etc/init.d/photo start
Wenn kein Problem auftritt, stoppen Sie es und fügen Sie es der Startanwendung hinzu
sudo /etc/init.d/fotostopp
sudo update-rc.d Foto-Standardeinstellungen
HINWEIS: Wenn Sie das Gateway nach dem Booten des Raspberry Pi starten möchten, fügen Sie Gateway-Startcodes im Seeed-Wiki zu /etc/rc.local hinzu, lassen Sie es so aussehen:
#!/bin/sh -e
# # rc.local # # Dieses Skript wird am Ende jedes Multiuser-Runlevels ausgeführt. # Stellen Sie sicher, dass das Skript bei Erfolg "0" beendet oder bei einem Fehler einen anderen Wert # verlässt. # # Um dieses Skript zu aktivieren oder zu deaktivieren, ändern Sie einfach die # Ausführungsbits. # # Standardmäßig macht dieses Skript nichts. # IP-Adresse ausgeben _IP=$(hostname -I) || true if ["$_IP"]; then printf "Meine IP-Adresse ist %s\n" "$_IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -risinghf-r… -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io exit 0
Webseite
Wir haben die Website auf CentOS 7 bereitgestellt. Die folgenden Schritte zeigen Ihnen, wie Sie es bereitstellen.
Schritt 1. Python3 installieren
sudo yum -y epel-release installieren
sudo yum -y installiere python36
Schritt 2. Python pip und virtuelle Umgebung installieren
wget
sudo python36 get-pip.py sudo pip install virtualenv
Setp 3. Klonen Sie unsere Website von GitHub
sudo yum -y installiere git
git-Klon
Schritt 4. Virtuelle Umgebung erstellen und aktivieren
virtualenv -p python36 iotea-hb
cd iotea-hb source bin/aktiviere
Schritt 5. Abhängige Bibliotheken installieren
pip install pymysql
pip install dbutils pip installflakon pip install websocket-client pip install cofigparser
Schritt 6. Datenbank erstellen
sudo yum -y installiere mariadb mariabd-server
sudo systemctl enable mariadb sudo systemctl start mariadb mysql -uroot -p
und verwenden Sie dann iotea_hb.sql, um eine Tabelle zu erstellen.
Schritt 7. Erstellen Sie db.ini und schreiben Sie diese Codes hinein
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
Ändern Sie den Pfad von db.ini in db.py
# in db.py
#cf.read("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read("/home//iotea-hb/db.ini")
Schritt 8. Ändern Sie den Port in app.py und starten Sie die Website:
# in app.py
#app.run(debug=Wahr, Port=6000) app.run(debug=Wahr, Port=8080)
# im Terminal
pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app:app
Besuchen Sie jetzt 127.0.0.1:8080 in Ihrem Webbrowser, Sie können die Website sehen, aber Echtzeitdaten werden nicht angezeigt.
Schritt 9. Loriot-Daten abrufen
Öffnen Sie ein anderes Terminal, geben Sie die virtuelle Umgebung erneut ein und starten Sie die Loriot-App:
cd iotea-hb
source bin/aktiviere gunicorn loriot:app
Warten Sie eine Weile, Sie sehen die Daten auf der Website oder Sie können wss in loriot.py ändern:
# in loriot.py
#ws = create_connection("wss://cn1.loriot.io/app?token=vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w==")
ws = create_connection()
Schritt 5: Betrieb
Sie können unsere Websites besuchen, um Echtzeitdaten anzuzeigen:
- In Ya'an
- Zur Demonstration
Empfohlen:
Blu Media Robot (Update): 7 Schritte
Blu Media Robot (Update): blu ist ein Roboter, der mit Makeblock-Motherboard und Himbeere für die Elektronik arbeitet anderer Teil, um sie auf t zu drucken
Orange Pi Plus 2 - Armbian (auf SD-Karte oder Onboard 16GB Speicher!) - Update: 6 Schritte
Orange Pi Plus 2 - Armbian (auf SD-Karte oder Onboard 16 GB Speicher!) - Update: Hallo zusammen! Dies ist mein erstes Instructable und Englisch ist nicht meine Muttersprache, also bitte nicht hart zu mir. Zu Beginn die Orange Pi Plus 2 ist ein wunderbares kleines Gerät wie ein Raspberry Pi, aber schneller! Für den Raspberry Pi gibt es eine große Community
Anleitung zur Verwendung von LORA SX1278 RF433 – 3 Schritte
Tutorial So verwenden Sie LORA SX1278 RF433: In diesem Tutorial werden wir Ihnen beibringen, wie Sie LORA-SX1278 RF433 dazu bringen, miteinander zu kommunizieren
Nahaufnahme von Tierfotografie ohne High-Tech-Ausrüstung. Update.: 7 Schritte (mit Bildern)
Nahaufnahme von Tierfotografie ohne High-Tech-Ausrüstung. Update.: Zurück in den 60er Jahren & In den 70er Jahren, als ich ein kleiner Junge war, führten wir heutzutage einen anderen Lebensstil als die meisten Kinder, als ich vier war, zogen wir von unserer Maisonette über dem Broadway, einer belebten Hauptstraße in Loughton Essex, nach Stevenage, einer neuen Stadt in Hertfordshire