Satura rādītājs:

Raspberry Pi Zero W datu reģistrators: 8 soļi (ar attēliem)
Raspberry Pi Zero W datu reģistrators: 8 soļi (ar attēliem)

Video: Raspberry Pi Zero W datu reģistrators: 8 soļi (ar attēliem)

Video: Raspberry Pi Zero W datu reģistrators: 8 soļi (ar attēliem)
Video: CS50 2013 - Week 10, continued 2024, Jūlijs
Anonim
Raspberry Pi Zero W datu reģistrators
Raspberry Pi Zero W datu reģistrators

Izmantojot Raspberry Pi Zero W, jūs varat izveidot lētu un viegli lietojamu datu reģistratoru, ko var savienot ar vietējo wifi tīklu vai kalpot kā piekļuves punktu laukā, kas ļauj bezvadu režīmā lejupielādēt datus ar viedtālruni.

Es prezentēju šo iestatījumu Amerikas Ģeofizikas savienības 2017. gada rudens sanāksmē kā veidu, kā izveidot savu datu reģistrētāja iestatījumu. Šo prezentāciju varat atrast šeit.

Kas jums būs nepieciešams:

  • A Raspberry Pi Zero W
  • Mikro SD karte
  • USB kabeli vai USB barošanas avotu
  • Dators ar USB karšu lasītāju
  • Pēc izvēles (bet noderīgi):

    • miniHDMI -> HDMI adapteris (lai savienotu Pi ar ekrānu)
    • USB OTG adapteris (lai savienotu tastatūru ar Pi

1. darbība: iestatiet Pi Zero W

Lai sāktu, ievietojiet rasbiešu attēlu microSD kartē (šajā apmācībā es izmantoju 2017-07-05-raspbian-jessie-lite, pieejams šeit). Var izmantot vienkāršotu versiju (bez darbvirsmas), jo iestatīšana tiks veikta, izmantojot komandrindu.

Ievietojiet SD karti Pi, pievienojiet ekrānu un tastatūru un ieslēdziet to, pievienojot strāvas kabeli. Ir iespējama arī iestatīšana bez galvas, taču tai būs nepieciešams savienojums, izmantojot SSH.

Pēc tam, kad Pi ir palaidis pieteikšanos (noklusējuma lietotājvārds: pi, parole: aveņu) un nomainiet paroli ar komandu "passwd".

Tastatūru var konfigurēt, terminālī ievadot "sudo raspi-config".

2. darbība: izveidojiet savienojumu ar WiFi

Izveidojiet savienojumu ar WiFi
Izveidojiet savienojumu ar WiFi
Izveidojiet savienojumu ar WiFi
Izveidojiet savienojumu ar WiFi
Izveidojiet savienojumu ar WiFi
Izveidojiet savienojumu ar WiFi
Izveidojiet savienojumu ar WiFi
Izveidojiet savienojumu ar WiFi

Lai izveidotu savienojumu ar internetu, mēs pateiksim Pi, kuram tīklam izveidot savienojumu. Sāciet, atverot šādu failu;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Šeit apakšā pievienojiet tīkla informāciju;

tīkls = {

ssid = "tīkla nosaukums" psk = "tīkla parole"}

Uzņēmuma tīkla gadījumā varat izmantot šādu iestatījumu (pielāgojiet WPA-EAP // TTLA // MSCHAPv2 atbilstošajiem iestatījumiem).

tīkls = {

ssid = "ssid" #Ievadiet tīkla nosaukumu

Saglabājiet, nospiežot CTRL+O, un izejiet ar taustiņu kombināciju CTRL+X.

Tagad atsaucieties uz savu konfigurācijas failu mapē/etc/network/interfaces

sudo nano/etc/network/interfaces

Mainiet wlan0 daļu uz:

auto wlan0

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

Atkal saglabājiet failu (CTRL+O) un pēc tam izejiet (CTRL+X).

Pēc pārstartēšanas (sudo reboot) jūsu wifi savienojumam vajadzētu darboties. To var pārbaudīt, pingojot vietni;

ping www.google.com

Atcelt ping, izmantojot CTRL+C

Lai izveidotu bezvadu savienojumu ar Pi, izmantojot SSH, jums jāiespējo SSH:

sudo raspi-config

Dodieties uz “5 saskarnes opcijas” un iespējojiet SSH. Pēc tam atgriezieties un izejiet no konfigurācijas.

Atrodiet Pi IP adresi:

ifconfig

IP būs zem wlan0 saskarnes "inet addr:".

Tagad jūs varat izveidot savienojumu ar Pi, izmantojot WiFi, ja atrodaties tajā pašā tīklā. Lejupielādējiet Putty (operētājsistēmai Windows), ievadiet IP adresi, kuru atradāt sadaļā "Host Name", un nospiediet "Open". Pēc brīdinājuma pieņemšanas jums vajadzētu redzēt komandrindu un pieteikties.

3. darbība: atjauniniet un instalējiet nepieciešamo programmatūru

Atjauniniet un instalējiet nepieciešamo programmatūru
Atjauniniet un instalējiet nepieciešamo programmatūru
Atjauniniet un instalējiet nepieciešamo programmatūru
Atjauniniet un instalējiet nepieciešamo programmatūru

Kad WiFi darbojas, atjauniniet Pi ar:

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

Kad atjaunināšana ir pabeigta (tas var aizņemt kādu laiku), instalējiet programmatūru, ar kuru mēs izmantosim;

sudo apt-get instalēt python3 python3-serial apache2 -y

4. solis: izveidojiet savienojumu ar sensoru (šajā piemērā Arduino)

Vai nu pievienojiet Arduino kopā ar tastatūru, izmantojot USB centrmezglu, vai pievienojiet Arduino, izmantojot vienu USB portu, un veiciet iestatīšanu, izmantojot SSH, izmantojot WiFi.

Lai varētu piekļūt seriālajam portam, kuram Arduino ir pievienots, ir lietderīgi piešķirt piekļuvi noklusējuma pi kontam. Tā kā Arduino parasti tiek piešķirts portam "/dev/ttyACM0", izmantojiet šo komandu, lai "pi" lietotājam piešķirtu piekļuvi portam:

sudo chown pi: /dev /ttyACM0

Pieņemot, ka Arduino jau ir iestatīts, lai nosūtītu datus pa seriālo portu, jūs varat apskatīt datus python šādā veidā:

Atveriet pitonu;

python3

Importēt sēriju:

importēt sēriju

Atveriet com portu:

ser = sērija. Sērija (ports = '/dev/ttyACM0', bodu pārraides ātrums = 9600, taimauts = 5)

Ja šajā gadījumā Arduino datu pārraides ātrums bija iestatīts uz 9600.

Jūs varat izlasīt un izdrukāt rindu, palaižot šādu kodu:

ser.readline (). atšifrēt ('utf-8')

Ja tas darbojas, varat pārtraukt savienojumu un iziet no Python, izmantojot:

ser.close ()

Izeja()

5. darbība: iestatiet WiFi piekļuves punkta iespējas

Iestatot Pi Zero W wifi piekļuves punkta režīmā, varat izveidot savienojumu ar to ar jebkuru wifi ierīci. Tas ļauj iestatīt reģistrētāju un lejupielādēt datus, izmantojot wifi, nav nepieciešami kabeļi vai draiveri.

Šim nolūkam Adafruit ir pieejama laba apmācība. Dažas nelielas piezīmes:

  • /Etc/hostapd/hostapd.conf draiverim izmantojiet neizmantojiet draivera līniju.
  • Darbība "Atjaunināt hostapd" nav nepieciešama.

Ja apmācības beigās piekļuves punkts nedarbojas, mēģiniet pārstartēt Pi (sudo reboot).

6. darbība. Pārslēgšanās starp Wifi piekļuves punktu un klienta režīmiem

Dažreiz jūs vēlaties atjaunināt programmatūru vai instalēt jaunu programmatūru savā Raspberry Pi, taču tam ir nepieciešams interneta savienojums. Par laimi pārslēgšanās starp abām ir ļoti vienkārša.

Izveidojiet savienojumu ar Pi, izmantojot SSH (izmantojot kabeli, nevis wifi!). Sāciet, pārtraucot piekļuves punkta pakalpojumus:

sudo cystemctl stop hostapd.service

sudo cystemctl stop isc-dhcp-server.service

Pēc tam rediģējiet tīkla saskarņu failu:

sudo nano/etc/network/interfaces

Šeit jums vajadzētu komentēt mitināšanas parametrus un atcelt tīkla savienojuma parametru komentārus. Mainiet to no šī:

#-mitināšanas parametri:

allow-hotplug wlan0 iface wlan0 inet statiskā adrese 192.168.42.1 netmaska 255.255.255.0 # -Tīkla (klienta) parametri: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Šim nolūkam:

#-Mitināšanas parametri: #allow-hotplug wlan0 #iface wlan0 inet static #adrese 192.168.42.1 #netmaska 255.255.255.0 #-Tīkla (klienta) parametri: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Saglabājiet un aizveriet failu.

Tālāk jūs izpildāt šādas komandas:

sudo systemctl start wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Tagad jūsu Pi vajadzētu atkal izveidot savienojumu ar wifi, ļaujot atjaunināt un instalēt programmatūru.

Lai atgrieztos piekļuves punkta režīmā, pārslēdzieties komentāros/etc/network/interfaces un pārstartējiet Pi.

7. solis: beigu piezīmes

Nobeiguma piezīmes
Nobeiguma piezīmes

Vietnes iestatīšana

Apache serveris atrodas mapē/var/www/. Lai mainītu noklusējuma lapu, rediģējiet failu /var/www/html/index.html.

Šeit esošos failus varat padarīt pieejamus lejupielādei, izmantojot Wi -Fi savienojumu, pārlūkprogrammā pārejot uz Pi IP adresi (192.168.42.1). Jebkura ierīce, kurā ir iespējots WiFi, var tos lejupielādēt bez papildu programmatūras.

SFTP savienojums

Izmantojot SSH, var izveidot FTP savienojumu. Varat izmantot Filezilla, lai ātri un viegli pārsūtītu lielu daudzumu failu (skatiet attēlu).

Reālā laika pulkstenis

Tā kā Pi iekšējais pulkstenis ievērojami mainīsies, ja nebūs savienojuma ar internetu, būs nepieciešams reālā laika pulksteņa (RTC) modulis, ja būs nepieciešama precīza laika uzskaite. Viens no šādiem moduļiem ir RasClock, uzstādīšanas instrukcijas var atrast šeit. Ir pieejami arī citi pulksteņi, kuru pamatā ir i2c (ti, DS3231)

Secinājums

Ja viss gāja pareizi, jums tagad vajadzētu būt strādājošam Pi Zero datu reģistratoram! Nākamajā solī ir iekļauts python reģistrēšanas skripta piemērs.

8. darbība. Python reģistrēšanas skripta piemērs

importēt OS

importēt sēriju no laika importēšanas laika no datuma laika importēšanas datuma un laika importa numpy kā np ser = serial. Serial (ports = 'COM4', baudrate = 57600, timeout = 5) directory = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () mēģiniet: kamēr True: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = directory + day_timestring +'.dat '#Read out datus un nekavējoties iegūt laika līniju = ser.readline (). atšifrēt ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') line = line.split (', ') try: u = float (line 1 [1]) izņemot: u = np.nan try: v = float (line 2 [2]) izņemot: v = np.nan mēģināt: w = peldēt (līnija [3]), izņemot: w = np.nan mēģināt: c = peldēt (līnija [5]), izņemot: c = np.nan Ts = 1/403*c ** 2 - 273,15 mēģiniet: Ta = peldēt ([8] rinda), izņemot: Ta = np.nan if (os.path.isfile (file_today)): ar open (file_today, 'a') kā fileobject: fileobject.write (tagadējais+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () cits: ar atvērtu (file_today, 'w') kā fileobject: fileobject.write ('"Laiks", "u", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (tagadlaiks+', ') fileobject.write (str (u)+', '+str (v)+', '+str (w)+', '+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close (), izņemot tastatūruInterrupt: ser.close ()

Ieteicams: