Satura rādītājs:
- 1. darbība: iestatiet Pi Zero W
- 2. darbība: izveidojiet savienojumu ar WiFi
- 3. darbība: atjauniniet un instalējiet nepieciešamo programmatūru
- 4. solis: izveidojiet savienojumu ar sensoru (šajā piemērā Arduino)
- 5. darbība: iestatiet WiFi piekļuves punkta iespējas
- 6. darbība. Pārslēgšanās starp Wifi piekļuves punktu un klienta režīmiem
- 7. solis: beigu piezīmes
- 8. darbība. Python reģistrēšanas skripta piemērs
Video: Raspberry Pi Zero W datu reģistrators: 8 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
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
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
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
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:
Parastais GPS (EEPROM datu reģistrators): 5 soļi
GPS Para Norma (datu reģistrators EEPROM): vienkāršs GPS mājdzīvnieku datu reģistrators, kura pamatā ir arduino un EEPROM ieraksts ================================ ======================== Sencillo datalogger GPS para mascotas basado en arduino y grabacion en memoria EEPROM
Aļaskas datu reģistrators: 5 soļi (ar attēliem)
Aļaskas datu reģistrators: Aļaska atrodas uz klimata pārmaiņu progresēšanas robežas. Tā unikālā atrašanās vieta ar diezgan neskartu ainavu, kas apdzīvota ar dažādām akmeņogļu raktuvju kanārijputniņām, paver daudzas izpētes iespējas. Mūsu draugs Montijs ir arheologs, kurš palīdz
Arduino datu reģistrators ar RTC, Nokia LCD un kodētāju: 4 soļi
Arduino datu reģistrators ar RTC, Nokia LCD un kodētāju: Daļas: Arduino Nano vai Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 temperatūras/mitruma sensors DS1307 vai DS3231 RTC modulis ar iebūvētu AT24C32 EEPROM Lēts kodētājs ar 3 atvienojošiem kondensatoriem un lv
Arduino datu reģistrators: 8 soļi (ar attēliem)
Arduino Datalogger: Šajā apmācībā mēs izveidosim vienkāršu datu reģistrētāju, izmantojot Arduino. Mērķis ir iemācīties pašus Arduino lietošanas pamatus, lai uztvertu informāciju un drukātu terminālī. Mēs varam izmantot šo pamata iestatījumu, lai pabeigtu virkni uzdevumu. Lai sāktu
EAL-Industri4.0-RFID datu paraugu ņemšanas datu bāze: 10 soļi (ar attēliem)
EAL-Industri4.0-RFID datu paraugu ņemšana līdz datubāzei: Dette projekt omhandler opsamling af v æ gtdata, registreering af identiteter vha. RFID, satraucoši dati un lv MySQL datu bāze. mezgls RED, samt fremvisning og behandling af de opsamlede data i et C# program i form af en Windows Form Application