Indholdsfortegnelse:
- Trin 1: Ting, der bruges i dette projekt
- Trin 2: Historie
- Trin 3: Hardwareforbindelse
- Trin 4: Software programmering
- Trin 5: Betjening
Video: Set IoTea LoRa -løsning (opdatering 1811): 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Internet+ er et populært koncept nu. Denne gang prøvede vi Internettet plus landbrug for at få en tehave til at vokse ud på Internettet.
Trin 1: Ting, der bruges i dette projekt
Hardware komponenter
- Grove - Kuldioxidføler (MH -Z16)
- Grove - Digital lyssensor
- Grove - støvføler (PPD42NS)
- Grove-Oxygen Sensor (ME2-O2-Ф20)
- Jordfugtigheds- og temperatursensor
- LoRa LoRaWAN Gateway - 868MHz kit med Raspberry Pi 3
- Grove - Temp & Humi & Barometersensor (BME280)
Software -apps og onlinetjenester
Microsoft Visual Studio 2015
Trin 2: Historie
På Mengding -bjerget nordøst for Ya’an, Sichuan, løber bjergryggen vest til øst i et hav af grønt. Dette er et mest kendt syn for 36-årige Deng, en af de meget få Mengding-te-producenter i sin generation, med en plantage på 50mu (= 3,3 hektar) beliggende på 1100 m over havets overflade. Deng kommer fra en familie af tefabrikanter, men det er ikke en let opgave at videreføre arven fra familien. “Vores te dyrkes i stor højde i et organisk miljø for at sikre dets fremragende kvalitet. Men på samme tid er væksttætheden lav, omkostningerne høje og spirende er ujævn, hvilket gør te svært at høste. Derfor er te på højt bjerg normalt små høst, og deres værdier afspejles ikke på markedet.”I de sidste to år har Deng forsøgt at øge forbrugernes bevidsthed om højbjergte for at fremme deres værdi. Og da han mødte Fan, der ledte efter en plantage til at implementere Seeeds IoTea -teknologi, blev det perfekte match til en løsning.
Trin 3: Hardwareforbindelse
Hardware til dette projekt kan opdeles i 4 dele: Strøm, sensorer, node og gateway. Følgende artikel viser dig, hvordan du gennemfører det trin for trin.
Power del
Power Part indeholder hovedsageligt et solpanel og et litiumbatteri, hvis du bare bygger dette projekt til demonstration, kan du ignorere dem. Eller du kan følge forrige tutorial for at installere nodekraft.
Sensorer del
I Sensors Part, på grund af de mange sensorer, brugte vi en vejrstation og lavede også et akrylbeslag til at installere dem.
Som du ser på billedet ovenfor, digital lyssensor altid på toppen, så den kan indsamle belysningsinformation. De sensorer, der genererer varme, installeres i midten af akrylbeslaget, f.eks. O2 -sensor, støvføler og CO2 -sensor. Endelig temperatur- og fugtighedssensor i bunden af akrylbeslaget.
Desuden er jordtemperatur- og fugtighedsføler installeret alene i jorden. Node del
Node Part er en Seeeduino LoRaWan, der er installeret i en vandtæt boks, den tilsluttes strøm og sensorer via vandled. Blandt dem kan støvsensor tilsluttes LoRaWans digitale pin D3, CO2 -sensor tilsluttes til pin D4 & D5, Jordsensor tilsluttes til pin D6 & D7, O2 -sensor tilsluttes analog pin A1 og lyssensor og barometersensor tilsluttes I2C -port.
BEMÆRK: Der skal tilføjes en 10k modstand mellem jordfølerens blå (data) kabel og røde (Vcc) kabel.
Seeeduino LoRaWan indsamler sensorværdi en gang imellem og sender dem til Gateway via LoRa. Dataformatet som nedenfor:
{
[0], /* Lufttemperatur (℃)* /[1], /* Luftfugtighed (%)* /[2], /* Højde (m) høj byte* /[3], /* Højde (m) lav byte */[4],/ * CO2 -koncentration (PPM) høj byte */[5],/ * CO2 -koncentration (PPM) lav byte */[6],/ * Støvkoncentration (stk/0,01cf) høj byte */[7],/ *Støvkoncentration (stk/0.01cf) lav byte */[8],/ *Lysintensitet (lux) høj byte */[9],/ *Lysintensitet (lux) lav byte */ [10], /* O2 -koncentration (%)* /[11], /* Jordtemperatur (℃)* /[12], /* Jordfugtighed (%)* /[13], /* Batterispænding (V) */ [14]/ *Sensorfejlkode */}
Hver bit i sensorfejlkode -byte har en forskellig betydning, ligesom nedenfor:
{
bit0: 1; / * Barometer sensorfejl */ bit1: 1; / * CO2 -sensorfejl */ bit2: 1; / * Støvfølerfejl */ bit3: 1; / * Lysfølerfejl */ bit4: 1; / * O2 sensorfejl */ bit5: 1; / * Jordfølerfejl */ reserveret: 2; / * Reserveret */}
Gateway del
Gateway Part er en Raspberry Pi, der tilsluttede Gateway -modulet RHF0M301–868 og PRI 2 Bridge RHF4T002, det blev installeret i en vandtæt boks og sluttede til strøm og USB -kamera via vandled. Fordi den bruger specialiseret firmware, skal du følge Seeed Wiki for at konfigurere den.
Trin 4: Software programmering
Som hardware -forbindelse kan softwareprogrammering også opdeles, den kan opdeles i 3 dele: Node, Gateway og websted.
Node del
De fleste drivere, som Node Part kræver, findes allerede i origin_driver -mappen. De følgende biblioteker skal installeres manuelt:
Adafruit_ASFcore
Fordi projektet er kompliceret, anbefaler vi, at du bruger Microsoft Visual Studio i stedet for Arduino IDE. Et plugin kaldet Visual Micro kan hjælpe dig med at bygge et Arduino -projekt ved hjælp af Visual Studio, klik her for mere information.
For bedre læsbarhed og vedligeholdelse bruger vi denne gang objektorienteret programmering. Klassediagrammet over dette projekt ligner nedenfor:
For disse sensorer har allerede OOP -driver, vi pakkede den om for at tilpasse dette projekt, for andre omskrev vi deres drivere ved hjælp af OOP. Sensorklassen i mellemvarelaget bruges til at forene grænseflader mellem rigtige sensorer, for eksempel kan en barometersensor indsamle temperatur, fugtighed og højde på samme tid, så den har 3 grænseflader til at opnå temperatur, fugtighed og højde. Men de har forskellen metode navn, som vil gøre programmet for at erhverve sensorer værdi mere kompliceret, ligesom dette:
barometer-> getTemperature ();
barometer-> getHumidity (); barometer-> getAltitude (); //… another_sensor-> getSomeValue (); //…
Men ved hjælp af OOP ser det sådan ud:
for (auto i = 0; i getValue ();
}
Vi har også pakket en applikationsklasse, den implementerer IApplication -grænseflade, metoden setup () og loop () i IoTea.ino kan kalde setup () og loop () -metoden i Application -objekt.
BEMÆRK: USB Serial bruges KUN til at fejlsøge. Efter fejlfinding bedes du kommentere, at den initialiserer kode i setup () -metoden.
Gateway del
Gateway Part's Python -program i hjemmemappen bruges til at tage fotos og uploade dem til Amazon S3 Server hver time. Inden du bruger det, skal du sørge for, at fswebcam allerede er installeret i din Raspberry Pi:
sudo apt-get update && sudo apt-get install fswebcam
Hvis du vil uploade fotos, skal du konfigurere din AWS ved at følge trinene. Installer først AWS SDK og AWS CLI til din Raspberry Pi ved at bruge disse kommandoer:
sudo pip installer boto3
sudo pip installer awscli
og kør derefter AWS CLI:
sudo aws konfigurere
Konfigurer dit AWS Access Key ID, AWS Secret Access ID og standardregionnavn.
Hvis du ikke kan lide at uploade dine fotos, kan du springe AWS -konfigurationstrin over og kommentere koder om upload i photo.py. For at køre dette program efter opstart af Raspberry Pi hver gang, kan du oprette et filnavnfoto i /etc/init.d og skrive følgende kode til det.
#!/bin/bash
#/etc.: 0 1 6 # Kort beskrivelse: fotografering initscript # Beskrivelse: Denne service bruges til at styre fotografering ### END INIT INFO case "$ 1" i start) ekko "Start med at tage foto" /home/rxhf/photo.py &;; stop) ekko "Stop med at tage foto" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) ekko "Brug: service foto start | stop" exit 1;; esac exit 0
angive udførelsestilladelse
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
og test det
sudo /etc/init.d/photo start
Hvis der ikke er noget problem, skal du stoppe det og tilføje det til opstartsprogrammet
sudo /etc/init.d/photo stop
sudo update-rc.d foto standarder
BEMÆRK: Hvis du vil starte gateway efter Raspberry Pi -opstart, skal du tilføje gateway -startkoder i Seeed Wiki til /etc/rc.local, lad det se sådan ud:
#!/bin/sh -e
# # rc.local # # Dette script udføres i slutningen af hvert flerbrugerniveau. # Sørg for, at scriptet vil "afslutte 0" ved succes eller en anden # værdi ved fejl. # # For at aktivere eller deaktivere dette script skal du bare ændre udførelsen # bits. # # Som standard gør dette script ingenting. # Udskriv IP -adressen _IP = $ (værtsnavn -I) || true if ["$ _IP"]; derefter printf "Min IP -adresse er %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
Internet side
Vi implementerede webstedet på CentOS 7. Følgende trin viser dig, hvordan du implementerer.
Trin 1. Installer Python3
sudo yum -y installer epel -release
sudo yum -y installer python36
Trin 2. Installer Python pip og virtuelt miljø
wget
sudo python36 get-pip.py sudo pip installer virtualenv
Setp 3. Klon vores websted fra GitHub
sudo yum -y installer git
git-klon
Trin 4. Opret og aktiver virtuelt miljø
virtualenv -p python36 iotea -hb
cd iotea-hb kildebakke/aktivere
Trin 5. Installer afhængige biblioteker
pip installer pymysql
pip install dbutils pip install kolbe pip install websocket-client pip install cofigparser
Trin 6. Opret database
sudo yum -y installer mariadb mariabd -server
sudo systemctl aktiver mariadb sudo systemctl start mariadb mysql -uroot -p
og brug derefter iotea_hb.sql til at oprette en tabel.
Trin 7. Opret db.ini, og skriv disse koder til den
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
ændre db.ini's sti i db.py
# i db.py
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Trin 8. Skift port i app.py og start webstedet:
# i app.py
#app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# i terminal
pip installere gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
besøg nu 127.0.0.1:8080 i din webbrowser, du kan se webstedet, men data i realtid vises ikke.
Trin 9. Hent loriot -data
Åbn en anden terminal, genindfør virtuelt miljø og start loriot -appen:
cd iotea-hb
kildebakke/aktivere gunicorn loriot: ca.
Vent et stykke tid, du vil se data, der vises på webstedet, eller du kan ændre wss i loriot.py:
# i loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Trin 5: Betjening
Du kan besøge vores websteder for at se data i realtid:
- I Ya'an
- Til demonstration
Anbefalede:
(OPDATERING - DER ER EN LIDT UDGAVE) USB SPILKONTROLLER TIL PC: 10 trin (med billeder)
(OPDATERING - DER ER EN LIDT UDGAVE) USB GAME CONTROLLER FOR PC: EN GAMING CONTROLLER FOR ALLE SPIL (NÆSTEN)
Blu Media Robot (opdatering): 7 trin
Blu Media Robot (opdatering): blu er en robot, der arbejder med makeblock bundkort og hindbær til elektronikken til den deleliste, du kan købe fra makeblock ligesom mig i begyndelsen, nu har jeg en 3d printer (wanahoa i3 +), og du kan downloade anden del for at udskrive dem på t
Orange Pi Plus 2 - Armbian (på SD -kort eller 16 GB hukommelse!) - Opdatering: 6 trin
Orange Pi Plus 2 - Armbian (på SD -kort eller Onboard 16 GB hukommelse!) - Opdatering: Hej alle sammen! Dette er mit første instruerbare og engelsk er ikke mit modersmål, så vær venlig ikke at være hård ved mig. Til at begynde med, Orange Pi Plus 2 er en vidunderlig lille enhed ligesom en Raspberry Pi, men hurtigere! For Raspberry Pi er der et stort fællesskab
Kortsortering til en handelskortmaskine (opdatering 2019-01-10): 12 trin (med billeder)
Kortsortering til en handelskortmaskine (opdatering 2019-01-10): Kortsortering til en handelskortmaskine Ændringsloggen kan findes i det sidste trin. Baggrunden Jeg forklarede allerede motivationen for mit projekt i kortfremføringsartiklen. Men kort sagt, mine børn og jeg har samlet en stor mængde handelskort
Opdatering af grafikkortdriveren (Windows): 4 trin
Opdatering af din grafikkortdriver (Windows): Navigering gennem indstillingerne på en computer er ofte meget forvirrende og frustrerende, når noget ikke fungerer korrekt, når og hvordan det skal være. Med teknologi kommer der altid noget nyt og forbedret, og det er vigtigt