Sadržaj:

Zapisnik podataka Raspberry Pi Zero W: 8 koraka (sa slikama)
Zapisnik podataka Raspberry Pi Zero W: 8 koraka (sa slikama)

Video: Zapisnik podataka Raspberry Pi Zero W: 8 koraka (sa slikama)

Video: Zapisnik podataka Raspberry Pi Zero W: 8 koraka (sa slikama)
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Srpanj
Anonim
Raspberry Pi Zero W Datalogger
Raspberry Pi Zero W Datalogger

Pomoću Raspberry Pi Zero W možete napraviti jeftin i jednostavan za korištenje datalogger, koji se može spojiti na lokalnu WiFi mrežu ili poslužiti kao pristupna točka na terenu koja vam omogućuje bežično preuzimanje podataka sa vašeg pametnog telefona.

Predstavila sam ovu postavku na jesenskom sastanku American Geophysical Union 2017, kao način za postavljanje vlastitog zapisnika podataka. Tu prezentaciju možete pronaći ovdje.

Što će vam trebati:

  • Raspberry Pi Zero W
  • Mikro SD kartica
  • USB kabel ili USB napajanje
  • Računalo s čitačem USB kartica
  • Izborno (ali korisno):

    • miniHDMI -> HDMI adapter (za povezivanje Pi na zaslon)
    • USB OTG adapter (za spajanje tipkovnice na Pi

Korak 1: Postavite Pi Zero W

Za početak stavite rasbijsku sliku na microSD karticu (u ovom sam vodiču koristio 2017-07-05-raspbian-jessie-lite, dostupno ovdje). Može se koristiti Lite verzija (bez radne površine) jer će se postavljanje izvršiti putem naredbenog retka.

Umetnite SD karticu u Pi, spojite zaslon i tipkovnicu i uključite je priključivanjem kabela za napajanje. Moguće je i postavljanje bez glave, no zahtijeva povezivanje putem SSH -a.

Nakon što je Pi pokrenuo prijavu (zadano korisničko ime: pi, lozinka: malina), i promijenite lozinku pomoću naredbe "passwd".

Tipkovnica se može konfigurirati unosom "sudo raspi-config" u terminal.

Korak 2: Povežite se na WiFi

Povežite se na WiFi
Povežite se na WiFi
Povežite se na WiFi
Povežite se na WiFi
Povežite se na WiFi
Povežite se na WiFi
Povežite se na WiFi
Povežite se na WiFi

Za povezivanje s internetom reći ćemo Pi na koju se mrežu treba povezati. Počnite otvaranjem sljedeće datoteke;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Ovdje dodajte podatke o mreži pri dnu;

mreža = {

ssid = "naziv mreže" psk = "lozinka mreže"}

U slučaju poslovne mreže, možete koristiti sljedeće postavke (prilagodite WPA-EAP // TTLA // MSCHAPv2 primjenjivim postavkama).

mreža = {

ssid = "ssid" #Unesite naziv svoje mreže key_mgmt = WPA-EAP eap = TTLS identitet = "xxxxx" #Unesite lozinku svog računa za prijavu = "xxxxx" #Unesite fazu prolaska2 = "auth = MSCHAPv2"}

Spremite pritiskom na CTRL+O, a izađite s CTRL+X.

Sada referencirajte svoju konfiguracijsku datoteku u/etc/network/sučelja

sudo nano/etc/network/sučelja

Promijenite wlan0 dio u:

auto wlan0

iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Ponovo spremite datoteku (CTRL+O), a zatim izađite (CTRL+X).

Nakon ponovnog pokretanja (sudo reboot), vaša WiFi veza trebala bi raditi. To možete testirati pinganjem web stranice;

ping www.google.com

Otkažite ping pomoću CTRL+C

Za bežično povezivanje s Pi preko SSH -a trebate omogućiti SSH:

sudo raspi-config

Idite na "5 mogućnosti sučelja" i omogućite SSH. Zatim se vratite i izađite iz konfiguracije.

Potražite IP adresu Pi:

ifconfig

IP će biti pod "inet addr:" sučelja wlan0.

Sada se možete povezati s Pi putem WiFi -a, ako ste na istoj mreži. Preuzmite Putty (za Windows), unesite IP adresu koju ste pronašli pod "Naziv hosta" i pritisnite "Otvori". Nakon prihvaćanja upozorenja sada biste trebali moći vidjeti naredbeni redak i prijaviti se.

Korak 3: Ažurirajte i instalirajte potreban softver

Ažurirajte i instalirajte potreban softver
Ažurirajte i instalirajte potreban softver
Ažurirajte i instalirajte potreban softver
Ažurirajte i instalirajte potreban softver

Nakon što WiFi radi, ažurirajte Pi sa:

sudo apt -get update -y && sudo apt -get upgrade -y

Nakon što ažuriranje završi (može potrajati), instalirajte softver s kojim ćemo koristiti;

sudo apt-get install python3 python3-serijski apache2 -y

Korak 4: Povežite se sa senzorom (u ovom primjeru Arduino)

Ili povežite Arduino zajedno s tipkovnicom pomoću USB čvorišta ili spojite Arduino putem jednog USB priključka i izvršite postavljanje pomoću SSH -a putem WiFi -a.

Da biste mogli pristupiti serijskom portu na koji je Arduino spojen, korisno je omogućiti pristup zadanom pi računu. Kako je Arduino obično dodijeljen portu "/dev/ttyACM0", upotrijebite sljedeću naredbu da biste 'pi' korisniku dali pristup do porta:

sudo chown pi: /dev /ttyACM0

Pod pretpostavkom da je Arduino već postavljen za slanje podataka preko serijskog porta, možete vidjeti podatke u pythonu na sljedeći način:

Otvoreni python;

python3

Serijski uvoz:

serijski uvoz

Otvorite com port:

ser = serial. Serial (port = '/dev/ttyACM0', baudrate = 9600, timeout = 5)

Tamo gdje je brzina prijenosa Arduina u ovom slučaju postavljena na 9600.

Možete pročitati i ispisati redak pokretanjem sljedećeg koda:

ser.readline (). decode ('utf-8')

Ako vam radi, možete zatvoriti vezu i izaći iz Pythona pomoću:

ser.close ()

Izlaz()

Korak 5: Postavite mogućnosti WiFi pristupne točke

Postavljanjem svog Pi Zero W u način rada WiFi pristupne točke, možete se povezati s njim s bilo kojim WiFi uređajem. To omogućuje postavljanje zapisnika i preuzimanje podataka putem WiFi -ja, nisu potrebni kabeli ili upravljački programi.

Za to Adafruit ima na raspolaganju dobar vodič. Neke male primjedbe:

  • Za /etc/hostapd/hostapd.conf upravljački program, nemojte koristiti liniju upravljačkog programa.
  • Korak "Ažuriraj hostapd" ne bi trebao biti potreban.

Ako pristupna točka ne radi na kraju vodiča, pokušajte ponovno pokrenuti Pi (sudo ponovno podizanje sustava).

Korak 6: Prebacivanje između načina pristupne točke Wifi i klijenta

Ponekad ćete htjeti ažurirati softver ili instalirati novi softver na svoj Raspberry Pi, ali za to je potrebna internetska veza. Na sreću prebacivanje između njih dvoje vrlo je jednostavno.

Spojite se na Pi putem SSH -a (preko kabela, ne putem WiFi -a!). Započnite zaustavljanjem usluga pristupne točke:

sudo cystemctl stop hostapd.service

sudo cystemctl stop isc-dhcp-server.service

Zatim uredite datoteku mrežnih sučelja:

sudo nano/etc/network/sučelja

Ovdje biste trebali komentirati parametre hostinga, a ne komentirati parametre mrežne veze. Promijeni iz ovoga:

#-Hosting parametri:

allow-hotplug wlan0 iface wlan0 inet statička adresa 192.168.42.1 maska mreže 255.255.255.0 # -Mrežni (klijentski) parametri: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Na ovo:

#-Hosting parametri: #allow-hotplug wlan0 #iface wlan0 inet static #adresa 192.168.42.1 #maska mreže 255.255.255.0 #-Mrežni (klijentski) parametri: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Spremite i zatvorite datoteku.

Zatim pokrećete sljedeće naredbe:

sudo systemctl start wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Sada bi se vaš Pi trebao ponovno spojiti na WiFi, što vam omogućuje ažuriranje i instaliranje softvera.

Da biste se vratili u način pristupne točke, prebacite se na komentare u/etc/network/sučelja i ponovno pokrenite Pi.

Korak 7: Završne napomene

Završne napomene
Završne napomene

Postavljanje web stranice

Apache poslužitelj nalazi se u/var/www/. Da biste promijenili zadanu stranicu, uredite /var/www/html/index.html datoteku.

Ovdje možete učiniti datoteke dostupnima za preuzimanje putem WiFi veze, navigacijom preglednika do Pi -ove IP adrese (192.168.42.1). Svaki uređaj s omogućenim WiFi -jem može ih preuzeti bez dodatnog softvera.

SFTP veza

Preko SSH -a može se uspostaviti FTP veza. Filezilla možete koristiti za brz i jednostavan prijenos velike količine datoteka (vidi sliku).

Sat u realnom vremenu

Budući da će se unutarnji sat Pi značajno pomaknuti ako nema veze s internetom, bit će potreban modul sata u stvarnom vremenu (RTC) ako je potrebno točno mjerenje vremena. Jedan od takvih modula je RasClock, upute za instalaciju možete pronaći ovdje. Dostupni su i drugi satovi zasnovani na i2c (npr. DS3231)

Zaključak

Ako je sve prošlo kako treba, sada biste trebali imati ispravni Pi Zero zapisnik podataka! Primjer python skripte za bilježenje uključen je u sljedeći korak.

Korak 8: Primjer Python skripte za bilježenje

uvoz os

uvoz serijske iz vremena uvoz vremena iz datuma uvoza datum -datum uvoz numpy kao np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) direktorij = 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 = direktorij + day_timestring +'.dat ' #Pročitajte podataka i odmah nabavite vremensku liniju = 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]) osim: u = np.nan try: v = float (line [2]) osim: v = np.nan try: w = float (linija [3]) osim: w = np.nan try: c = float (line [5]) osim: c = np.nan Ts = 1/403*c ** 2 - 273.15 pokušajte: Ta = float (redak [8]) osim: Ta = np.nan if (os.path.isfile (file_today)): s otvorenim (file_today, 'a') kao fileobject: fileobject.write (nowtime+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () else: s otvorenim (file_today, 'w') kao fileobject: fileobject.write ('"Vrijeme", "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 () osim KeyboardInterrupt: ser.close ()

Preporučeni: