INHOUDSOPGAWE:
- Stap 1: Stel Pi Zero W op
- Stap 2: Koppel aan WiFi
- Stap 3: Dateer die nodige sagteware op en installeer dit
- Stap 4: Koppel aan 'n sensor (in hierdie voorbeeld 'n Arduino)
- Stap 5: Stel WiFi -toegangspuntfunksies op
- Stap 6: Skakel tussen Wifi -toegangspunt en kliëntmodusse
- Stap 7: Laaste opmerkings
- Stap 8: Voorbeeld Python Logging Script
Video: Raspberry Pi Zero W -datalogger: 8 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Met 'n Raspberry Pi Zero W kan u 'n goedkoop en maklik gebruikbare datalogger maak, wat óf aan 'n plaaslike wifi -netwerk gekoppel kan word, of as 'n toegangspunt kan dien in die veld waarmee u data draadloos met u slimfoon kan aflaai.
Ek het hierdie opstelling tydens die American Geophysical Union Fall Meeting 2017 aangebied, as 'n manier om u eie datalogger op te stel. U kan die aanbieding hier vind.
Wat u benodig:
- 'N Framboos Pi Zero W
- 'N Micro SD -kaart
- 'n USB -kabel of USB -kragbron
- 'N Rekenaar met 'n USB -kaartleser
-
Opsioneel (maar nuttig):
- miniHDMI -> HDMI -adapter (om die Pi aan 'n skerm te koppel)
- USB OTG -adapter (om 'n sleutelbord aan die Pi te koppel
Stap 1: Stel Pi Zero W op
Om te begin, plaas 'n Rasbian-prent op 'n microSD-kaart (in hierdie handleiding het ek 2017-07-05-raspbian-jessie-lite gebruik, hier beskikbaar). 'N Lite weergawe kan gebruik word (sonder 'n lessenaar), aangesien die opstelling via die opdragreël gedoen sal word.
Plaas die SD -kaart in die Pi, koppel die skerm en 'n sleutelbord aan, en skakel dit aan deur die kragkabel aan te sluit. Dit is ook moontlik om koploos op te stel, maar dit benodig verbinding via SSH.
Nadat die Pi die aanmelding begin het (standaard gebruikersnaam: pi, wagwoord: framboos) en verander u die wagwoord met die opdrag "passwd".
Die sleutelbord kan gekonfigureer word deur "sudo raspi-config" in die terminaal in te voer.
Stap 2: Koppel aan WiFi
Om aan die internet te koppel, sal ons die Pi vertel met watter netwerk. Begin deur die volgende lêer oop te maak;
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Voeg hierin die netwerkinligting onderaan by;
netwerk = {
ssid = "netwerknaam" psk = "netwerkwagwoord"}
In die geval van 'n ondernemingsnetwerk, kan u die volgende opstelling gebruik (pas WPA-EAP // TTLA // MSCHAPv2 aan by die toepaslike instellings).
netwerk = {
ssid = "ssid" #Gee jou netwerknaam in key_mgmt = WPA-EAP eap = TTLS identiteit = "xxxxx" #Voer jou aanmeld rekening rekening wagwoord = "xxxxx" in #Voer die paswoord in fase2 = "auth = MSCHAPv2"}
Stoor deur CTRL+O te druk en verlaat met CTRL+X.
Verwys nou na u konfigurasielêer in/etc/network/interfaces
sudo nano/etc/network/interfaces
Verander die wlan0 -gedeelte na:
outomaties wlan0
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Stoor weer die lêer (CTRL+O) en verlaat dan (CTRL+X).
Na herlaai (sudo herlaai) behoort u wifi -verbinding te werk. U kan dit toets deur 'n webwerf te ping;
ping www.google.com
Kanselleer die ping met CTRL+C
Om draadloos aan die Pi via SSH te koppel, moet u SSH aktiveer:
sudo raspi-config
Gaan na "5 koppelvlakopsies" en aktiveer SSH. Gaan dan terug en verlaat die konfigurasie.
Soek die IP -adres van die Pi op:
ifconfig
Die IP sal onder "inet addr:" van die wlan0 -koppelvlak wees.
U kan nou via WiFi aan die Pi koppel as u op dieselfde netwerk is. Laai Putty af (vir Windows), voer die IP -adres in wat u onder "Gasheernaam" gevind het en druk op "Open". Nadat u die waarskuwing aanvaar het, behoort u die opdragreël te sien en aan te meld.
Stap 3: Dateer die nodige sagteware op en installeer dit
Nadat WiFi werk, werk die Pi op met:
sudo apt -get update -y && sudo apt -get upgrade -y
Nadat die opdatering voltooi is (dit kan 'n rukkie neem), installeer u die sagteware waarmee ons dit sal gebruik;
sudo apt-get install python3 python3-seriële apache2 -y
Stap 4: Koppel aan 'n sensor (in hierdie voorbeeld 'n Arduino)
Sluit die Arduino aan met 'n sleutelbord met 'n USB -hub, of koppel die Arduino via die enkele USB -poort en voer die opstelling uit met SSH via WiFi.
Om toegang te verkry tot die seriële poort waarmee die Arduino gekoppel is, is dit handig om toegang tot die standaard pi -rekening te gee. Aangesien die Arduino gewoonlik aan poort "/dev/ttyACM0" toegewys word, gebruik die volgende opdrag om die 'pi' -gebruiker toegang tot die poort te gee:
sudo chown pi: /dev /ttyACM0
As ons aanvaar dat die Arduino reeds ingestel is om data oor die seriële poort te stuur, kan u die data in python op die volgende manier sien:
Maak luislang oop;
luislang 3
Voer reeks in:
invoer reeks
Maak die com -poort oop:
ser = serial. Serial (poort = '/dev/ttyACM0', baudrate = 9600, time -out = 5)
Waar die baudrate van die Arduino in hierdie geval op 9600 gestel is.
U kan 'n reël lees en druk deur die volgende kode te gebruik:
ser.readline (). dekodeer ('utf-8')
As dit werk, kan u die verbinding sluit en Python verlaat met:
ser.close ()
uitgang ()
Stap 5: Stel WiFi -toegangspuntfunksies op
Deur u Pi Zero W in die wifi -toegangspuntmodus op te stel, kan u daaraan koppel met enige wifi -toestel. Hiermee kan u die logger instel en data via wifi aflaai, sonder kabels of bestuurders nie.
Hiervoor het Adafruit 'n goeie handleiding beskikbaar. 'N Paar klein opmerkings:
- Gebruik nie die bestuurderslyn vir die bestuurder /etc/hostapd/hostapd.conf nie.
- Die stap "Update hostapd" moet nie nodig wees nie.
As die toegangspunt aan die einde van die tutoriaal nie werk nie, probeer dan om die Pi weer te begin (sudo herlaai).
Stap 6: Skakel tussen Wifi -toegangspunt en kliëntmodusse
Soms wil u sagteware opdateer of nuwe sagteware op u Raspberry Pi installeer, maar dit vereis 'n internetverbinding. Gelukkig is dit baie maklik om tussen die twee te skakel.
Koppel aan die Pi met SSH (via 'n kabel, nie wifi nie!). Begin deur die toegangspuntdienste te stop:
sudo cystemctl stop hostapd.service
sudo cystemctl stop isc-dhcp-server.service
Wysig dan die netwerk -koppelvlaklêer:
sudo nano/etc/network/interfaces
Hier moet u kommentaar lewer op die gasheerparameters en die kommentaar op die netwerkverbindingsparameters ongedaan maak. Verander dit hieruit:
#-Hostingsparameters:
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
Tot hierdie:
#-Hostingsparameters: #allow-hotplug wlan0 #iface wlan0 inet static #adres 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
Stoor en maak die lêer toe.
Vervolgens voer u die volgende opdragte uit:
sudo systemctl begin wpa_supplicant.service
sudo ifdown wlan0 sudo ifup wlan0
Nou moet u Pi weer verbinding maak met wifi, sodat u sagteware kan bywerk en installeer.
Om terug te keer na die toegangspuntmodus, skakel die opmerkings in/etc/network/interfaces om en herlaai die Pi.
Stap 7: Laaste opmerkings
Webwerf opstel
Die apache -bediener is geleë in/var/www/. Wysig die /var/www/html/index.html lêer om die standaardbladsy te verander.
U kan lêers hier beskikbaar stel om af te laai via die wifi -verbinding deur u blaaier na die IP -adres van die Pi (192.168.42.1) te navigeer. Elke toestel met wifi kan dit dan aflaai sonder enige ekstra sagteware.
SFTP -verbinding
Met SSH kan 'n FTP -verbinding gemaak word. U kan Filezilla gebruik om 'n groot hoeveelheid lêers vinnig en maklik oor te dra (sien prent).
Real -time klok
Aangesien die interne klok van die Pi aansienlik sal dryf as daar geen verbinding met die internet is nie, is 'n real -time klok (RTC) -module nodig as akkurate tydsberekening benodig word. Een so 'n module is die RasClock; installasie -instruksies kan hier gevind word. Ander horlosies gebaseer op i2c is ook beskikbaar (bv. DS3231)
Afsluiting
As alles reg verloop, moet u nou 'n werkende Pi Zero -datalogger hê! In die volgende stap is 'n voorbeeld van 'n python -aantekeningskrip ingesluit.
Stap 8: Voorbeeld Python Logging Script
invoer 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 () probeer: terwyl True: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = directory + day_timestring +'.dat ' #Lees uit data en kry onmiddellik die tydlyn = ser.readline (). dekodeer ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') line = line.split (', ') try: u = float (line [1]) behalwe: u = np.nan try: v = float (line [2]) behalwe: v = np.nan try: w = float (reël [3]) behalwe: w = np.nan try: c = float (reël [5]) behalwe: c = np.nan Ts = 1/403*c ** 2 - 273,15 probeer: Ta = float (reël [8]) behalwe: Ta = np.nan as (os.path.isfile (file_today)): met open (file_today, 'a') as fileobject: fileobject.write (nowtime+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () anders: met oop (file_today, 'w') as fileobject: fileobject.write ('"Time", "u", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (nou+', ') fileobject.write (str (u)+', '+str (v)+', '+str (w)+', '+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close () behalwe KeyboardInterrupt: ser.close ()
Aanbeveel:
YouTube-intekenaarteller met 'n e-papierskerm en Raspberry Pi Zero W: 5 stappe (met foto's)
YouTube-intekenaarteller met 'n e-papierskerm en Raspberry Pi Zero W: In hierdie instruksies sal ek jou wys hoe om jou eie Youtube-intekenaarteller te bou met behulp van 'n e-papiervertoning en 'n Raspberry Pi Zero W om navraag te doen na die YouTube API en werk die skerm op. E-papier-uitstallings is ideaal vir hierdie tipe projekte, aangesien dit
Astrofotografie Met die Raspberry Pi Zero: 11 stappe (met foto's)
Astrofotografie Met die Raspberry Pi Zero .: Ek het nog twee ander kameraprojekte op Raspberry Pi gemaak [1] [2]. Dit, my derde kamera -idee, is my eerste Raspberry Pi Zero -projek. Dit is ook my eerste keer dat ek by Astrofotografie gaan! Deur die onlangse 'Supermaan' wou ek my broer kry
Maak u eie omgevingsbeligting met die Raspberry Pi Zero: 5 stappe (met foto's)
Maak u eie omgevingsbeligting met die Raspberry Pi Zero: In hierdie projek sal ek u wys hoe u 'n Raspberry Pi Zero met 'n paar komplementêre dele kan kombineer om 'n omringende beligtingseffek op u TV te gee, wat die kykervaring verbeter. Laat ons begin
Raspberry Pi Zero Wifi -toegangspunt met 'n pasgemaakte PCB -antenne: 6 stappe (met foto's)
Raspberry Pi Zero Wifi -toegangspunt met 'n pasgemaakte PCB -antenna: wat maak ons? Die titel van hierdie tutoriaal bevat baie tegniese terme. Kom ons breek dit af. Wat is 'n Raspberry Pi Zero (Rπ0)? 'N Raspberry Pi Zero is 'n klein rekenaar. Dit is die kleiner weergawe van die Raspberry Pi -enkelbordrekenaar
Draagbare tas met battery vir Raspberry Pi Zero W (EN/FR): 5 stappe (met foto's)
Draagbare omhulsel met battery vir Raspberry Pi Zero W (EN/FR): EN Hierdie gids sal verduidelik hoe u 'n 'draagbare rekenaar' kan maak " met 'n Raspberry Pi -nul, 'n Iphone -battery en 'n paar elektroniese modules FRCe gids verduidelik die kommentaar fabriquer un " Ordinateur Portable " met Raspberry Pi zero, een