Isi kandungan:

Raspberry Pi Zero W Datalogger: 8 Langkah (dengan Gambar)
Raspberry Pi Zero W Datalogger: 8 Langkah (dengan Gambar)

Video: Raspberry Pi Zero W Datalogger: 8 Langkah (dengan Gambar)

Video: Raspberry Pi Zero W Datalogger: 8 Langkah (dengan Gambar)
Video: The New Method to Setup Raspberry Pi Zero (2023 Tutorial) 2024, November
Anonim
Raspberry Pi Zero W Datalogger
Raspberry Pi Zero W Datalogger

Dengan menggunakan Raspberry Pi Zero W, anda dapat membuat datalogger yang murah dan mudah digunakan, yang boleh disambungkan ke rangkaian wifi tempatan, atau berfungsi sebagai titik akses di lapangan yang membolehkan anda memuat turun data tanpa wayar dengan telefon pintar anda.

Saya membentangkan persediaan ini pada Mesyuarat Kejatuhan Kesatuan Geofizik Amerika 2017, sebagai cara untuk membuat persediaan pencatat data anda sendiri. Anda boleh mendapatkan persembahan itu di sini.

Apa yang anda perlukan:

  • A Raspberry Pi Zero W
  • Kad SD mikro
  • kabel USB atau bekalan kuasa USB
  • Komputer dengan pembaca kad USB
  • Pilihan (tetapi berguna):

    • miniHDMI -> penyesuai HDMI (untuk menyambungkan Pi ke skrin)
    • Penyesuai USB OTG (untuk menyambungkan papan kekunci ke Pi

Langkah 1: Sediakan Pi Zero W

Untuk memulakan, letakkan gambar Rasbian pada kad microSD (dalam tutorial ini saya menggunakan 2017-07-05-raspbian-jessie-lite, boleh didapati di sini). Versi lite dapat digunakan (tanpa desktop) kerana penyiapan akan dilakukan melalui baris perintah.

Masukkan kad SD ke dalam Pi, sambungkan layar dan papan kekunci, dan hidupkan dengan memasang kabel kuasa. Penyediaan tanpa kepala juga mungkin dilakukan, tetapi memerlukan penyambungan melalui SSH.

Setelah Pi membuat boot masuk (nama pengguna lalai: pi, kata laluan: raspberry), dan ubah kata laluan dengan arahan "passwd".

Papan kekunci dapat dikonfigurasi dengan memasukkan "sudo raspi-config" di terminal.

Langkah 2: Sambungkan ke WiFi

Sambungkan ke WiFi
Sambungkan ke WiFi
Sambungkan ke WiFi
Sambungkan ke WiFi
Sambungkan ke WiFi
Sambungkan ke WiFi
Sambungkan ke WiFi
Sambungkan ke WiFi

Untuk menyambung ke internet, kami akan memberitahu Pi rangkaian mana yang hendak disambungkan. Mulakan dengan membuka fail berikut;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Di sini, tambahkan maklumat rangkaian di bahagian bawah;

rangkaian = {

ssid = "nama rangkaian" psk = "kata laluan rangkaian"}

Dalam kes rangkaian perusahaan, anda dapat menggunakan pengaturan berikut (sesuaikan WPA-EAP // TTLA // MSCHAPv2 ke pengaturan yang berlaku).

rangkaian = {

ssid = "ssid" #Masukkan nama rangkaian anda key_mgmt = WPA-EAP eap = TTLS identiti = "xxxxx" #Masukkan kata laluan akaun masuk anda = "xxxxx" #Masukkan fasa kerja pasif2 = "auth = MSCHAPv2"}

Simpan dengan menekan CTRL + O, dan keluar dengan CTRL + X.

Sekarang rujuk fail konfigurasi anda di / etc / network / interfaces

sudo nano / etc / network / antaramuka

Tukar bahagian wlan0 kepada:

auto wlan0

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

Sekali lagi, simpan fail (CTRL + O) dan kemudian keluar (CTRL + X).

Selepas reboot (sudo reboot), sambungan wifi anda akan berfungsi. Anda boleh mengujinya dengan melakukan ping di laman web;

ping www.google.com

Batalkan ping dengan CTRL + C

Untuk menyambung ke Pi melalui SSH tanpa wayar, anda harus mengaktifkan SSH:

sudo raspi-config

Navigasi ke "5 Pilihan Antaramuka", dan aktifkan SSH. Kemudian kembali dan keluar dari konfigurasi.

Cari alamat IP Pi:

ifconfig

IP akan berada di bawah "inet addr:" dari antara muka wlan0.

Sekarang anda boleh menyambung ke Pi melalui WiFi, jika anda berada di rangkaian yang sama. Muat turun Putty (untuk windows), masukkan alamat IP yang anda dapati di bawah "Host Name", dan tekan "Open". Setelah menerima amaran, anda seharusnya dapat melihat baris arahan dan log masuk.

Langkah 3: Kemas kini dan Pasang Perisian yang Diperlukan

Kemas kini dan Pasang Perisian yang Diperlukan
Kemas kini dan Pasang Perisian yang Diperlukan
Kemas kini dan Pasang Perisian yang Diperlukan
Kemas kini dan Pasang Perisian yang Diperlukan

Setelah WiFi berfungsi, kemas kini Pi dengan:

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

Setelah kemas kini selesai (memerlukan beberapa saat), pasang perisian yang akan kita gunakan;

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

Langkah 4: Sambungkan ke Sensor (dalam Contoh ini Arduino)

Sambungkan Arduino bersama-sama dengan papan kekunci menggunakan hab USB, atau sambungkan Arduino melalui port USB tunggal, dan lakukan penyiapan dengan SSH melalui WiFi.

Untuk dapat mengakses port bersiri yang disambungkan oleh Arduino, berguna untuk memberi akses ke akaun pi lalai. Oleh kerana Arduino biasanya diberikan ke port "/ dev / ttyACM0", gunakan perintah berikut untuk memberi pengguna 'pi' akses ke port:

sudo chown pi: / dev / ttyACM0

Dengan mengandaikan, bahawa Arduino telah disiapkan untuk mengirim data melalui port bersiri, anda dapat melihat data di python dengan cara berikut:

Buka ular sawa;

ular sawa3

Siri import:

siri import

Buka port com:

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

Di mana baudrate Arduino ditetapkan menjadi 9600 dalam kes ini.

Anda boleh membaca dan mencetak baris dengan menjalankan kod berikut:

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

Sekiranya anda berjaya, anda boleh menutup sambungan dan keluar dari Python dengan:

ser.tutup ()

keluar ()

Langkah 5: Sediakan Keupayaan Titik Akses WiFi

Dengan menyiapkan Pi Zero W anda dalam mod titik akses wifi, anda dapat menyambungkannya dengan mana-mana peranti wifi. Ini membolehkan menyiapkan logger dan memuat turun data melalui wifi, tidak memerlukan kabel atau pemacu.

Untuk ini, Adafruit mempunyai tutorial yang bagus. Beberapa komen kecil:

  • Untuk pemacu /etc/hostapd/hostapd.conf, gunakan jangan gunakan garis pemacu.
  • Langkah "Kemas kini hostapd" tidak semestinya diperlukan.

Sekiranya titik akses tidak berfungsi pada akhir tutorial, cuba reboot Pi (rebo sudo).

Langkah 6: Beralih Antara Mod Akses Wifi dan Mod Pelanggan

Kadang kala anda ingin mengemas kini perisian, atau memasang perisian baru ke Raspberry Pi anda, tetapi ini memerlukan sambungan internet. Nasib baik bertukar antara keduanya sangat mudah.

Sambungkan ke Pi dengan SSH (melalui kabel, bukan wifi!). Mulakan dengan menghentikan perkhidmatan pusat akses:

sudo cystemctl hentikan hostapd.service

sudo cystemctl stop isc-dhcp-server.service

Kemudian edit fail antara muka rangkaian:

sudo nano / etc / network / antaramuka

Di sini anda harus memberi komen mengenai parameter hosting, dan membatalkan komen parameter sambungan rangkaian. Ubah dari ini:

Parameter hosting:

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

Untuk ini:

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

Simpan dan tutup fail.

Seterusnya anda menjalankan arahan berikut:

sudo systemctl mulakan wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Sekarang Pi anda harus menyambung ke wifi lagi, yang membolehkan anda mengemas kini dan memasang perisian.

Untuk kembali ke mod titik akses, beralih komen di / etc / network / interfaces, dan reboot Pi.

Langkah 7: Ucapan Akhir

Ucapan Akhir
Ucapan Akhir

Penyediaan laman web

Pelayan apache terletak di / var / www /. Untuk menukar halaman lalai, edit fail /var/www/html/index.html.

Anda boleh menyediakan fail di sini untuk dimuat melalui sambungan wifi, dengan menavigasi penyemak imbas anda ke alamat IP Pi (192.168.42.1). Sebarang peranti berkemampuan wifi kemudian boleh memuat turunnya tanpa perisian tambahan.

Sambungan SFTP

Melalui SSH, sambungan FTP dapat dibuat. Anda boleh menggunakan Filezilla untuk memindahkan sejumlah besar fail dengan cepat dan mudah (lihat gambar).

Jam Masa Sebenar

Memandangkan jam dalaman Pi akan melayang dengan ketara jika tidak ada sambungan ke internet, modul jam masa nyata (RTC) akan diperlukan jika penjadualan masa yang tepat diperlukan. Salah satu modul tersebut adalah RasClock, arahan pemasangan boleh didapati di sini. Jam berasaskan i2c lain juga tersedia (iaitu DS3231)

Kesimpulannya

Sekiranya semuanya berjalan dengan betul, kini anda harus mempunyai datalogger Pi Zero yang berfungsi! Contoh skrip pembalakan python disertakan dalam langkah seterusnya.

Langkah 8: Contoh Skrip Log Python

import os

import siri dari waktu import time dari datetime import datetime import numpy sebagai np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) direktori = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () cubalah: while True: day_timestring = datetime.strftime (datetime.now (),'% Y% m% d ') file_today = direktori + day_timestring +'.dat '#Baca data dan segera dapatkan garis masa = ser.readline (). decode ('utf-8') nowtime = datetime.strftime (datetime.now (), '% Y-% m-% d% H:% M:% S.% f ') line = line.split (', ') try: u = float (line [1]) kecuali: u = np.nan cuba: v = float (garisan [2]) kecuali: v = np.nan cuba: w = terapung (garisan [3]) kecuali: w = np.nan cuba: c = terapung (garis [5]) kecuali: c = np.nan Ts = 1/403 * c ** 2 - 273.15 cuba: Ta = float (baris [8]) kecuali: Ta = np.nan if (os.path.isfile (file_today)): dengan terbuka (file_today, 'a') sebagai fileobject: fileobject.write (nowtime + ',') fileobject.write (str (u) + ',' + str (v) + ',' + str (w) + ',' + str (c) + ',' + str (Ts) + ',' + str (Ta) + '\ n') fileobject.clos e () lain: dengan terbuka (file_today, 'w') sebagai fileobject: fileobject.write ('"Time", "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 () kecuali KeyboardInterrupt: ser.close ()

Disyorkan: