Sommario:

Datalogger Raspberry Pi Zero W: 8 passaggi (con immagini)
Datalogger Raspberry Pi Zero W: 8 passaggi (con immagini)

Video: Datalogger Raspberry Pi Zero W: 8 passaggi (con immagini)

Video: Datalogger Raspberry Pi Zero W: 8 passaggi (con immagini)
Video: Building a DC power monitor (part 2) 2024, Novembre
Anonim
Registratore dati Raspberry Pi Zero W
Registratore dati Raspberry Pi Zero W

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

Connettiti al WiFi
Connettiti al WiFi
Connettiti al WiFi
Connettiti al WiFi
Connettiti al WiFi
Connettiti al WiFi
Connettiti al WiFi
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

Aggiorna e installa il software richiesto
Aggiorna e installa il software richiesto
Aggiorna e installa il software richiesto
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

Osservazioni finali
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: