Kazalo:

Podatkovni zapisnik Raspberry Pi Zero W: 8 korakov (s slikami)
Podatkovni zapisnik Raspberry Pi Zero W: 8 korakov (s slikami)

Video: Podatkovni zapisnik Raspberry Pi Zero W: 8 korakov (s slikami)

Video: Podatkovni zapisnik Raspberry Pi Zero W: 8 korakov (s slikami)
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Julij
Anonim
Datalogger Raspberry Pi Zero W
Datalogger Raspberry Pi Zero W

Z Raspberry Pi Zero W lahko naredite poceni in enostaven za uporabo zapisovalnik podatkov, ki ga lahko priključite na lokalno omrežje WiFi ali pa služi kot dostopna točka na terenu, ki vam omogoča brezžično nalaganje podatkov s pametnim telefonom.

To nastavitev sem predstavil na jesenskem srečanju American Geophysical Union 2017 kot način za nastavitev lastnega zapisovalnika podatkov. To predstavitev najdete tukaj.

Kaj boste potrebovali:

  • Raspberry Pi Zero W
  • Kartica mikro SD
  • kabel USB ali napajalnik USB
  • Računalnik z bralnikom kartic USB
  • Izbirno (vendar uporabno):

    • miniHDMI -> HDMI adapter (za priključitev Pi na zaslon)
    • USB OTG adapter (za priključitev tipkovnice na Pi

1. korak: Nastavite Pi Zero W

Za začetek postavite sliko Rasbian na kartico microSD (v tej vadnici sem uporabil 2017-07-05-raspbian-jessie-lite, na voljo tukaj). Lahko uporabite enostavnejšo različico (brez namizja), saj bo nastavitev izvedena prek ukazne vrstice.

Kartico SD vstavite v Pi, povežite zaslon in tipkovnico ter jo vklopite tako, da priključite napajalni kabel. Možna je tudi brezglava nastavitev, ki pa zahteva povezavo prek SSH.

Ko je Pi zagnal prijavo (privzeto uporabniško ime: pi, geslo: malina) in spremenite geslo z ukazom "passwd".

Tipkovnico lahko konfigurirate tako, da v terminal vnesete "sudo raspi-config".

Korak: Povežite se z WiFi

Povežite se z WiFi
Povežite se z WiFi
Povežite se z WiFi
Povežite se z WiFi
Povežite se z WiFi
Povežite se z WiFi
Povežite se z WiFi
Povežite se z WiFi

Če se želite povezati z internetom, bomo Pi povedali, s katerim omrežjem naj se poveže. Začnite tako, da odprete naslednjo datoteko;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Tukaj na dnu dodajte podatke o omrežju;

omrežje = {

ssid = "ime omrežja" psk = "omrežno geslo"}

V primeru omrežja podjetja lahko uporabite naslednjo nastavitev (prilagodite WPA-EAP // TTLA // MSCHAPv2 ustreznim nastavitvam).

omrežje = {

ssid = "ssid" #Vnesite ime vašega omrežja key_mgmt = WPA-EAP eap = TTLS identity = "xxxxx" #Vnesite geslo za svoj račun za prijavo = "xxxxx" #Vnesite fazo prenosa2 = "auth = MSCHAPv2"}

Shranite s pritiskom na CTRL+O in zapustite s CTRL+X.

Zdaj se obrnite na konfiguracijsko datoteko v/etc/network/interfaces

sudo nano/etc/network/vmesniki

Del wlan0 spremenite v:

avto wlan0

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

Ponovno shranite datoteko (CTRL+O) in nato zapustite (CTRL+X).

Po ponovnem zagonu (sudo reboot) bi morala vaša povezava wifi delovati. To lahko preizkusite s pinganjem spletnega mesta;

ping www.google.com

Prekličite ping s CTRL+C

Če se želite brezžično povezati s Pi prek SSH, morate omogočiti SSH:

sudo raspi-config

Pomaknite se na "5 možnosti vmesnika" in omogočite SSH. Nato se vrnite in zapustite konfiguracijo.

Poiščite naslov IP Pi:

ifconfig

IP bo pod "inet addr:" vmesnika wlan0.

Zdaj se lahko povežete s Pi prek WiFi, če ste v istem omrežju. Prenesite Putty (za Windows), vnesite naslov IP, ki ste ga našli pod "Ime gostitelja", in pritisnite "Odpri". Ko sprejmete opozorilo, bi morali zdaj videti ukazno vrstico in se prijaviti.

3. korak: Posodobite in namestite potrebno programsko opremo

Posodobite in namestite potrebno programsko opremo
Posodobite in namestite potrebno programsko opremo
Posodobite in namestite potrebno programsko opremo
Posodobite in namestite potrebno programsko opremo

Ko WiFi deluje, posodobite Pi z:

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

Ko je posodobitev končana (lahko traja nekaj časa), namestite programsko opremo, s katero bomo uporabljali;

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

4. korak: Povežite se s senzorjem (v tem primeru Arduino)

Arduino povežite skupaj s tipkovnico s pomočjo zvezdišča USB ali povežite Arduino prek enotnih vrat USB in nastavite s SSH prek WiFi.

Za dostop do serijskih vrat, s katerimi je povezan Arduino, je koristno omogočiti dostop do privzetega računa pi. Ker je Arduino običajno dodeljen vratom "/dev/ttyACM0", uporabite naslednji ukaz, da uporabniku 'pi' omogočite dostop do vrat:

sudo chown pi: /dev /ttyACM0

Ob predpostavki, da je Arduino že nastavljen za pošiljanje podatkov prek serijskih vrat, si lahko podatke v pythonu ogledate na naslednji način:

Odprite python;

python3

Uvozi serijsko številko:

uvozi serijsko

Odprite vrata com:

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

Kjer je bila hitrost prenosa Arduina v tem primeru nastavljena na 9600.

Vrstico lahko preberete in natisnete z naslednjo kodo:

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

Če deluje, lahko zaprete povezavo in zaprete Python z:

ser.close ()

izhod ()

5. korak: Nastavite zmogljivosti dostopne točke WiFi

Če nastavite Pi Zero W v načinu dostopne točke wifi, se lahko nanj povežete s katero koli WiFi napravo. To omogoča nastavitev zapisovalnika in nalaganje podatkov prek wifi, brez kablov ali gonilnikov.

Za to ima Adafruit na voljo dobro vadnico. Nekaj majhnih pripomb:

  • Za gonilnik /etc/hostapd/hostapd.conf ne uporabljajte gonilniške vrstice.
  • Korak »Posodobi hostapd« ne bi smel biti potreben.

Če dostopna točka ne deluje na koncu vadnice, poskusite znova zagnati Pi (sudo reboot).

Korak 6: Preklapljanje med dostopovno točko Wifi in načini odjemalca

Včasih boste želeli posodobiti programsko opremo ali namestiti novo programsko opremo na svoj Raspberry Pi, vendar to zahteva internetno povezavo. Na srečo je preklapljanje med tema dvema zelo preprosto.

Povežite se s Pi s SSH (preko kabla, ne prek wifija!). Začnite tako, da ustavite storitve dostopne točke:

sudo cystemctl stop hostapd.service

sudo cystemctl stop isc-dhcp-server.service

Nato uredite datoteko omrežnih vmesnikov:

sudo nano/etc/network/vmesniki

Tu morate komentirati parametre gostovanja in odstraniti komentarje o parametrih omrežne povezave. Spremenite iz tega:

#-Parametri gostovanja:

allow-hotplug wlan0 iface wlan0 inet statični naslov 192.168.42.1 maska omrežja 255.255.255.0 # -Mrežni (odjemalčevi) parametri: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Za to:

#-Parametri gostovanja: #allow-hotplug wlan0 #iface wlan0 inet static #naslov 192.168.42.1 #maska omrežja 255.255.255.0 #-Mrežni (odjemalčevi) parametri: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Shranite in zaprite datoteko.

Nato zaženete naslednje ukaze:

sudo systemctl zaženite wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Zdaj se mora vaš Pi znova povezati z wifi, kar vam omogoča posodobitev in namestitev programske opreme.

Če se želite vrniti v način dostopne točke, preklopite med komentarji v/etc/network/interfaces in znova zaženite Pi.

7. korak: Končne opombe

Končne opombe
Končne opombe

Nastavitev spletnega mesta

Strežnik apache se nahaja v/var/www/. Če želite spremeniti privzeto stran, uredite datoteko /var/www/html/index.html.

Tukaj lahko omogočite prenos datotek prek povezave wifi, tako da v brskalniku poiščete Pi -jev naslov IP (192.168.42.1). Vsaka naprava, ki podpira WiFi, jih lahko nato prenese brez dodatne programske opreme.

SFTP povezava

Prek SSH je mogoče vzpostaviti povezavo FTP. Z datoteko Filezilla lahko hitro in enostavno prenesete veliko količino datotek (glej sliko).

Ura v realnem času

Ker se bo notranja ura Pi znatno oddaljila, če ni povezave z internetom, bo potreben modul ure v realnem času (RTC), če je potrebno natančno merjenje časa. Eden takih modulov je RasClock, navodila za namestitev najdete tukaj. Na voljo so tudi druge ure na osnovi i2c (npr. DS3231)

Zaključek

Če je vse potekalo pravilno, bi morali imeti delujoč zapisovalnik podatkov Pi Zero! Primer skripta za zapisovanje pythona je vključen v naslednji korak.

8. korak: Primer skripta za zapisovanje Python

uvoz os

uvoz serijsko od časa uvoz čas od datuma uvoz datum in čas uvoz numpy kot np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) directory = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () poskusite: medtem ko True: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = imenik + day_timestring +'.dat '#Read out podatkov in takoj dobite časovno vrstico = 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]) razen: u = np.nan try: v = float (line [2]) razen: v = np.nan poskus: w = float (vrstica [3]) razen: w = np.nan poskus: c = float (vrstica [5]) razen: c = np.nan Ts = 1/403*c ** 2 - 273,15 poskusite: Ta = float (vrstica [8]) razen: Ta = np.nan if (os.path.isfile (file_today)): z odprto (file_today, 'a') kot fileobject: fileobject.write (nowtime+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () else: z odprto (file_today, 'w') kot 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 () razen KeyboardInterrupt: ser.close ()

Priporočena: