Daftar Isi:

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, Juli
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 dapat terhubung ke jaringan wifi lokal, atau berfungsi sebagai titik akses di lapangan yang memungkinkan Anda mengunduh data secara nirkabel dengan smartphone Anda.

Saya mempresentasikan pengaturan ini di American Geophysical Union Fall Meeting 2017, sebagai cara untuk membuat pengaturan pencatat data Anda sendiri. Anda dapat menemukan presentasi itu di sini.

Apa yang Anda perlukan:

  • Sebuah Raspberry Pi Nol W
  • Kartu micro SD
  • kabel USB atau catu daya USB
  • Komputer dengan pembaca kartu USB
  • Opsional (tetapi bermanfaat):

    • miniHDMI -> adaptor HDMI (untuk menghubungkan Pi ke layar)
    • Adaptor USB OTG (untuk menghubungkan keyboard ke Pi

Langkah 1: Siapkan Pi Zero W

Untuk memulai, letakkan gambar Rasbian pada kartu microSD (dalam tutorial ini saya menggunakan 2017-07-05-raspbian-jessie-lite, tersedia di sini). Versi lite dapat digunakan (tanpa desktop) karena pengaturan akan dilakukan melalui baris perintah.

Masukkan kartu SD ke Pi, sambungkan layar dan keyboard, dan nyalakan dengan mencolokkan kabel daya. Pengaturan tanpa kepala juga dimungkinkan, tetapi akan membutuhkan koneksi melalui SSH.

Setelah Pi boot, login (nama pengguna default: pi, kata sandi: raspberry), dan ubah kata sandi dengan perintah "passwd".

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

Langkah 2: Hubungkan 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 terhubung ke internet, kami akan memberi tahu Pi jaringan mana yang harus terhubung. Mulailah dengan membuka file berikut;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Di sini, tambahkan informasi jaringan di bagian bawah;

jaringan={

ssid="nama jaringan" psk="kata sandi jaringan" }

Dalam kasus jaringan perusahaan, Anda dapat menggunakan pengaturan berikut (sesuaikan WPA-EAP // TTLA // MSCHAPv2 ke pengaturan yang berlaku).

jaringan={

ssid="ssid" #Masukkan nama jaringan Anda key_mgmt=WPA-EAP eap=TTLS identity="xxxxx" #Masukkan kata sandi akun login Anda="xxxxx" #Masukkan passwork phase2="auth=MSCHAPv2" }

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

Sekarang rujuk file konfigurasi Anda di /etc/network/interfaces

sudo nano /etc/network/interfaces

Ubah bagian wlan0 menjadi:

wlan otomatis0

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

Sekali lagi, simpan file (CTRL+O) lalu keluar (CTRL+X).

Setelah reboot (sudo reboot), koneksi wifi Anda akan berfungsi. Anda dapat menguji ini dengan melakukan ping ke situs web;

ping www.google.com

Batalkan ping dengan CTRL+C

Untuk terhubung ke Pi melalui SSH secara nirkabel, Anda harus mengaktifkan SSH:

sudo raspi-config

Arahkan ke "5 Interfacing Options", dan aktifkan SSH. Kemudian kembali dan keluar dari konfigurasi.

Cari alamat IP Pi:

ifconfig

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

Sekarang Anda dapat terhubung ke Pi melalui WiFi, jika Anda berada di jaringan yang sama. Unduh Putty (untuk windows), masukkan alamat IP yang Anda temukan di bawah "Nama Host", dan tekan "Buka". Setelah menerima peringatan, Anda sekarang dapat melihat baris perintah dan login.

Langkah 3: Perbarui dan Instal Perangkat Lunak yang Diperlukan

Perbarui dan Instal Perangkat Lunak yang Diperlukan
Perbarui dan Instal Perangkat Lunak yang Diperlukan
Perbarui dan Instal Perangkat Lunak yang Diperlukan
Perbarui dan Instal Perangkat Lunak yang Diperlukan

Setelah WiFi berfungsi, perbarui Pi dengan:

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

Setelah pembaruan selesai (dapat memakan waktu cukup lama), instal perangkat lunak yang akan kita gunakan;

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

Langkah 4: Hubungkan ke Sensor (dalam Contoh Ini Arduino)

Hubungkan Arduino bersama dengan keyboard menggunakan hub USB, atau sambungkan Arduino melalui port USB tunggal, dan lakukan pengaturan dengan SSH melalui WiFi.

Untuk dapat mengakses port serial yang terhubung dengan Arduino, ada baiknya memberikan akses ke akun pi default. Karena Arduino biasanya ditetapkan ke port "/ dev/ttyACM0", gunakan perintah berikut untuk memberikan akses pengguna 'pi' ke port:

sudo chown pi: /dev/ttyACM0

Dengan asumsi, bahwa Arduino telah diatur untuk mengirim data melalui port serial, Anda dapat melihat data dengan python dengan cara berikut:

Buka python;

python3

Impor serial:

impor serial

Buka port com:

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

Dimana baudrate Arduino diatur ke 9600 dalam hal ini.

Anda dapat membaca dan mencetak satu baris dengan menjalankan kode berikut:

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

Jika berhasil, Anda dapat menutup koneksi dan keluar dari Python dengan:

ser.close()

keluar()

Langkah 5: Siapkan Kemampuan Titik Akses WiFi

Dengan mengatur Pi Zero W Anda dalam mode titik akses wifi, Anda dapat menghubungkannya dengan perangkat wifi apa pun. Ini memungkinkan pengaturan logger dan mengunduh data melalui wifi, tidak diperlukan kabel atau driver.

Untuk ini, Adafruit memiliki tutorial yang bagus. Beberapa komentar kecil:

  • Untuk driver /etc/hostapd/hostapd.conf, gunakan jangan gunakan baris driver.
  • Langkah "Perbarui hostapd" seharusnya tidak diperlukan.

Jika titik akses tidak berfungsi di akhir tutorial, coba reboot Pi (sudo reboot).

Langkah 6: Beralih Antara Titik Akses Wifi dan Mode Klien

Terkadang Anda ingin memperbarui perangkat lunak, atau menginstal perangkat lunak baru ke Raspberry Pi Anda, tetapi ini memerlukan koneksi internet. Untungnya beralih di antara keduanya sangat mudah.

Hubungkan ke Pi dengan SSH (melalui kabel, bukan wifi!). Mulailah dengan menghentikan layanan titik akses:

sudo cystemctl stop hostapd.service

sudo cystemctl stop isc-dhcp-server.service

Kemudian edit file antarmuka jaringan:

sudo nano /etc/network/interfaces

Di sini Anda harus mengomentari parameter hosting, dan menghapus komentar pada parameter koneksi jaringan. Ubah dari ini:

#-Parameter hosting:

allow-hotplug wlan0 iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0 #-Parameter jaringan (klien): #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Untuk ini:

#-Parameter hosting:#allow-hotplug wlan0 #iface wlan0 inet static # address 192.168.42.1 # netmask 255.255.255.0 #-Parameter jaringan (klien): auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Simpan dan tutup file.

Selanjutnya Anda menjalankan perintah berikut:

sudo systemctl start wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Sekarang Pi Anda harus terhubung ke wifi lagi, memungkinkan Anda memperbarui dan menginstal perangkat lunak.

Untuk kembali ke mode titik akses, alihkan komentar di /etc/network/interfaces, dan reboot Pi.

Langkah 7: Catatan Akhir

Catatan Akhir
Catatan Akhir

Pengaturan situs web

Server apache terletak di /var/www/. Untuk mengubah halaman default, edit file /var/www/html/index.html.

Anda dapat membuat file di sini tersedia untuk diunduh melalui koneksi wifi, dengan menavigasi browser Anda ke alamat IP Pi (192.168.42.1). Perangkat berkemampuan wifi apa pun kemudian dapat mengunduhnya tanpa perangkat lunak tambahan apa pun.

koneksi SFTP

Melalui SSH, koneksi FTP dapat dibuat. Anda dapat menggunakan Filezilla untuk mentransfer file dalam jumlah besar dengan cepat dan mudah (lihat gambar).

Jam Waktu Nyata

Karena jam internal Pi akan melayang secara signifikan jika tidak ada koneksi ke internet, modul jam waktu nyata (RTC) akan diperlukan jika diperlukan ketepatan waktu yang akurat. Salah satu modul tersebut adalah RasClock, petunjuk instalasi dapat ditemukan di sini. Jam berbasis i2c lainnya juga tersedia (mis. DS3231)

Kesimpulan

Jika semuanya berjalan dengan benar, Anda sekarang harus memiliki datalogger Pi Zero yang berfungsi! Contoh skrip logging python disertakan dalam langkah berikutnya.

Langkah 8: Contoh Script Python Logging

impor os

import serial from time import time from datetime import datetime import numpy as np ser = serial. Serial(port = 'COM4', baudrate = 57600, timeout = 5) directory = 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 = directory + day_timestring + '.dat' #Read out data dan segera dapatkan garis waktu = 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 try: v = float(line[2]) kecuali: v = np.nan coba: w = float(baris[3]) kecuali: w = np.nan coba: c = float(baris[5]) kecuali: c = np.nan Ts = 1/403 * c**2 - 273,15 coba: Ta = float(line[8]) kecuali: Ta = np.nan if (os.path.isfile(file_today)): dengan open(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() else: dengan open(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()

Direkomendasikan: