Sommario:
- Passaggio 1: imposta Pi Zero W
- Passaggio 2: connettiti al WiFi
- Passaggio 3: aggiorna e installa il software richiesto
- Passaggio 4: collegamento a un sensore (in questo esempio un Arduino)
- Passaggio 5: configurare le funzionalità del punto di accesso WiFi
- Passaggio 6: passaggio tra punto di accesso Wi-Fi e modalità client
- Passaggio 7: osservazioni finali
- Passaggio 8: esempio di script di registrazione Python
Video: Datalogger Raspberry Pi Zero W: 8 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Utilizzando un Raspberry Pi Zero W, puoi realizzare un datalogger economico e facile da usare, che può essere collegato a una rete wifi locale o fungere da punto di accesso sul campo che ti consente di scaricare dati in modalità wireless con il tuo smartphone.
Ho presentato questa configurazione all'American Geophysical Union Fall Meeting 2017, come un modo per creare la tua configurazione del data logger. Puoi trovare quella presentazione qui.
Di cosa avrai bisogno:
- Un Raspberry Pi Zero W
- Una scheda microSD
- un cavo USB o un alimentatore USB
- Un computer con un lettore di schede USB
-
Facoltativo (ma utile):
- miniHDMI -> adattatore HDMI (per collegare il Pi a uno schermo)
- Adattatore USB OTG (per collegare una tastiera al Pi
Passaggio 1: imposta Pi Zero W
Per iniziare, metti un'immagine Rasbian su una scheda microSD (in questo tutorial ho usato 2017-07-05-raspbian-jessie-lite, disponibile qui). È possibile utilizzare una versione lite (senza desktop) poiché la configurazione verrà eseguita tramite la riga di comando.
Inserisci la scheda SD nel Pi, collega lo schermo e una tastiera e accendilo collegando il cavo di alimentazione. È anche possibile la configurazione senza testa, ma richiederebbe la connessione tramite SSH.
Dopo che il Pi si è avviato, accedi (nome utente predefinito: pi, password: raspberry) e cambia la password con il comando "passwd".
La tastiera può essere configurata digitando "sudo raspi-config" nel terminale.
Passaggio 2: connettiti al WiFi
Per connettersi a Internet, diremo al Pi a quale rete connettersi. Inizia aprendo il seguente file;
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Qui, aggiungi le informazioni di rete in basso;
rete={
ssid="nome rete" psk="password di rete" }
Nel caso di una rete aziendale, è possibile utilizzare la seguente configurazione (regolare WPA-EAP // TTLA // MSCHAPv2 alle impostazioni applicabili).
rete={
ssid="ssid" #Inserisci il nome della tua rete key_mgmt=WPA-EAP eap=TTLS identity="xxxxx" #Inserisci la password del tuo account di accesso="xxxxx" #Inserisci la password phase2="auth=MSCHAPv2" }
Salva premendo CTRL+O ed esci con CTRL+X.
Ora fai riferimento al tuo file di configurazione in /etc/network/interfaces
sudo nano /etc/network/interfaces
Cambia la parte wlan0 in:
auto wlan0
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Di nuovo, salva il file (CTRL+O) e poi esci (CTRL+X).
Dopo il riavvio (sudo reboot), la connessione Wi-Fi dovrebbe funzionare. Puoi testarlo eseguendo il ping di un sito web;
ping www.google.com
Annulla il ping con CTRL+C
Per connetterti al Pi tramite SSH in modalità wireless, dovresti abilitare SSH:
sudo raspi-config
Vai a "5 opzioni di interfaccia" e abilita SSH. Quindi torna indietro ed esci dalla configurazione.
Cerca l'indirizzo IP del Pi:
ifconfig
L'IP sarà sotto "inet addr:" dell'interfaccia wlan0.
Ora puoi connetterti al Pi tramite WiFi, se sei sulla stessa rete. Scarica Putty (per Windows), inserisci l'indirizzo IP che hai trovato sotto "Nome host" e premi "Apri". Dopo aver accettato l'avviso, ora dovresti essere in grado di vedere la riga di comando e accedere.
Passaggio 3: aggiorna e installa il software richiesto
Dopo che il WiFi funziona, aggiorna il Pi con:
sudo apt-get update -y && sudo apt-get upgrade -y
Al termine dell'aggiornamento (potrebbe volerci un po' di tempo), installa il software con cui utilizzeremo;
sudo apt-get install python3 python3-serial apache2 -y
Passaggio 4: collegamento a un sensore (in questo esempio un Arduino)
Collega l'Arduino insieme a una tastiera utilizzando un hub USB, oppure collega l'Arduino tramite la singola porta USB ed esegui la configurazione con SSH tramite WiFi.
Per poter accedere alla porta seriale a cui è connesso Arduino, è utile dare accesso all'account pi predefinito. Poiché Arduino di solito è assegnato alla porta "/dev/ttyACM0", usa il seguente comando per dare all'utente 'pi' l'accesso alla porta:
sudo chown pi: /dev/ttyACM0
Supponendo che Arduino sia già stato configurato per inviare dati tramite la porta seriale, è possibile visualizzare i dati in python nel modo seguente:
Pitone aperto;
pitone3
Importa seriale:
importazione seriale
Apri la porta COM:
ser = serial. Serial(port = '/dev/ttyACM0', baudrate = 9600, timeout = 5)
Dove il baudrate dell'Arduino è stato impostato su 9600 in questo caso.
Puoi leggere e stampare una riga eseguendo il codice seguente:
ser.readline().decode('utf-8')
Se funziona, puoi chiudere la connessione ed uscire da Python con:
ser.close()
Uscita()
Passaggio 5: configurare le funzionalità del punto di accesso WiFi
Impostando il tuo Pi Zero W in modalità access point wifi, puoi connetterti ad esso con qualsiasi dispositivo wifi. Ciò consente di configurare il logger e scaricare i dati tramite Wi-Fi, senza bisogno di cavi o driver.
Per questo, Adafruit ha a disposizione un buon tutorial. Alcune piccole osservazioni:
- Per il driver /etc/hostapd/hostapd.conf, utilizzare non utilizzare la riga del driver.
- Il passaggio "Aggiorna hostapd" non dovrebbe essere necessario.
Se il punto di accesso non funziona alla fine del tutorial, prova a riavviare il Pi (sudo reboot).
Passaggio 6: passaggio tra punto di accesso Wi-Fi e modalità client
A volte vorrai aggiornare il software o installare nuovo software sul tuo Raspberry Pi, ma ciò richiede una connessione Internet. Fortunatamente il passaggio tra i due è molto semplice.
Connettiti al Pi con SSH (tramite cavo, non wifi!). Inizia arrestando i servizi del punto di accesso:
sudo cystemctl stop hostapd.service
sudo cystemctl stop isc-dhcp-server.service
Quindi modificare il file delle interfacce di rete:
sudo nano /etc/network/interfaces
Qui dovresti commentare i parametri di hosting e decommentare i parametri di connessione di rete. Cambialo da questo:
#-Parametri di hosting:
allow-hotplug wlan0 iface wlan0 inet indirizzo statico 192.168.42.1 netmask 255.255.255.0 #-Parametri di rete (client): #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
A questa:
#-Parametri di hosting:#allow-hotplug wlan0 #iface wlan0 inet static # address 192.168.42.1 # netmask 255.255.255.0 #-Parametri di rete (client): auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Salva e chiudi il file.
Successivamente esegui i seguenti comandi:
sudo systemctl start wpa_supplicant.service
sudo ifdown wlan0 sudo ifup wlan0
Ora il tuo Pi dovrebbe connettersi di nuovo al wifi, consentendoti di aggiornare e installare il software.
Per tornare alla modalità punto di accesso, cambia i commenti in /etc/network/interfaces e riavvia il Pi.
Passaggio 7: osservazioni finali
Configurazione del sito web
Il server Apache si trova in /var/www/. Per cambiare la pagina predefinita, modificare il file /var/www/html/index.html.
Puoi rendere i file disponibili per il download tramite la connessione wifi, navigando nel tuo browser fino all'indirizzo IP del Pi (192.168.42.1). Qualsiasi dispositivo abilitato al wifi può quindi scaricarli senza alcun software aggiuntivo.
Connessione SFTP
Tramite SSH è possibile stabilire una connessione FTP. Puoi utilizzare Filezilla per trasferire rapidamente e facilmente una grande quantità di file (vedi immagine).
Orologio in tempo reale
Poiché l'orologio interno del Pi si sposterà in modo significativo se non c'è connessione a Internet, sarà necessario un modulo orologio in tempo reale (RTC) se è necessaria un'accurata misurazione dell'ora. Uno di questi moduli è il RasClock, le istruzioni di installazione possono essere trovate qui. Sono disponibili anche altri clock basati su i2c (es. DS3231)
Conclusione
Se tutto è andato bene, ora dovresti avere un datalogger Pi Zero funzionante! Un esempio di script di registrazione Python è incluso nel passaggio successivo.
Passaggio 8: esempio di script di registrazione Python
importare il sistema operativo
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() try: while True: day_timestring = datetime.strftime(datetime.now(), '%Y%m%d') file_today = directory + day_timestring + '.dat' #Leggi ad alta voce data e ottieni immediatamente la timeline = ser.readline().decode('utf-8') nowtime = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:% S.%f') line = line.split(', ') try: u = float(line[1]) tranne: u = np.nan try: v = float(line[2]) tranne: v = np.nan try: w = float(line[3]) tranne: w = np.nan try: c = float(line[5]) tranne: c = np.nan Ts = 1/403 * c**2 - 273,15 prova: Ta = float(line[8]) tranne: Ta = np.nan if (os.path.isfile(file_today)): con open(file_today, 'a') come fileobject: fileobject.write(nowtime+', ') fileobject.write(str(u)+', '+str(v)+', '+str(w)+', '+str(c)+', '+str(Ts)+', '+ str(Ta)+'\n') fileobject.clos e() else: con open(file_today, 'w') come fileobject: fileobject.write('"Time", "u", "v", "w", "c", "Ts", "Ta"\ n') fileobject.write(nowtime+', ') fileobject.write(str(u)+', '+str(v)+', '+str(w)+', '+str(c)+', '+str(Ts)+', '+str(Ta)+'\n') fileobject.close() eccetto KeyboardInterrupt: ser.close()
Consigliato:
Astrofotografia con il Raspberry Pi Zero.: 11 Passaggi (con Immagini)
Astrofotografia con il Raspberry Pi Zero.: Ho già realizzato altri due progetti di fotocamere basati su Raspberry Pi [1] [2]. Questa, la mia terza idea per la fotocamera, è il mio primo progetto Raspberry Pi Zero. Questo è anche il mio primo tentativo di astrofotografia!Spronato dal recente "Supermoon" volevo portare mio fratello"
Crea la tua illuminazione ambientale con Raspberry Pi Zero: 5 passaggi (con immagini)
Crea la tua illuminazione ambientale con il Raspberry Pi Zero: in questo progetto ti mostrerò come combinare un Raspberry Pi Zero con un paio di parti complementari per aggiungere un effetto di illuminazione ambientale alla tua TV che migliora l'esperienza visiva. Iniziamo
Datalogger Arduino: 8 passaggi (con immagini)
Arduino Datalogger: in questo tutorial, realizzeremo un semplice datalogger utilizzando Arduino. Il punto è imparare le basi dell'uso di Arduino per acquisire informazioni e stampare sul terminale. Possiamo utilizzare questa configurazione di base per completare una serie di attività. Per iniziare
Luce intelligente fai-da-te con Raspberry Pi Zero: 4 passaggi (con immagini)
Luce intelligente fai-da-te con Raspberry Pi Zero: le luci intelligenti stanno diventando sempre più popolari. Tali luci sono solitamente luci a LED che possono essere controllate tramite WiFi o Bluetooth. I colori, la saturazione e la luminosità possono essere modificati utilizzando uno smartphone. Una cosa che ho capito è che spesso le persone intelligenti
Custodia portatile con batteria per Raspberry Pi Zero W (EN/FR): 5 passaggi (con immagini)
Custodia Portatile Con Batteria per Raspberry Pi Zero W (EN/FR): ITQuesta guida ti spiegherà come creare un "Computer portatile" con un Raspberry Pi zero, una batteria Iphone e alcuni moduli elettroniciFRCe guide explique comment fabriquer un "Ordinateur Portable" con un Raspberry Pi zero, une ba