Obsah:

Datalogger Raspberry Pi Zero W: 8 krokov (s obrázkami)
Datalogger Raspberry Pi Zero W: 8 krokov (s obrázkami)

Video: Datalogger Raspberry Pi Zero W: 8 krokov (s obrázkami)

Video: Datalogger Raspberry Pi Zero W: 8 krokov (s obrázkami)
Video: Raspberry Pi с Linux УРОК 1. Знакомство с Raspberry Pi 2024, November
Anonim
Datalogger Raspberry Pi Zero W
Datalogger Raspberry Pi Zero W

Použitím Raspberry Pi Zero W môžete vytvoriť lacný a ľahko použiteľný záznamník údajov, ktorý je možné pripojiť buď k lokálnej sieti Wi -Fi, alebo slúžiť ako prístupový bod v teréne, ktorý vám umožní bezdrôtovo sťahovať údaje pomocou smartfónu.

Toto nastavenie som predstavil na stretnutí American Geophysical Union Fall Meeting 2017 ako spôsob, ako si vytvoriť vlastné nastavenie záznamníka údajov. Prezentáciu nájdete tu.

Čo budete potrebovať:

  • Raspberry Pi Zero W
  • Micro SD karta
  • kábel USB alebo napájací zdroj USB
  • Počítač s čítačkou kariet USB
  • Voliteľné (ale užitočné):

    • miniHDMI -> HDMI adaptér (na pripojenie Pi k obrazovke)
    • USB OTG adaptér (na pripojenie klávesnice k Pi

Krok 1: Nastavte Pi Zero W

Na začiatok vložte obrázok Rasbian na kartu microSD (v tomto návode som použil 2017-07-05-raspbian-jessie-lite, dostupný tu). Je možné použiť lite verziu (bez pracovnej plochy), pretože nastavenie sa vykoná pomocou príkazového riadka.

Vložte kartu SD do počítača Pi, pripojte obrazovku a klávesnicu a napájajte ju zapojením napájacieho kábla. Je možné aj bezhlavé nastavenie, ale vyžadovalo by to pripojenie cez SSH.

Po spustení Pi sa prihláste (predvolené používateľské meno: pi, heslo: malina) a zmeňte heslo príkazom „passwd“.

Klávesnicu je možné nakonfigurovať zadaním „sudo raspi-config“do terminálu.

Krok 2: Pripojte sa k WiFi

Pripojte sa k WiFi
Pripojte sa k WiFi
Pripojte sa k WiFi
Pripojte sa k WiFi
Pripojte sa k WiFi
Pripojte sa k WiFi
Pripojte sa k WiFi
Pripojte sa k WiFi

Ak sa chcete pripojiť na internet, Píovi povieme, ku ktorej sieti sa má pripojiť. Začnite otvorením nasledujúceho súboru;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Tu zadajte informácie o sieti v spodnej časti;

sieť = {

ssid = "názov siete" psk = "heslo siete"}

V prípade podnikovej siete môžete použiť nasledujúce nastavenie (prispôsobiť WPA-EAP // TTLA // MSCHAPv2 na príslušné nastavenia).

sieť = {

ssid = "ssid" #Zadajte názov svojej siete key_mgmt = WPA-EAP eap = TTLS identity = "xxxxx" #Zadajte svoje prihlasovacie konto heslo = "xxxxx" #Zadajte priechodovú fázu2 = "auth = MSCHAPv2"}

Uložte stlačením klávesov CTRL+O a ukončite stlačením klávesov CTRL+X.

Teraz si pozrite konfiguračný súbor v súbore/etc/network/interfaces

sudo nano/etc/network/interfaces

Zmeňte časť wlan0 na:

auto wlan0

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

Znova uložte súbor (CTRL+O) a potom ukončite (CTRL+X).

Po reštarte (sudo reboot) by malo fungovať vaše wifi pripojenie. Môžete to otestovať odoslaním ping na webovú stránku;

ping www.google.com

Zrušte ping pomocou klávesov CTRL+C

Na bezdrôtové pripojenie k Pi cez SSH by ste mali povoliť SSH:

sudo raspi-config

Prejdite na „5 možností rozhrania“a povoľte SSH. Potom sa vráťte a ukončite konfiguráciu.

Vyhľadajte IP adresu Pi:

ifconfig

IP adresa bude pod „inet addr:“rozhrania wlan0.

Teraz sa môžete k Pi pripojiť cez WiFi, ak ste v rovnakej sieti. Stiahnite si Putty (pre Windows), zadajte IP adresu, ktorú ste našli pod „Názov hostiteľa“, a kliknite na „Otvoriť“. Po prijatí varovania by ste teraz mali vidieť príkazový riadok a prihlásenie.

Krok 3: Aktualizujte a nainštalujte požadovaný softvér

Aktualizujte a nainštalujte požadovaný softvér
Aktualizujte a nainštalujte požadovaný softvér
Aktualizujte a nainštalujte požadovaný softvér
Aktualizujte a nainštalujte požadovaný softvér

Keď WiFi funguje, aktualizujte Pi pomocou:

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

Po dokončení aktualizácie (môže to chvíľu trvať) nainštalujte softvér, s ktorým budeme používať;

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

Krok 4: Pripojenie k senzoru (v tomto prípade Arduino)

Buď prepojte Arduino s klávesnicou pomocou rozbočovača USB, alebo pripojte Arduino prostredníctvom jediného portu USB a vykonajte nastavenie pomocou SSH cez WiFi.

Aby ste mali prístup k sériovému portu, ku ktorému je pripojené Arduino, je užitočné poskytnúť prístup k predvolenému účtu pi. Pretože je Arduino obvykle priradený k portu „/dev/ttyACM0“, prístup k portu poskytne používateľovi 'pi' nasledujúci príkaz:

sudo chown pi: /dev /ttyACM0

Za predpokladu, že Arduino už bolo nastavené na odosielanie údajov cez sériový port, môžete údaje v pythone zobraziť nasledujúcim spôsobom:

Otvorený python;

python3

Importovať sériové číslo:

importný seriál

Otvorte port com:

ser = serial. Serial (port = '/dev/ttyACM0', prenosová rýchlosť = 9600, časový limit = 5)

V tomto prípade bola prenosová rýchlosť Arduina nastavená na 9600.

Riadok môžete prečítať a vytlačiť spustením nasledujúceho kódu:

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

Ak to funguje, môžete ukončiť pripojenie a ukončiť Python pomocou:

ser.close ()

východ()

Krok 5: Nastavte možnosti prístupového bodu WiFi

Nastavením Pi Zero W v režime prístupového bodu wifi sa k nemu môžete pripojiť s akýmkoľvek zariadením wifi. To umožňuje nastavenie záznamníka a sťahovanie údajov cez wifi, nie sú potrebné žiadne káble ani ovládače.

Na to má Adafruit k dispozícii dobrý návod. Niekoľko malých poznámok:

  • V prípade ovládača /etc/hostapd/hostapd.conf nepoužívajte riadok ovládača.
  • Krok „Aktualizovať hostapd“by nemal byť potrebný.

Ak prístupový bod na konci tutoriálu nefunguje, skúste reštartovať Pi (sudo reboot).

Krok 6: Prepínanie medzi prístupovým bodom Wifi a režimami klienta

Niekedy budete chcieť aktualizovať softvér alebo nainštalovať nový softvér na svoj Raspberry Pi, ale vyžaduje to internetové pripojenie. Našťastie prepínanie medzi nimi je veľmi jednoduché.

Pripojte sa k Pi pomocou SSH (cez kábel, nie cez wifi!). Začnite zastavením služieb prístupového bodu:

sudo cystemctl stop hostapd.service

sudo cystemctl stop isc-dhcp-server.service

Potom upravte súbor sieťových rozhraní:

sudo nano/etc/network/interfaces

Tu by ste mali komentovať parametre hostiteľa a zrušiť komentovanie parametrov sieťového pripojenia. Zmeňte to z tohto:

#-Hostiteľské parametre:

allow-hotplug wlan0 iface wlan0 statická adresa inet 192.168.42.1 maska siete 255.255.255.0 # -Sieťové (klientske) parametre: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Do tohto:

#-Parametre hostingu: #allow-hotplug wlan0 #iface wlan0 statická #adresa 192.168.42.1 #maska siete 255.255.255.0 #-sieťové (klientske) parametre: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Uložte a zatvorte súbor.

Ďalej spustíte nasledujúce príkazy:

sudo systemctl start wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Teraz by sa vaše Pi malo znova pripojiť k sieti Wi -Fi, čo vám umožní aktualizovať a nainštalovať softvér.

Ak sa chcete vrátiť do režimu prístupového bodu, prepnite komentáre v/etc/network/interfaces a reštartujte Pi.

Krok 7: Záverečné poznámky

Záverečné poznámky
Záverečné poznámky

Nastavenie webovej stránky

Server apache sa nachádza na adrese/var/www/. Ak chcete zmeniť predvolenú stránku, upravte súbor /var/www/html/index.html.

Tu môžete sprístupniť súbory, ktoré chcete sťahovať prostredníctvom wifi pripojenia, tak, že v prehliadači prejdete na IP adresu Pi (192.168.42.1). Akékoľvek zariadenie s podporou WiFi ich potom môže stiahnuť bez akéhokoľvek ďalšieho softvéru.

Pripojenie SFTP

Cez SSH je možné vytvoriť pripojenie FTP. Program Filezilla môžete použiť na rýchly a ľahký prenos veľkého množstva súborov (pozri obrázok).

Hodiny v reálnom čase

Pretože vnútorné hodiny Pi sa výrazne posunú, ak nie je pripojené k internetu, bude v prípade potreby presného merania času potrebný modul hodín v reálnom čase (RTC). Jedným z takýchto modulov je RasClock, návod na inštaláciu nájdete tu. K dispozícii sú aj ďalšie hodiny založené na i2c (tj. DS3231)

Záver

Ak všetko prebehlo správne, teraz by ste mali mať funkčný datalogger Pi Zero! V nasledujúcom kroku je zahrnutý príklad skriptu protokolovania pythonu.

Krok 8: Príklad skriptu na zapisovanie do jazyka Python

import os

importovať seriál z času importovať čas z datetime importovať datetime importovať počet np ser = serial. Sériový (port = 'COM4', prenosová rýchlosť = 57600, časový limit = 5) adresár = 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 = adresár + day_timestring +'.dat '#Read dáta a okamžite získajte časovú os = ser.readline (). decode ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') line = line.split (', ') try: u = float (riadok [1]) okrem: u = np.nan try: v = float (riadok [2]) okrem: v = np.nan try: w = float (riadok [3]) okrem: w = np.nan try: c = float (riadok [5]) okrem: c = np.nan Ts = 1/403*c ** 2 - 273,15 skúste: Ta = float (riadok [8]) okrem: Ta = np.nan if (os.path.isfile (file_today)): s open (file_today, 'a') as fileobject: fileobject.write (nowtime+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () else: s otvoreným (file_today, 'w') ako 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 () okrem KeyboardInterrupt: ser.close ()

Odporúča: