Sadržaj:

Raspberry Pi Zero W Datalogger: 8 koraka (sa slikama)
Raspberry Pi Zero W Datalogger: 8 koraka (sa slikama)

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

Video: Raspberry Pi Zero W Datalogger: 8 koraka (sa slikama)
Video: Поворотный энкодер или Как построить цифровой сервопривод с использованием Arduino и фотодатчики 2024, Novembar
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 jesenjem sastanku American Geophysical Union 2017, kao način za postavljanje vlastitog registratora podataka. Tu prezentaciju možete pronaći ovdje.

Šta će vam trebati:

  • A Raspberry Pi Zero W
  • Mikro SD kartica
  • USB kabel ili USB izvor napajanja
  • Računar sa čitačem USB kartica
  • Opcionalno (ali korisno):

    • miniHDMI -> HDMI adapter (za povezivanje Pi na ekran)
    • USB OTG adapter (za povezivanje tastature sa Pi

Korak 1: Postavite Pi Zero W

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

Umetnite SD karticu u Pi, povežite ekran i tastaturu i uključite je napajanjem kabla za napajanje. Moguće je i postavljanje bez glave, ali će zahtijevati povezivanje putem SSH -a.

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

Tastatura 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 na internet, reći ćemo Pi -ju 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 = "mrežna lozinka"}

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

mreža = {

ssid = "ssid" #Unesite naziv vaše mreže key_mgmt = WPA-EAP eap = TTLS identitet = "xxxxx" #Unesite lozinku za prijavu = "xxxxx" #Unesite fazu rada2 = "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 sačuvajte 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

Da biste se bežično povezali na Pi preko SSH -a, trebate omogućiti SSH:

sudo raspi-config

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

Potražite IP adresu Pi:

ifconfig

IP adresa će se nalaziti pod "inet addr:" sučelja wlan0.

Sada se možete povezati na 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 komandnu liniju 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 povežite 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 povezan, korisno je omogućiti pristup zadanim pi nalogom. Kako je Arduino obično dodijeljen portu "/dev/ttyACM0", upotrijebite sljedeću naredbu da biste 'pi' korisniku dali pristup portu:

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:

Open python;

python3

Serijski uvoz:

uvoz serijske

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.

Red možete pročitati i odštampati pomoću sljedećeg koda:

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

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

ser.close ()

Izlaz()

Korak 5: Podesite mogućnosti WiFi pristupne tačke

Postavljanjem vašeg 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 kablovi ili upravljački programi.

Za to Adafruit ima na raspolaganju dobar vodič. Nekoliko malih primjedbi:

  • Za /etc/hostapd/hostapd.conf upravljački program, nemojte koristiti liniju upravljačkih 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 reboot).

Korak 6: Prebacivanje između Wifi pristupne tačke i režima 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 je vrlo jednostavno.

Povežite se na Pi putem SSH -a (preko kabla, ne putem WiFi -a!). Započnite zaustavljanjem usluga pristupne tač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. Promenite ovo sa ovog:

#-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

Za 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

Sačuvajte i zatvorite datoteku.

Zatim pokrenite sljedeće naredbe:

sudo systemctl pokrenite 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 tačke, prebacite se na komentare u/etc/network/interfejs i ponovo pokrenite Pi.

Korak 7: Završne napomene

Završne napomene
Završne napomene

Postavljanje web stranice

Apache server se nalazi 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). Bilo koji uređaj s Wi -Fi funkcijom može ih preuzeti bez dodatnog softvera.

SFTP veza

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

Sat u realnom vremenu

Budući da će se unutarnji sat Pi -a 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 takav modul 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 logovanje uključen je u sljedeći korak.

Korak 8: Primjer Python skripte za logovanje

import os

uvoz serijskog iz vremena uvoz vremena iz datuma uvoza datum i 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 (red [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čuje se: