Turinys:
- 1 veiksmas: nustatykite „Pi Zero W“
- 2 veiksmas: prisijunkite prie „WiFi“
- 3 veiksmas: atnaujinkite ir įdiekite reikiamą programinę įrangą
- 4 veiksmas: prijunkite prie jutiklio (šiame pavyzdyje „Arduino“)
- 5 veiksmas: nustatykite „WiFi“prieigos taško galimybes
- 6 veiksmas: perjungimas tarp „Wifi“prieigos taško ir kliento režimų
- 7 žingsnis: paskutinės pastabos
- 8 veiksmas: „Python“registravimo scenarijaus pavyzdys
Video: „Raspberry Pi Zero W“duomenų rinkiklis: 8 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
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“
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ą
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
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:
„Para Para“GPS (duomenų rinkiklis EEPROM): 5 žingsniai
„Para Para“GPS (duomenų rinkiklis EEPROM): paprastas GPS augintinių duomenų registratorius, pagrįstas arduino ir EEPROM įrašymu ================================ ================
Kaip padaryti drėgmės ir temperatūros realaus laiko duomenų įrašymo įrenginį naudojant „Arduino UNO“ir SD kortelę - DHT11 duomenų kaupiklio modeliavimas „Proteus“: 5 žingsniai
Kaip padaryti drėgmės ir temperatūros realaus laiko duomenų įrašymo įrenginį naudojant „Arduino UNO“ir SD kortelę | DHT11 duomenų kaupiklio modeliavimas „Proteus“: Įvadas: Sveiki, tai „Liono Maker“, čia yra „YouTube“nuoroda. Mes kuriame kūrybinį projektą su „Arduino“ir dirbame prie įterptųjų sistemų
Aliaskos duomenų rinkiklis: 5 žingsniai (su nuotraukomis)
Aliaskos duomenų rinkėjas: Aliaska yra klimato kaitos pažangos riba. Jo unikali padėtis - gana nepaliestas kraštovaizdis, apgyvendintas įvairiomis anglies kasyklų kanarėlėmis, suteikia daug tyrimų galimybių. Mūsų draugas Monty yra archeologas, kuris padeda
„Arduino“duomenų rinkiklis su RTC, „Nokia“LCD ir kodavimo įrenginiu: 4 žingsniai
„Arduino“duomenų rinkiklis su RTC, „Nokia“LCD ir koduotuvu: dalys: „Arduino Nano“arba „Arduino Pro Mini“„Nokia 5110“84x48 LCD DHT11 temperatūros/drėgmės jutiklis DS1307 arba DS3231 RTC modulis su įmontuotu AT24C32 EEPROM Pigus kodavimo įrenginys su 3 išjungimo kondensatoriais ir en
EAL-Industri4.0-RFID duomenų rinkimo duomenų bazė: 10 žingsnių (su nuotraukomis)
EAL-Industri4.0-RFID duomenų kopijavimas iki duomenų bazės: „Dette projekt omhandler opsamling af v æ gtdata“, registruojantis tapatybę. RFID, bauginantys duomenys ir „MySQL“duomenų bazė. „NOD-RED“, „fremvisning“ir „elgsena“naudojant duomenų rinkinius ir C# programą, kurią sudaro „Windows Form Application“