Sisällysluettelo:

Raspberry Pi Zero W Datalogger: 8 vaihetta (kuvilla)
Raspberry Pi Zero W Datalogger: 8 vaihetta (kuvilla)

Video: Raspberry Pi Zero W Datalogger: 8 vaihetta (kuvilla)

Video: Raspberry Pi Zero W Datalogger: 8 vaihetta (kuvilla)
Video: ПОЛНАЯ ИГРА ПОЛНЫЙ ПРОВАЛ 2 | КАМПАНИЯ — Прохождение / PS4 (Все шлемы пилотов) 2024, Marraskuu
Anonim
Raspberry Pi Zero W Datalogger
Raspberry Pi Zero W Datalogger

Raspberry Pi Zero W: n avulla voit tehdä halvan ja helppokäyttöisen dataloggerin, joka voidaan liittää paikalliseen wifi -verkkoon tai toimia tukiasemana kentässä, jonka avulla voit ladata tietoja langattomasti älypuhelimellasi.

Esittelin tämän kokoonpanon American Geophysical Union Fall Meeting 2017 -tapahtumassa tapana tehdä omat dataloggeri -asetukset. Esityksen löydät täältä.

Mitä tarvitset:

  • Raspberry Pi Zero W
  • Micro SD -kortti
  • USB -kaapeli tai USB -virtalähde
  • Tietokone, jossa on USB -kortinlukija
  • Valinnainen (mutta hyödyllinen):

    • miniHDMI -> HDMI -sovitin (Pi: n liittämiseksi näyttöön)
    • USB OTG -sovitin (näppäimistön liittämiseksi Pi -laitteeseen

Vaihe 1: Asenna Pi Zero W

Aloita asettamalla Rasbian-kuva microSD-kortille (tässä opetusohjelmassa käytin 2017-07-05-raspbian-jessie-lite, saatavana täältä). Yksinkertaista versiota voidaan käyttää (ilman työpöytää), koska asennus suoritetaan komentorivin kautta.

Aseta SD -kortti Pi -laitteeseen, liitä näyttö ja näppäimistö ja käynnistä se kytkemällä virtajohto. Päätön asennus on myös mahdollista, mutta se vaatii yhteyden SSH: n kautta.

Kun Pi on käynnistänyt kirjautumisen (oletuskäyttäjätunnus: pi, salasana: vadelma), ja vaihda salasana komennolla "passwd".

Näppäimistö voidaan määrittää kirjoittamalla päätelaitteeseen "sudo raspi-config".

Vaihe 2: Yhdistä WiFi -verkkoon

Yhdistä WiFi -verkkoon
Yhdistä WiFi -verkkoon
Yhdistä WiFi -verkkoon
Yhdistä WiFi -verkkoon
Yhdistä WiFi -verkkoon
Yhdistä WiFi -verkkoon
Yhdistä WiFi -verkkoon
Yhdistä WiFi -verkkoon

Jotta voimme muodostaa yhteyden Internetiin, kerromme Pi: lle, mihin verkkoon haluat muodostaa yhteyden. Aloita avaamalla seuraava tiedosto;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Lisää tänne verkkotiedot alareunaan;

verkko = {

ssid = "verkon nimi" psk = "verkon salasana"}

Jos kyseessä on yritysverkko, voit käyttää seuraavia asetuksia (säädä WPA-EAP // TTLA // MSCHAPv2 sovellettavien asetusten mukaan).

verkko = {

ssid = "ssid" #Anna verkkosi nimi key_mgmt = WPA-EAP eap = TTLS identity = "xxxxx" #Anna kirjautumistilisi salasana = "xxxxx" #Anna passwork phase2 = "auth = MSCHAPv2"}

Tallenna painamalla CTRL+O ja poistu painamalla CTRL+X.

Katso nyt määritystiedostoasi/etc/network/interfaces

sudo nano/etc/network/interfaces

Vaihda wlan0 -osa:

auto wlan0

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

Tallenna tiedosto (CTRL+O) ja lopeta sitten (CTRL+X).

Uudelleenkäynnistyksen (sudo reboot) jälkeen wifi -yhteyden pitäisi toimia. Voit testata tämän pingittämällä verkkosivuston;

ping www.google.com

Peruuta ping painamalla CTRL+C

Jos haluat muodostaa yhteyden Pi: hen SSH: n kautta langattomasti, ota SSH käyttöön:

sudo raspi-config

Siirry kohtaan "5 liitäntävaihtoehtoa" ja ota SSH käyttöön. Palaa sitten ja poistu asetuksista.

Etsi Pi: n IP -osoite:

ifconfig

IP -osoite on wlan0 -käyttöliittymän "inet addr:" -kohdassa.

Nyt voit muodostaa yhteyden Pi -laitteeseen WiFi -yhteyden kautta, jos olet samassa verkossa. Lataa Putty (Windows), kirjoita IP -osoite, jonka löysit kohdasta "Host Name", ja paina "Open". Kun olet hyväksynyt varoituksen, sinun pitäisi nyt nähdä komentorivi ja kirjautua sisään.

Vaihe 3: Päivitä ja asenna tarvittava ohjelmisto

Päivitä ja asenna vaadittu ohjelmisto
Päivitä ja asenna vaadittu ohjelmisto
Päivitä ja asenna vaadittu ohjelmisto
Päivitä ja asenna vaadittu ohjelmisto

Kun WiFi toimii, päivitä Pi:

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

Kun päivitys on valmis (se voi viedä hetken), asenna käyttämämme ohjelmisto;

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

Vaihe 4: Yhdistä anturiin (tässä esimerkissä Arduino)

Liitä Arduino joko näppäimistöllä USB -keskittimen avulla tai yhdistä Arduino yhden USB -portin kautta ja tee asetukset SSH: n kautta WiFi -yhteyden kautta.

Jotta voit käyttää sarjaporttia, johon Arduino on kytketty, on hyödyllistä antaa pääsy oletusarvoiselle pi -tilille. Kuten Arduino yleensä määrittää portille "/dev/ttyACM0", anna seuraava komento antaa "pi" -käyttäjälle pääsy porttiin:

sudo chown pi: /dev /ttyACM0

Olettaen, että Arduino on jo määritetty lähettämään tietoja sarjaportin kautta, voit tarkastella tietoja pythonissa seuraavasti:

Avaa python;

python3

Tuo sarja:

tuoda sarja

Avaa com -portti:

ser = sarja. sarja (portti = '/dev/ttyACM0', baudrate = 9600, aikakatkaisu = 5)

Tässä tapauksessa Arduinon siirtonopeus oli 9600.

Voit lukea ja tulostaa rivin suorittamalla seuraavan koodin:

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

Jos se toimii, voit sulkea yhteyden ja poistua Pythonista seuraavasti:

ser.close ()

poistu ()

Vaihe 5: Määritä WiFi -tukiaseman ominaisuudet

Asettamalla Pi Zero W: n wifi -tukiaseman tilaan voit muodostaa yhteyden siihen millä tahansa wifi -laitteella. Tämä mahdollistaa lokitiedoston määrittämisen ja tietojen lataamisen wifi -yhteyden kautta ilman kaapeleita tai ohjaimia.

Tätä varten Adafruitilla on hyvä opetusohjelma. Muutama pieni huomautus:

  • Älä käytä ohjainriviä /etc/hostapd/hostapd.conf -ohjaimelle.
  • Päivitä hostapd -vaihe ei pitäisi olla tarpeen.

Jos tukiasema ei toimi opetusohjelman lopussa, yritä käynnistää Pi uudelleen (sudo reboot).

Vaihe 6: Vaihtaminen Wifi -tukiaseman ja asiakastilan välillä

Joskus haluat päivittää ohjelmiston tai asentaa uuden ohjelmiston Raspberry Pi -laitteeseesi, mutta tämä edellyttää Internet -yhteyttä. Onneksi vaihtaminen näiden kahden välillä on erittäin helppoa.

Yhdistä Pi -laitteeseen SSH: lla (kaapelilla, ei wifi -yhteydellä!). Aloita pysäyttämällä tukiasemapalvelut:

sudo cystemctl pysäytä hostapd.service

sudo cystemctl stop isc-dhcp-server.service

Muokkaa sitten verkkoliitäntätiedostoa:

sudo nano/etc/network/interfaces

Täällä sinun on kommentoitava isäntäparametrit ja poistettava verkkoyhteysparametrien kommentit. Muuta se tästä:

#-Isännöintiparametrit:

allow-hotplug wlan0 iface wlan0 inet staattinen osoite 192.168.42.1 netmask 255.255.255.0 # -Verkko (asiakas) parametrit: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Tähän:

#-Hosting-parametrit: #allow-hotplug wlan0 #iface wlan0 inet staattinen #osoite 192.168.42.1 #netmask 255.255.255.0 #-Network (client) parametrit: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Tallenna ja sulje tiedosto.

Seuraavaksi suoritat seuraavat komennot:

sudo systemctl käynnistä wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Nyt Pi: n pitäisi muodostaa yhteys wifi -verkkoon uudelleen, jolloin voit päivittää ja asentaa ohjelmiston.

Palataksesi tukiasematilaan, vaihda kommentit/etc/network/interfaces ja käynnistä Pi uudelleen.

Vaihe 7: Viimeiset huomautukset

Lopulliset huomautukset
Lopulliset huomautukset

Verkkosivuston asetukset

Apache -palvelin sijaitsee/var/www/. Jos haluat muuttaa oletussivua, muokkaa /var/www/html/index.html -tiedostoa.

Voit asettaa täällä olevat tiedostot ladattavaksi wifi -yhteyden kautta navigoimalla selaimesi Pi: n IP -osoitteeseen (192.168.42.1). Kaikki wifi -yhteensopivat laitteet voivat ladata ne ilman lisäohjelmistoa.

SFTP -yhteys

SSH: n kautta voidaan muodostaa FTP -yhteys. Filezillan avulla voit siirtää nopeasti ja helposti suuren määrän tiedostoja (katso kuva).

Reaaliaikainen kello

Koska Pi: n sisäinen kello ajautuu merkittävästi, jos Internet -yhteyttä ei ole, tarvitaan reaaliaikaisen kellon (RTC) moduuli, jos tarvitaan tarkkaa kellonaikaa. Yksi tällainen moduuli on RasClock, asennusohjeet löytyvät täältä. Saatavilla on myös muita i2c -pohjaisia kelloja (esim. DS3231)

Johtopäätös

Jos kaikki meni oikein, sinulla pitäisi nyt olla toimiva Pi Zero -dataloggeri! Esimerkki python -kirjautumiskomentosarjasta sisältyy seuraavaan vaiheeseen.

Vaihe 8: Esimerkki Python -kirjausskriptistä

tuonti

tuoda sarjaa ajasta tuontiajasta päivämäärän tuonnista päivämäärän tuonti numpy muodossa np ser = sarja. sarja (portti = 'COM4', baudrate = 57600, aikakatkaisu = 5) hakemisto = 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 = hakemisto + day_timestring +'.dat '#Lue tietoja ja saat heti aikaviivan = ser.readline (). dekoodata ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') line = line.split (', ') try: u = float (line [1]) paitsi: u = np.nan try: v = float (line [2]) paitsi: v = np.nan try: w = float (line [3]) paitsi: w = np.nan try: c = float (line [5]) paitsi: c = np.nan Ts = 1/403*c ** 2-273,15 kokeile: Ta = float (rivi [8]) paitsi: Ta = np.nan if (os.path.isfile (file_today)): jossa open (file_today, 'a') kuten fileobject: fileobject.write (nowtime+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () else: jossa open (file_today, 'w') kuten fileobject: fileobject.write ('"Aika", "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 () paitsi näppäimistöInterrupt: ser.close ()

Suositeltava: