Innholdsfortegnelse:
- Trinn 1: Sett opp Pi Zero W
- Trinn 2: Koble til WiFi
- Trinn 3: Oppdater og installer nødvendig programvare
- Trinn 4: Koble til en sensor (i dette eksemplet en Arduino)
- Trinn 5: Sett opp WiFi -tilgangspunktfunksjoner
- Trinn 6: Bytte mellom Wifi -tilgangspunkt og klientmoduser
- Trinn 7: Avsluttende kommentarer
- Trinn 8: Eksempel på Python Logging Script
Video: Raspberry Pi Zero W Datalogger: 8 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Ved å bruke en Raspberry Pi Zero W kan du lage en billig og brukervennlig datalogger, som enten kan kobles til et lokalt wifi -nettverk, eller fungere som et tilgangspunkt i feltet som lar deg laste ned data trådløst med smarttelefonen din.
Jeg presenterte dette oppsettet på American Geophysical Union Fall Meeting 2017, som en måte å lage ditt eget dataloggeroppsett. Du finner presentasjonen her.
Dette trenger du:
- En Raspberry Pi Zero W
- Et micro SD -kort
- en USB -kabel eller USB -strømforsyning
- En datamaskin med en USB -kortleser
-
Valgfritt (men nyttig):
- miniHDMI -> HDMI -adapter (for å koble Pi til en skjerm)
- USB OTG -adapter (for å koble et tastatur til Pi
Trinn 1: Sett opp Pi Zero W
For å komme i gang, legg et Rasbian-bilde på et microSD-kort (i denne opplæringen brukte jeg 2017-07-05-raspbian-jessie-lite, tilgjengelig her). En lite versjon kan brukes (uten skrivebord) ettersom oppsettet gjøres via kommandolinjen.
Sett inn SD -kortet i Pi, koble til skjermen og et tastatur, og slå det på ved å koble til strømkabelen. Hodeløst oppsett er også mulig, men vil kreve tilkobling via SSH.
Etter at Pi har startet opp pålogging (standard brukernavn: pi, passord: bringebær), og endre passordet med kommandoen "passwd".
Tastaturet kan konfigureres ved å skrive inn "sudo raspi-config" i terminalen.
Trinn 2: Koble til WiFi
For å koble til internett, forteller vi Pi hvilket nettverk du skal koble til. Start med å åpne følgende fil;
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Her legger du til nettverksinformasjonen nederst;
nettverk = {
ssid = "nettverksnavn" psk = "nettverkspassord"}
Når det gjelder et bedriftsnettverk, kan du bruke følgende oppsett (juster WPA-EAP // TTLA // MSCHAPv2 til gjeldende innstillinger).
nettverk = {
ssid = "ssid" #Skriv inn nettverksnavnet ditt key_mgmt = WPA-EAP eap = TTLS identitet = "xxxxx" #Skriv inn påloggingspassordet ditt "xxxxx" #Skriv inn passwork phase2 = "auth = MSCHAPv2"}
Lagre ved å trykke CTRL+O, og avslutt med CTRL+X.
Referer nå til konfigurasjonsfilen i/etc/network/interfaces
sudo nano/etc/network/interfaces
Endre wlan0 -delen til:
auto wlan0
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Lagre igjen filen (CTRL+O) og avslutt (CTRL+X).
Etter omstart (sudo reboot), bør wifi -tilkoblingen din fungere. Du kan teste dette ved å pinge et nettsted;
ping www.google.com
Avbryt pingen med CTRL+C
For å koble til Pi over SSH trådløst, bør du aktivere SSH:
sudo raspi-config
Naviger til "5 grensesnittalternativer", og aktiver SSH. Gå deretter tilbake og avslutt konfigurasjonen.
Slå opp IP -adressen til Pi:
ifconfig
IP -adressen vil være under "inet addr:" i wlan0 -grensesnittet.
Nå kan du koble til Pi over WiFi, hvis du er på samme nettverk. Last ned Putty (for Windows), skriv inn IP -adressen du fant under "Host Name", og trykk "Open". Etter å ha godtatt advarselen skal du nå kunne se kommandolinjen og logge inn.
Trinn 3: Oppdater og installer nødvendig programvare
Etter at WiFi fungerer, oppdaterer du Pi med:
sudo apt -get update -y && sudo apt -get upgrade -y
Etter at oppdateringen er ferdig (det kan ta en stund), installerer du programvaren vi skal bruke med;
sudo apt-get install python3 python3-serial apache2 -y
Trinn 4: Koble til en sensor (i dette eksemplet en Arduino)
Enten koble Arduino sammen med et tastatur ved hjelp av en USB -hub, eller koble Arduino via den eneste USB -porten, og gjør oppsettet med SSH over WiFi.
For å få tilgang til den serielle porten Arduino er koblet til, er det nyttig å gi tilgang til standard pi -kontoen. Siden Arduino vanligvis er tilordnet port "/dev/ttyACM0", bruker du følgende kommando for å gi 'pi' brukeren tilgang til porten:
sudo chown pi: /dev /ttyACM0
Forutsatt at Arduino allerede er konfigurert for å sende data over den serielle porten, kan du se dataene i python på følgende måte:
Åpen python;
python3
Importer serie:
importer serie
Åpne com -porten:
ser = serial. Serial (port = '/dev/ttyACM0', baudrate = 9600, timeout = 5)
Hvor baudraten til Arduino ble satt til 9600 i dette tilfellet.
Du kan lese og skrive ut en linje ved å kjøre følgende kode:
ser.readline (). dekode ('utf-8')
Hvis du har det til å fungere, kan du lukke tilkoblingen og avslutte Python med:
ser.close ()
exit()
Trinn 5: Sett opp WiFi -tilgangspunktfunksjoner
Ved å sette opp din Zero W i modus for wifi -tilgangspunkt, kan du koble til den med hvilken som helst wifi -enhet. Dette gjør det mulig å konfigurere loggeren og laste ned data via wifi, ingen kabler eller drivere kreves.
For dette har Adafruit en god opplæring tilgjengelig. Noen små bemerkninger:
- For /etc/hostapd/hostapd.conf -driveren, bruk ikke bruk driverlinjen.
- Trinnet "Oppdater hostapd" bør ikke være nødvendig.
Hvis tilgangspunktet ikke fungerer på slutten av opplæringen, kan du prøve å starte Pi på nytt (sudo reboot).
Trinn 6: Bytte mellom Wifi -tilgangspunkt og klientmoduser
Noen ganger vil du oppdatere programvare eller installere ny programvare på Raspberry Pi, men dette krever en internettforbindelse. Heldigvis er det veldig enkelt å bytte mellom de to.
Koble til Pi med SSH (over en kabel, ikke wifi!). Start med å stoppe tilgangspunktstjenestene:
sudo cystemctl stopp hostapd.service
sudo cystemctl stopp isc-dhcp-server.service
Rediger deretter nettverksgrensesnittfilen:
sudo nano/etc/network/interfaces
Her bør du kommentere hostingparametrene og fjerne kommentaren til nettverkstilkoblingsparametrene. Endre det fra dette:
#-Hosting parametere:
tillat-hotplug wlan0 iface wlan0 inet statisk adresse 192.168.42.1 netmask 255.255.255.0 # -Nettverk (klient) parametere: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Til dette:
#-Hosting-parametere: #allow-hotplug wlan0 #iface wlan0 inet static #address 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
Lagre og lukk filen.
Deretter kjører du følgende kommandoer:
sudo systemctl start wpa_supplicant.service
sudo ifdown wlan0 sudo ifup wlan0
Nå skal Pi koble til wifi igjen, slik at du kan oppdatere og installere programvare.
For å komme tilbake til tilgangspunktmodus, bytt rundt kommentarene i/etc/network/interfaces, og start Pi på nytt.
Trinn 7: Avsluttende kommentarer
Oppsett av nettsted
Apache -serveren ligger i/var/www/. For å endre standardsiden, rediger /var/www/html/index.html -filen.
Du kan gjøre filer tilgjengelig for nedlasting via wifi -tilkoblingen, ved å navigere i nettleseren til Pi -IP -adressen (192.168.42.1). Enhver wifi -aktivert enhet kan deretter laste dem ned uten ekstra programvare.
SFTP -tilkobling
Over SSH kan en FTP -tilkobling opprettes. Du kan bruke Filezilla til raskt og enkelt å overføre en stor mengde filer (se bilde).
Sanntidsklokke
Siden den interne klokken til Pi vil drive betydelig hvis det ikke er tilkobling til internett, vil en sanntidsklokke (RTC) -modul være nødvendig hvis nøyaktig tidvisning er nødvendig. En slik modul er RasClock, installasjonsinstruksjoner finner du her. Andre i2c -baserte klokker er også tilgjengelige (dvs. DS3231)
Konklusjon
Hvis alt gikk riktig, burde du nå ha en fungerende Pi Zero -datalogger! Et eksempel på python -loggskript er inkludert i neste trinn.
Trinn 8: Eksempel på Python Logging Script
import os
import serial from time import time from datetime import datetime import numpy as np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) directory = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () prøv: mens True: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = katalog + day_timestring +'.dat '#Les ut data og få umiddelbart tidslinjen = ser.readline (). dekode ('utf-8') nå = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') line = line.split (', ') try: u = float (line [1]) unntatt: u = np.nan try: v = float (line [2]) unntatt: v = np.nan prøve: w = float (linje [3]) unntatt: w = np.nan try: c = float (line [5]) unntatt: c = np.nan Ts = 1/403*c ** 2 - 273,15 prøv: Ta = float (linje [8]) unntatt: Ta = np.nan if (os.path.isfile (file_today)): med åpen (file_today, 'a') som fileobject: fileobject.write (nå+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () else: med åpen (file_today, 'w') som fileobject: fileobject.write ('"Time", "u", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (nåtid+', ') fileobject.write (str (u)+', '+str (v)+', '+str (w)+', '+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close () unntatt KeyboardInterrupt: ser.close ()
Anbefalt:
DIY GPS -datalogger for deg neste kjøretur/tursti: 11 trinn (med bilder)
DIY GPS -datalogger for deg neste kjøretur/tursti: Dette er en GPS -datalogger som du kan bruke til flere formål, si at hvis du vil logge den lange kjøreturen du tok i løpet av helgen for å sjekke høstfargene. eller du har en favorittsti du besøker i løpet av høsten hvert år, og du
Alaska Datalogger: 5 trinn (med bilder)
Alaska Datalogger: Alaska er på kanten til å fremme klimaendringer. Den unike posisjonen til å ha et ganske uberørt landskap befolket med en rekke kullgruve -kanarifugler muliggjør mange forskningsmuligheter. Vår venn Monty er en arkeolog som hjelper
Arduino Datalogger: 8 trinn (med bilder)
Arduino Datalogger: I denne opplæringen skal vi lage en enkel datalogger ved hjelp av Arduino. Poenget er å lære det grunnleggende om å bruke Arduino for å fange informasjon og skrive ut til terminalen. Vi kan bruke dette grunnleggende oppsettet til å fullføre en rekke oppgaver. For å starte
Hvordan lage en datalogger for temperatur, PH og oppløst oksygen: 11 trinn (med bilder)
Hvordan lage en datalogger for temperatur, PH og oppløst oksygen: Mål: Lag en datalogger for ≤ $ 500. Den lagrer data for temperatur, pH og DO med et tidsstempel og bruker I2C -kommunikasjon. Hvorfor I2C (interintegrert krets)? Man kan stable opp så mange sensorer på samme linje gitt at hver av dem har
Lag en datalogger med Raspberry Pi: 3 trinn (med bilder)
Lage en datalogger med Raspberry Pi: Denne enkle dataloggeren tar regelmessige lysmålinger med en analog LDR (fotoresistor) og lagrer dem i en tekstfil på din Raspberry Pi. Denne dataloggeren måler og registrerer lysnivået hvert 60. sekund, slik at du kan overvåke ho