Talaan ng mga Nilalaman:

Raspberry Pi Zero W Datalogger: 8 Hakbang (na may Mga Larawan)
Raspberry Pi Zero W Datalogger: 8 Hakbang (na may Mga Larawan)

Video: Raspberry Pi Zero W Datalogger: 8 Hakbang (na may Mga Larawan)

Video: Raspberry Pi Zero W Datalogger: 8 Hakbang (na may Mga Larawan)
Video: TITANFALL 2 FULL GAME | CAMPAIGN - Walkthrough / PS4 (All Pilot Helmets) 2024, Nobyembre
Anonim
Raspberry Pi Zero W Datalogger
Raspberry Pi Zero W Datalogger

Gamit ang isang Raspberry Pi Zero W, maaari kang gumawa ng isang murang at madaling gamitin na datalogger, na maaaring konektado sa isang lokal na wifi network, o maglingkod bilang isang access point sa patlang na nagbibigay-daan sa iyo upang mag-download ng data nang wireless sa iyong smartphone.

Ipinakita ko ang setup na ito sa American Geophysical Union Fall Meeting 2017, bilang isang paraan upang makagawa ng iyong sariling pag-set up ng data logger. Mahahanap mo rito ang pagtatanghal.

Ano ang kakailanganin mo:

  • Isang Raspberry Pi Zero W
  • Isang micro SD card
  • isang USB cable o USB power supply
  • Isang computer na may USB card reader
  • Opsyonal (ngunit kapaki-pakinabang):

    • miniHDMI -> HDMI adapter (upang ikonekta ang Pi sa isang screen)
    • USB OTG adapter (upang ikonekta ang isang keyboard sa Pi

Hakbang 1: I-set up ang Pi Zero W

Upang magsimula, maglagay ng isang imahe ng Rasbian sa isang microSD card (sa tutorial na ito ginamit ko ang 2017-07-05-raspbian-jessie-lite, magagamit dito). Maaaring magamit ang isang lite na bersyon (nang walang isang desktop) dahil ang pag-set up ay magagawa sa pamamagitan ng linya ng utos.

Ipasok ang SD card sa Pi, ikonekta ang screen at isang keyboard, at i-power up ito sa pamamagitan ng pag-plug sa power cable. Posible ring mag-setup ng walang ulo, ngunit mangangailangan ng pagkonekta sa SSH.

Matapos na-boot ng Pi ang pag-login (default na username: pi, password: raspberry), at baguhin ang password gamit ang utos na "passwd".

Maaaring mai-configure ang keyboard sa pamamagitan ng pagpasok ng "sudo raspi-config" sa terminal.

Hakbang 2: Kumonekta sa WiFi

Kumonekta sa WiFi
Kumonekta sa WiFi
Kumonekta sa WiFi
Kumonekta sa WiFi
Kumonekta sa WiFi
Kumonekta sa WiFi
Kumonekta sa WiFi
Kumonekta sa WiFi

Upang kumonekta sa internet, sasabihin namin sa Pi kung aling network ang makakonekta. Magsimula sa pamamagitan ng pagbubukas ng sumusunod na file;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Dito, idagdag ang impormasyon ng network sa ibaba;

network = {

ssid = "pangalan ng network" psk = "network password"}

Sa kaso ng isang network ng enterprise, maaari mong gamitin ang sumusunod na pag-set up (ayusin ang WPA-EAP // TTLA // MSCHAPv2 sa mga naaangkop na setting).

network = {

ssid = "ssid" # Ipasok ang iyong pangalan ng network key_mgmt = WPA-EAP eap = TTLS pagkakakilanlan = "xxxxx" # Ipasok ang iyong password sa pag-login account = "xxxxx" # Ipasok ang passwork phase2 = "auth = MSCHAPv2"}

I-save sa pamamagitan ng pagpindot sa CTRL + O, at lumabas gamit ang CTRL + X.

Sumangguni ngayon sa iyong config file sa / etc / network / interface

sudo nano / etc / network / interface

Palitan ang bahagi ng wlan0 sa:

auto wlan0

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

Muli, i-save ang file (CTRL + O) at pagkatapos ay lumabas (CTRL + X).

Pagkatapos ng pag-reboot (sudo reboot), dapat gumana ang iyong koneksyon sa wifi. Maaari mo itong subukan sa pamamagitan ng pag-ping sa isang website;

ping www.google.com

Kanselahin ang ping gamit ang CTRL + C

Upang kumonekta sa Pi over SSH nang wireless, dapat mong paganahin ang SSH:

sudo raspi-config

Mag-navigate sa "5 Mga Pagpipilian sa Pag-interface", at paganahin ang SSH. Pagkatapos ay bumalik at lumabas sa pagsasaayos.

Hanapin ang IP address ng Pi:

ifconfig

Ang IP ay sasailalim sa "inet addr:" ng wlan0 interface.

Ngayon ay maaari kang kumonekta sa Pi sa paglipas ng WiFi, kung nasa parehong network ka. I-download ang Putty (para sa mga bintana), ipasok ang IP address na iyong natagpuan sa ilalim ng "Host Name", at pindutin ang "Open". Matapos tanggapin ang babala dapat mo na ngayong makita ang linya ng utos at pag-login.

Hakbang 3: I-update at I-install ang Kinakailangan na Software

I-update at I-install ang Kinakailangan na Software
I-update at I-install ang Kinakailangan na Software
I-update at I-install ang Kinakailangan na Software
I-update at I-install ang Kinakailangan na Software

Matapos gumana ang WiFi, i-update ang Pi gamit ang:

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

Matapos matapos ang pag-update (maaari itong magtagal), i-install ang software na gagamitin namin;

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

Hakbang 4: Kumonekta sa isang Sensor (sa Halimbawa na ito ng isang Arduino)

Alinmang ikonekta ang Arduino kasama ang isang keyboard gamit ang isang USB hub, o ikonekta ang Arduino sa pamamagitan ng solong USB port, at gawin ang pag-setup sa SSH sa paglipas ng WiFi.

Upang ma-access ang serial port na nakakonekta ang Arduino, kapaki-pakinabang na magbigay ng access sa default pi account. Tulad ng karaniwang itinatalaga sa Arduino sa port "/ dev / ttyACM0", gamitin ang sumusunod na utos upang bigyan ang 'pi' na access ng gumagamit sa port:

sudo chown pi: / dev / ttyACM0

Ipagpalagay, na ang Arduino ay na-set up na upang magpadala ng data sa serial port, maaari mong tingnan ang data sa sawa sa sumusunod na paraan:

Buksan ang sawa;

sawa3

Mag-import ng serial:

mag-import ng serial

Buksan ang com port:

ser = serial. Serial (port = '/ dev / ttyACM0', baudrate = 9600, timeout = 5)

Kung saan ang baudrate ng Arduino ay nakatakda sa 9600 sa kasong ito.

Maaari mong basahin at i-print ang isang linya sa pamamagitan ng pagpapatakbo ng sumusunod na code:

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

Kung pinagagana mo ito, maaari mong isara ang koneksyon at lumabas sa Python gamit ang:

ser.close ()

exit ()

Hakbang 5: I-set up ang Mga Kakayahang Access sa WiFi Access

Sa pamamagitan ng pagse-set up ng iyong Pi Zero W sa wifi access point mode, maaari kang kumonekta dito sa anumang wifi device. Pinapayagan nitong i-set up ang logger at mag-download ng data sa pamamagitan ng wifi, walang kinakailangang mga cable o driver.

Para dito, ang Adafruit ay mayroong magandang magagamit na tutorial. Ilang maliliit na pangungusap:

  • Para sa driver ng /etc/hostapd/hostapd.conf, gamitin ang huwag gamitin ang linya ng driver.
  • Ang hakbang na "I-update ang hostapd" ay hindi dapat kinakailangan.

Kung ang point ng pag-access ay hindi gagana sa pagtatapos ng tutorial, subukang i-reboot ang Pi (sudo reboot).

Hakbang 6: Paglipat sa Pagitan ng Wifi Access Point at Mga Client Mode

Minsan gugustuhin mong i-update ang software, o mag-install ng bagong software sa iyong Raspberry Pi, ngunit nangangailangan ito ng koneksyon sa internet. Sa kabutihang palad ang paglipat sa pagitan ng dalawa ay napakadali.

Kumonekta sa Pi gamit ang SSH (sa isang cable, hindi wifi!). Magsimula sa pamamagitan ng pagtigil sa mga serbisyo ng access point:

sudo cystemctl ihinto ang hostapd.service

sudo cystemctl stop isc-dhcp-server.service

Pagkatapos i-edit ang file ng mga interface ng network:

sudo nano / etc / network / interface

Dito dapat mong puna ang mga parameter ng pagho-host, at i-un-comment ang mga parameter ng koneksyon sa network. Palitan ito mula dito:

# -Mga parameter ng pag-host:

allow-hotplug wlan0 iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0 # -Network (client) na mga parameter: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Sa ganito:

# -Mga parameter ng pag-host: # allow-hotplug wlan0 #iface wlan0 inet static # address 192.168.42.1 # netmask 255.255.255.0 # -Network (client) na mga parameter: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

I-save at isara ang file.

Susunod na patakbuhin mo ang mga sumusunod na utos:

sudo systemctl simulan ang wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Ngayon ang iyong Pi ay dapat kumonekta sa wifi muli, na pinapayagan kang mag-update at mag-install ng software.

Upang makabalik sa access point mode, lumipat sa paligid ng mga komento sa / etc / network / interface, at i-reboot ang Pi.

Hakbang 7: Pangwakas na Pangungusap

Pangwakas na Pangungusap
Pangwakas na Pangungusap

Pag-setup ng website

Ang server ng apache ay matatagpuan sa / var / www /. Upang baguhin ang default na pahina, i-edit ang /var/www/html/index.html file.

Maaari mong gawing magagamit ang mga file dito upang mai-download sa koneksyon ng wifi, sa pamamagitan ng pag-navigate sa iyong browser sa IP address ng Pi (192.168.42.1). Ang anumang aparato na pinagana ng wifi ay maaaring mag-download ng mga ito nang walang anumang labis na software.

Koneksyon ng SFTP

Sa paglipas ng SSH, maaaring gawin ang isang koneksyon sa FTP. Maaari mong gamitin ang Filezilla upang mabilis at madaling ilipat ang isang malaking halaga ng mga file (tingnan ang imahe).

Oras ng Tunay na Oras

Tulad ng panloob na orasan ng Pi ay naaanod nang malaki kung walang koneksyon sa internet, isang module ng real time na orasan (RTC) ang kakailanganin kung kinakailangan ng tumpak na pag-iingat ng oras. Ang isang tulad ng module ay ang RasClock, ang mga tagubilin sa pag-install ay matatagpuan dito. Ang iba pang mga orasan na batay sa i2c ay magagamit din (hal. DS3231)

Konklusyon

Kung nagpunta ang lahat nang tama, mayroon ka na ngayong gumaganang datalogger ng Pi Zero! Ang isang halimbawa ng script sa pag-log ng sawa ay kasama sa susunod na hakbang.

Hakbang 8: Halimbawa ng Python Logging Script

import os

mag-import ng serial mula sa oras ng pag-import ng oras mula sa datime na pag-import ng datime import numpy bilang np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) direktoryo = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () subukan: habang Totoo: day_timestring = datime.strftime (datime.now (),'% Y% m% d ') file_today = direktoryo + day_timestring +'.dat '#Basahin data at agad na makuha ang linya ng oras = ser.readline (). decode ('utf-8') nowtime = datime.strftime (datime.now (), '% Y-% m-% d% H:% M:% S.% f ') line = line.split (', ') subukan: u = float (linya [1]) maliban sa: u = np.nan try: v = float (line [2]) maliban sa: v = np.nan try: w = float (line [3]) maliban sa: w = np.nan try: c = float (line [5]) maliban sa: c = np.nan Ts = 1/403 * c ** 2 - 273.15 subukan: Ta = float (linya [8]) maliban sa: Ta = np.nan kung (os.path.isfile (file_today)): na may bukas (file_today, 'a') bilang fileobject: fileobject.write (nowtime + ',') fileobject.write (str (u) + ',' + str (v) + ',' + str (w) + ',' + str (c) + ',' + str (Ts) + ',' + str (Ta) + '\ n') fileobject.clos e () iba pa: may bukas (file_today, 'w') bilang fileobject: fileobject.write ('"Oras", "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 () maliban sa KeyboardInterrupt: ser.close ()

Inirerekumendang: