Turinys:

„Raspberry Pi Zero W“duomenų rinkiklis: 8 žingsniai (su nuotraukomis)
„Raspberry Pi Zero W“duomenų rinkiklis: 8 žingsniai (su nuotraukomis)

Video: „Raspberry Pi Zero W“duomenų rinkiklis: 8 žingsniai (su nuotraukomis)

Video: „Raspberry Pi Zero W“duomenų rinkiklis: 8 žingsniai (su nuotraukomis)
Video: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Liepa
Anonim
„Raspberry Pi Zero W“duomenų katalogas
„Raspberry Pi Zero W“duomenų katalogas

Naudodami „Raspberry Pi Zero W“, galite sukurti pigų ir lengvai naudojamą duomenų kaupiklį, kurį galima prijungti prie vietinio „Wi -Fi“tinklo arba naudoti kaip prieigos tašką lauke, leidžiantį belaidžiu būdu atsisiųsti duomenis iš savo išmaniojo telefono.

Aš pristatiau šią sąranką Amerikos geofizikos sąjungos rudens susitikime 2017 m., Kaip būdą, kaip nustatyti savo duomenų registratorių. Tą pristatymą rasite čia.

Ko jums reikės:

  • A Raspberry Pi Zero W
  • „Micro SD“kortelė
  • USB kabelį arba USB maitinimo šaltinį
  • Kompiuteris su USB kortelių skaitytuvu
  • Neprivaloma (bet naudinga):

    • miniHDMI -> HDMI adapteris (norint prijungti „Pi“prie ekrano)
    • USB OTG adapteris (norint prijungti klaviatūrą prie „Pi“

1 veiksmas: nustatykite „Pi Zero W“

Norėdami pradėti, įdėkite rasbietišką vaizdą į „microSD“kortelę (šioje pamokoje naudojau 2017-07-05-raspbian-jessie-lite, ją rasite čia). Galima naudoti supaprastintą versiją (be darbalaukio), nes sąranka bus atliekama naudojant komandinę eilutę.

Įdėkite SD kortelę į „Pi“, prijunkite ekraną ir klaviatūrą ir įjunkite maitinimą prijungę maitinimo kabelį. Sąranka be galvos taip pat įmanoma, tačiau ją reikia prijungti naudojant SSH.

Po to, kai „Pi“paleido prisijungimą (numatytasis vartotojo vardas: pi, slaptažodis: avietė), ir pakeiskite slaptažodį naudodami komandą „passwd“.

Klaviatūrą galima sukonfigūruoti terminale įvedus „sudo raspi-config“.

2 veiksmas: prisijunkite prie „WiFi“

Prisijunkite prie „WiFi“
Prisijunkite prie „WiFi“
Prisijunkite prie „WiFi“
Prisijunkite prie „WiFi“
Prisijunkite prie „WiFi“
Prisijunkite prie „WiFi“
Prisijunkite prie „WiFi“
Prisijunkite prie „WiFi“

Norėdami prisijungti prie interneto, mes pasakysime Pi, prie kurio tinklo prisijungti. Pradėkite atidarydami šį failą;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Čia apačioje pridėkite tinklo informaciją;

tinklas = {

ssid = "tinklo pavadinimas" psk = "tinklo slaptažodis"}

Įmonės tinklo atveju galite naudoti šią sąranką (sureguliuokite WPA-EAP // TTLA // MSCHAPv2 pagal taikomus nustatymus).

tinklas = {

ssid = "ssid" #Įveskite savo tinklo pavadinimą key_mgmt = WPA-EAP eap = TTLS identity = "xxxxx" #Įveskite savo prisijungimo paskyros slaptažodį = "xxxxx" #Įveskite paso etapą2 = "auth = MSCHAPv2"}

Išsaugokite paspausdami CTRL+O ir išeikite naudodami CTRL+X.

Dabar nurodykite savo konfigūracijos failą/etc/network/interfaces

sudo nano/etc/network/interfaces

Pakeiskite „wlan0“dalį į:

auto wlan0

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

Dar kartą išsaugokite failą (CTRL+O), tada išeikite (CTRL+X).

Po perkrovimo („sudo reboot“) jūsų „Wi -Fi“ryšys turėtų veikti. Tai galite patikrinti sukeldami pingą svetainėje;

ping www.google.com

Atšaukite „ping“naudodami CTRL+C.

Norėdami prisijungti prie „Pi“per SSH belaidžiu ryšiu, turite įgalinti SSH:

sudo raspi-config

Eikite į „5 sąsajos parinktys“ir įjunkite SSH. Tada grįžkite ir išeikite iš konfigūracijos.

Ieškokite „Pi“IP adreso:

ifconfig

IP bus „wlan0“sąsajos „inet addr:“.

Dabar galite prisijungti prie „Pi“per „WiFi“, jei esate tame pačiame tinkle. Atsisiųskite „Putty“(„Windows“), įveskite IP adresą, kurį radote skiltyje „Pagrindinio kompiuterio pavadinimas“, ir paspauskite „Atidaryti“. Priėmę įspėjimą dabar turėtumėte matyti komandų eilutę ir prisijungti.

3 veiksmas: atnaujinkite ir įdiekite reikiamą programinę įrangą

Atnaujinkite ir įdiekite reikiamą programinę įrangą
Atnaujinkite ir įdiekite reikiamą programinę įrangą
Atnaujinkite ir įdiekite reikiamą programinę įrangą
Atnaujinkite ir įdiekite reikiamą programinę įrangą

Kai „WiFi“veikia, atnaujinkite „Pi“naudodami:

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

Kai atnaujinimas bus baigtas (tai gali užtrukti), įdiekite programinę įrangą, su kuria naudosime;

sudo apt-get įdiegti python3 python3-serial apache2 -y

4 veiksmas: prijunkite prie jutiklio (šiame pavyzdyje „Arduino“)

Prijunkite „Arduino“kartu su klaviatūra naudodami USB šakotuvą arba prijunkite „Arduino“per vieną USB prievadą ir atlikite sąranką naudodami SSH per „WiFi“.

Norint pasiekti serijinį prievadą, prie kurio yra prijungtas „Arduino“, naudinga suteikti prieigą prie numatytosios pi paskyros. Kadangi „Arduino“paprastai priskiriamas prievadui „/dev/ttyACM0“, naudokite šią komandą, kad suteiktumėte „pi“vartotojui prieigą prie prievado:

sudo chown pi: /dev /ttyACM0

Darant prielaidą, kad „Arduino“jau buvo nustatytas siųsti duomenis per nuoseklųjį prievadą, galite peržiūrėti duomenis „python“taip:

Atidaryti python;

python3

Importuoti seriją:

importuoti serialą

Atidarykite „com“prievadą:

ser = serijinis. Serijinis (prievadas = '/dev/ttyACM0', baudos dažnis = 9600, skirtasis laikas = 5)

Kai šiuo atveju „Arduino“duomenų perdavimo sparta buvo nustatyta į 9600.

Galite skaityti ir spausdinti eilutę naudodami šį kodą:

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

Jei jis veikia, galite uždaryti ryšį ir išeiti iš „Python“naudodami:

ser.close ()

išeiti ()

5 veiksmas: nustatykite „WiFi“prieigos taško galimybes

Nustatę „Pi Zero W“„Wi -Fi“prieigos taško režimu, galite prisijungti prie jo naudodami bet kurį „Wi -Fi“įrenginį. Tai leidžia nustatyti registratorių ir atsisiųsti duomenis per „Wi -Fi“, nereikia jokių laidų ar tvarkyklių.

Tam „Adafruit“turi gerą pamoką. Keletas mažų pastabų:

  • Jei naudojate /etc/hostapd/hostapd.conf tvarkyklę, naudokite tvarkyklės eilutę.
  • Žingsnis „Atnaujinti hostapd“neturėtų būti būtinas.

Jei pamokos pabaigoje prieigos taškas neveikia, pabandykite iš naujo paleisti „Pi“(„sudo reboot“).

6 veiksmas: perjungimas tarp „Wifi“prieigos taško ir kliento režimų

Kartais norėsite atnaujinti programinę įrangą arba įdiegti naują programinę įrangą į savo „Raspberry Pi“, tačiau tam reikia interneto ryšio. Laimei, perjungimas tarp dviejų yra labai lengvas.

Prisijunkite prie „Pi“naudodami SSH (per kabelį, o ne belaidį internetą!). Pradėkite sustabdydami prieigos taško paslaugas:

sudo cystemctl sustabdyti hostapd.service

sudo cystemctl sustabdyti isc-dhcp-server.service

Tada redaguokite tinklo sąsajų failą:

sudo nano/etc/network/interfaces

Čia turėtumėte pakomentuoti prieglobos parametrus ir panaikinti tinklo ryšio parametrų komentarus. Pakeiskite tai iš čia:

#-Prieglobos parametrai:

allow-hotplug wlan0 iface wlan0 inet statinis adresas 192.168.42.1 netmask 255.255.255.0 # -Tinklo (kliento) parametrai: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Šiam:

#-Prieglobos parametrai: #allow-hotplug wlan0 #iface wlan0 inet static #adresas 192.168.42.1 #netmask 255.255.255.0 #-Tinklo (kliento) parametrai: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Išsaugokite ir uždarykite failą.

Tada paleiskite šias komandas:

sudo systemctl paleiskite wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Dabar jūsų „Pi“turėtų vėl prisijungti prie „Wi -Fi“, kad galėtumėte atnaujinti ir įdiegti programinę įrangą.

Norėdami grįžti į prieigos taško režimą, perjunkite komentarus/etc/network/interfaces ir iš naujo paleiskite „Pi“.

7 žingsnis: paskutinės pastabos

Baigiamosios pastabos
Baigiamosios pastabos

Svetainės sąranka

Apache serveris yra/var/www/. Jei norite pakeisti numatytąjį puslapį, redaguokite failą /var/www/html/index.html.

Čia esančius failus galite atsisiųsti per „Wi -Fi“ryšį, naršydami naršydami prie „Pi“IP adreso (192.168.42.1). Bet kuris „Wi -Fi“palaikantis įrenginys gali juos atsisiųsti be jokios papildomos programinės įrangos.

SFTP ryšys

Per SSH galima užmegzti FTP ryšį. Naudodami „Filezilla“galite greitai ir lengvai perkelti didelį kiekį failų (žr. Paveikslėlį).

Realaus laiko laikrodis

Kadangi vidinis „Pi“laikrodis labai nukryps, jei nebus ryšio su internetu, prireiks tikro laiko laikrodžio (RTC) modulio, jei reikia tikslaus laiko skaičiavimo. Vienas iš tokių modulių yra „RasClock“, diegimo instrukcijas rasite čia. Galimi ir kiti „i2c“laikrodžiai (pvz., DS3231)

Išvada

Jei viskas klostėsi teisingai, dabar turėtumėte turėti veikiantį „Pi Zero“duomenų kaupiklį! Į kitą veiksmą įtrauktas „Python“registravimo scenarijaus pavyzdys.

8 veiksmas: „Python“registravimo scenarijaus pavyzdys

importuoti

importuoti seriją iš laiko importo laiko iš datos laiko importavimo datos laiko importo numpy kaip np ser = serial. Serijos (prievadas = 'COM4', baudrate = 57600, skirtasis laikas = 5) katalogas = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () pabandykite: o tiesa: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = katalogas + day_timestring +'.dat '#Skaitykite duomenis ir iškart gauti laiko eilutę = ser.readline (). dekoduoti ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') line = line.split (', ') try: u = float (line 1 [1]) išskyrus: u = np.nan try: v = float ([2] line), išskyrus: v = np.nan try: w = float ([3] eilutė), išskyrus: w = np.nan try: c = float ([5] eilutė), išskyrus: c = np.nan Ts = 1/403*c ** 2 - 273,15 pabandykite: Ta = plūdė ([8 eilutė]), išskyrus: Ta = np.nan if (os.path.isfile (file_today)): su open (file_today, 'a)) kaip fileobject: fileobject.write (dabar laikas+', ') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () else: su open (file_today, 'w') kaip fileobject: fileobject.write ('"Laikas", "u", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (dabar laikas+', ') fileobject.write (str (u)+', '+str (v)+', '+str (w)+', '+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close (), išskyrus klaviatūrąInterrupt: ser.close ()

Rekomenduojamas: