Indholdsfortegnelse:
- Trin 1: Konfigurer Pi Zero W
- Trin 2: Opret forbindelse til WiFi
- Trin 3: Opdater og installer påkrævet software
- Trin 4: Tilslut til en sensor (i dette eksempel en Arduino)
- Trin 5: Konfigurer WiFi Access Point -muligheder
- Trin 6: Skift mellem Wifi -adgangspunkt og klienttilstande
- Trin 7: Afsluttende bemærkninger
- Trin 8: Eksempel på Python Logging Script
Video: Raspberry Pi Zero W Datalogger: 8 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Ved hjælp af en Raspberry Pi Zero W kan du lave en billig og brugervenlig datalogger, som enten kan tilsluttes et lokalt wifi -netværk eller fungere som et adgangspunkt i feltet, som giver dig mulighed for at downloade data trådløst med din smartphone.
Jeg præsenterede dette setup på American Geophysical Union Fall Meeting 2017, som en måde at lave dit eget datalogger -setup på. Du kan finde den præsentation her.
Det skal du bruge:
- En Raspberry Pi Zero W
- Et micro SD -kort
- et USB -kabel eller en USB -strømforsyning
- En computer med en USB -kortlæser
-
Valgfrit (men nyttigt):
- miniHDMI -> HDMI -adapter (til at forbinde Pi til en skærm)
- USB OTG -adapter (til tilslutning af et tastatur til Pi
Trin 1: Konfigurer Pi Zero W
For at komme i gang skal du sætte et Rasbian-billede på et microSD-kort (i denne vejledning brugte jeg 2017-07-05-raspbian-jessie-lite, tilgængelig her). En lite version kan bruges (uden skrivebord), da opsætningen foretages via kommandolinjen.
Sæt SD -kortet i Pi, tilslut skærmen og et tastatur, og tænd det ved at tilslutte strømkablet. Hovedløs opsætning er også mulig, men det ville kræve forbindelse via SSH.
Efter at Pi har startet login (standard brugernavn: pi, adgangskode: hindbær), og skift adgangskoden med kommandoen "passwd".
Tastaturet kan konfigureres ved at indtaste "sudo raspi-config" i terminalen.
Trin 2: Opret forbindelse til WiFi
For at oprette forbindelse til internettet fortæller vi Pi, hvilket netværk der skal oprettes forbindelse til. Start med at åbne følgende fil;
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Her kan du tilføje netværksoplysningerne i bunden;
netværk = {
ssid = "netværksnavn" psk = "netværksadgangskode"}
I tilfælde af et virksomhedsnetværk kan du bruge følgende opsætning (juster WPA-EAP // TTLA // MSCHAPv2 til de relevante indstillinger).
netværk = {
ssid = "ssid" #Indtast dit netværksnavn key_mgmt = WPA-EAP eap = TTLS identitet = "xxxxx" #Indtast din login-adgangskode = "xxxxx" #Indtast passwork phase2 = "auth = MSCHAPv2"}
Gem ved at trykke på CTRL+O, og afslut med CTRL+X.
Henvis nu til din konfigurationsfil i/etc/network/interfaces
sudo nano/etc/network/interfaces
Skift wlan0 -delen til:
auto wlan0
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Gem igen filen (CTRL+O), og afslut derefter (CTRL+X).
Efter genstart (sudo genstart) skulle din wifi -forbindelse fungere. Du kan teste dette ved at pinge et websted;
ping www.google.com
Annuller pingen med CTRL+C
For at oprette forbindelse til Pi over SSH trådløst skal du aktivere SSH:
sudo raspi-config
Naviger til "5 grænsefladeindstillinger", og aktiver SSH. Gå derefter tilbage og afslut konfigurationen.
Slå IP -adressen til Pi op:
ifconfig
IP'en vil være under "inet addr:" i wlan0 -grænsefladen.
Nu kan du oprette forbindelse til Pi via WiFi, hvis du er på det samme netværk. Download Putty (til Windows), indtast den IP -adresse, du fandt under "Værtsnavn", og tryk på "Åbn". Efter at have accepteret advarslen skal du nu kunne se kommandolinjen og logge ind.
Trin 3: Opdater og installer påkrævet software
Når WiFi fungerer, skal du opdatere Pi'en med:
sudo apt -get update -y && sudo apt -get upgrade -y
Når opdateringen er færdig (det kan tage et stykke tid), skal du installere den software, vi vil bruge med;
sudo apt-get install python3 python3-seriel apache2 -y
Trin 4: Tilslut til en sensor (i dette eksempel en Arduino)
Enten tilslut Arduino sammen med et tastatur ved hjælp af en USB -hub, eller tilslut Arduino via den enkelte USB -port, og foretag opsætningen med SSH over WiFi.
For at få adgang til den serielle port, Arduino er forbundet til, er det nyttigt at give adgang til standard pi -kontoen. Da Arduino normalt er tildelt port "/dev/ttyACM0", skal du bruge følgende kommando til at give 'pi' -brugeren adgang til porten:
sudo chown pi: /dev /ttyACM0
Forudsat at Arduino allerede er konfigureret til at sende data over den serielle port, kan du se dataene i python på følgende måde:
Åben python;
python3
Importer serie:
import seriel
Åbn com -porten:
ser = serial. Serial (port = '/dev/ttyACM0', baudrate = 9600, timeout = 5)
Hvor baudrate for Arduino var indstillet til 9600 i dette tilfælde.
Du kan læse og udskrive en linje ved at køre følgende kode:
ser.readline (). afkode ('utf-8')
Hvis du har det til at fungere, kan du lukke forbindelsen og afslutte Python med:
ser.close ()
Afslut()
Trin 5: Konfigurer WiFi Access Point -muligheder
Ved at konfigurere din Pi Zero W i wifi -adgangspunkttilstand kan du oprette forbindelse til den med enhver wifi -enhed. Dette tillader opsætning af loggeren og download af data via wifi, ingen kabler eller drivere kræves.
Til dette har Adafruit en god tutorial tilgængelig. Nogle små bemærkninger:
- For driveren /etc/hostapd/hostapd.conf skal du ikke bruge driverlinjen.
- "Opdater hostapd" -trinnet burde ikke være nødvendigt.
Hvis adgangspunktet ikke virker i slutningen af selvstudiet, kan du prøve at genstarte Pi (sudo genstart).
Trin 6: Skift mellem Wifi -adgangspunkt og klienttilstande
Nogle gange vil du gerne opdatere software eller installere ny software på din Raspberry Pi, men dette kræver en internetforbindelse. Det er heldigvis meget let at skifte mellem de to.
Tilslut Pi med SSH (over et kabel, ikke wifi!). Start med at stoppe adgangspunktstjenesterne:
sudo cystemctl stop hostapd.service
sudo cystemctl stop isc-dhcp-server.service
Rediger derefter netværksgrænsefladefilen:
sudo nano/etc/network/interfaces
Her bør du kommentere hostingparametrene og fjerne kommentaren til netværksforbindelsesparametrene. Skift det fra dette:
#-Hosting parametre:
allow-hotplug wlan0 iface wlan0 inet statisk adresse 192.168.42.1 netmask 255.255.255.0 # -Network (klient) parametre: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Til dette:
#-Hosting parametre: #allow-hotplug wlan0 #iface wlan0 inet static #adresse 192.168.42.1 #netmask 255.255.255.0 #-Network (client) parameters: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Gem og luk filen.
Dernæst kører du følgende kommandoer:
sudo systemctl start wpa_supplicant.service
sudo ifdown wlan0 sudo ifup wlan0
Nu skal din Pi oprette forbindelse til wifi igen, så du kan opdatere og installere software.
For at komme tilbage til adgangspunktstilstand skal du skifte rundt i kommentarerne i/etc/network/interfaces og genstarte Pi.
Trin 7: Afsluttende bemærkninger
Opsætning af websted
Apache -serveren er placeret i/var/www/. Hvis du vil ændre standardsiden, skal du redigere filen /var/www/html/index.html.
Du kan gøre filer her tilgængelige til download via wifi -forbindelsen ved at navigere i din browser til Pi's IP -adresse (192.168.42.1). Enhver wifi -aktiveret enhed kan derefter downloade dem uden ekstra software.
SFTP -forbindelse
Over SSH kan der oprettes en FTP -forbindelse. Du kan bruge Filezilla til hurtigt og nemt at overføre en stor mængde filer (se billede).
Ur i realtid
Da det interne ur i Pi vil drive betydeligt, hvis der ikke er nogen forbindelse til internettet, vil et realtidsur (RTC) -modul være nødvendigt, hvis nøjagtig tidvisning er påkrævet. Et sådant modul er RasClock, installationsvejledning kan findes her. Andre i2c -baserede ure er også tilgængelige (dvs. DS3231)
Konklusion
Hvis alt gik korrekt, skulle du nu have en fungerende Pi Zero -datalogger! Et eksempel på et python -logningsscript er inkluderet i det næste trin.
Trin 8: Eksempel på Python Logging Script
import os
import seriel fra tid import tid fra datetime import datetime import numpy som np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) bibliotek = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () try: while True: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = directory + day_timestring +'.dat '#Read out data og få straks tidslinjen = ser.readline (). afkode ('utf-8') nu = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') line = line.split (', ') try: u = float (line [1]) undtagen: u = np.nan try: v = float (line [2]) undtagen: v = np.nan try: w = float (linje [3]) undtagen: w = np.nan try: c = float (line [5]) undtagen: c = np.nan Ts = 1/403*c ** 2 - 273,15 prøv: Ta = float (linje [8]) undtagen: Ta = np.nan if (os.path.isfile (file_today)): med åben (file_today, 'a') som fileobject: fileobject.write (nu+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () else: med åben (file_today, 'w') som fileobject: fileobject.write ('"Time", "u", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (nu+', ') fileobject.write (str (u)+', '+str (v)+', '+str (w)+', '+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close () undtagen KeyboardInterrupt: ser.close ()
Anbefalede:
DIY GPS -datalogger til dig næste kørsel/vandresti: 11 trin (med billeder)
DIY GPS -datalogger til dig næste kørsel/vandresti: Dette er en GPS -datalogger, som du kan bruge til flere formål, f.eks. Hvis du vil logge din lange køretur, du tog i weekenden for at tjekke efterårets farver. eller du har et yndlingsspor, du besøger i løbet af efteråret hvert år, og du vil
Alaska Datalogger: 5 trin (med billeder)
Alaska Datalogger: Alaska er på kanten til at fremme klimaforandringer. Dens unikke position at have et temmelig uberørt landskab befolket med en række kulminekanarier muliggør mange forskningsmuligheder. Vores ven Monty er en arkæolog, der hjælper med at
Arduino Datalogger: 8 trin (med billeder)
Arduino Datalogger: I denne vejledning skal vi lave en simpel datalogger ved hjælp af Arduino. Pointen er at lære det grundlæggende ved at bruge Arduino til at indsamle information og udskrive til terminalen. Vi kan bruge denne grundlæggende opsætning til at fuldføre en række opgaver. For at komme i gang
Sådan laver du en datalogger for temperatur, PH og opløst ilt: 11 trin (med billeder)
Sådan laver du en datalogger til temperatur, PH og opløst ilt: Mål: Lav en datalogger til ≤ $ 500. Det gemmer data for temperatur, pH og DO med et tidsstempel og ved hjælp af I2C -kommunikation. Hvorfor I2C (interintegreret kredsløb)? Man kan stable så mange sensorer i samme linje, da hver af dem har
Lav en datalogger med Raspberry Pi: 3 trin (med billeder)
Lav en datalogger med Raspberry Pi: Denne enkle datalogger tager regelmæssige lysmålinger med en analog LDR (fotoresistor) og gemmer dem i en tekstfil på din Raspberry Pi. Denne datalogger måler og registrerer lysniveauet hvert 60. sekund, så du kan overvåge ho