Mundarija:

Raspberry Pi Zero W Datalogger: 8 qadam (rasmlar bilan)
Raspberry Pi Zero W Datalogger: 8 qadam (rasmlar bilan)

Video: Raspberry Pi Zero W Datalogger: 8 qadam (rasmlar bilan)

Video: Raspberry Pi Zero W Datalogger: 8 qadam (rasmlar bilan)
Video: Raspberry Pi 4 Data Logger | DHT11/DHT22 Sensor Data Logger 2024, Noyabr
Anonim
Raspberry Pi Zero W ma'lumotlar katalogi
Raspberry Pi Zero W ma'lumotlar katalogi

Raspberry Pi Zero W -dan foydalanib, siz mahalliy Wi -Fi tarmog'iga ulanadigan yoki ma'lumotlarni smartfon orqali simsiz yuklab olish imkonini beradigan kirish nuqtasi bo'lib xizmat qiladigan, arzon va ishlatish uchun qulay bo'lgan ma'lumot yozuvchini yasashingiz mumkin.

Men ushbu sozlamani Amerika Geofizik Ittifoqining kuzgi yig'ilishida taqdim etdim, bu sizning shaxsiy ma'lumotlarni yozish moslamasini o'rnatish usuli edi. Siz bu taqdimotni bu erda topishingiz mumkin.

Sizga nima kerak bo'ladi:

  • A Raspberry Pi Zero W
  • Micro SD karta
  • USB kabeli yoki USB quvvat manbai
  • USB kartani o'quvchi bilan jihozlangan kompyuter
  • Majburiy emas (lekin foydali):

    • miniHDMI -> HDMI adapteri (Pi -ni ekranga ulash uchun)
    • USB OTG adapteri (klaviaturani Pi ga ulash uchun

1 -qadam: Pi Zero W ni o'rnating

Boshlash uchun, microSD kartasiga Rasbian tasvirini qo'ying (bu darslikda men bu erda mavjud 2017-07-05-raspbian-jessie-lite-dan foydalanganman). Oddiy versiyadan foydalanish mumkin (ish stolisiz), chunki sozlash buyruq satri orqali amalga oshiriladi.

SD -kartani Pi -ga joylashtiring, ekran va klaviaturani ulang va quvvat simini ulang. Boshsiz o'rnatish ham mumkin, lekin SSH orqali ulanishni talab qiladi.

Pi ishga tushirilgandan so'ng, login (standart foydalanuvchi nomi: pi, parol: malina) va parolni "passwd" buyrug'i bilan o'zgartiring.

Klaviaturani terminalga "sudo raspi-config" kiritish orqali sozlash mumkin.

2 -qadam: Wi -Fi tarmog'iga ulaning

WiFi tarmog'iga ulaning
WiFi tarmog'iga ulaning
WiFi tarmog'iga ulaning
WiFi tarmog'iga ulaning
WiFi tarmog'iga ulaning
WiFi tarmog'iga ulaning
WiFi tarmog'iga ulaning
WiFi tarmog'iga ulaning

Internetga ulanish uchun biz Pi ga qaysi tarmoqqa ulanish kerakligini aytamiz. Quyidagi faylni ochish bilan boshlang;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Bu erda tarmoq ma'lumotlarini pastki qismiga qo'shing;

tarmoq = {

ssid = "tarmoq nomi" psk = "tarmoq paroli"}

Agar korporativ tarmoq bo'lsa, siz quyidagi sozlamalardan foydalanishingiz mumkin (WPA-EAP // TTLA // MSCHAPv2 ni mos keladigan sozlamalarga moslang).

tarmoq = {

ssid = "ssid" #Tarmoq nomini kiriting key_mgmt = WPA-EAP eap = TTLS identifikatori = "xxxxx" #Kirish hisobingiz parolini kiriting = "xxxxx" #O'tish ishining fazasini kiriting2 = "auth = MSCHAPv2"}

CTRL+O tugmachalarini bosib saqlang va CTRL+X tugmalar birikmasidan chiqing.

Endi/etc/network/interfeyslaridagi konfiguratsiya faylingizga havola qiling

sudo nano/etc/tarmoq/interfeyslari

Wlan0 qismini o'zgartiring:

avtomatik wlan0

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

Yana, faylni saqlang (CTRL+O) va keyin (CTRL+X) chiqing.

Qayta ishga tushirilgandan so'ng (sudo reboot), Wi -Fi ulanishi ishlashi kerak. Buni veb -saytni pinglash orqali sinab ko'rishingiz mumkin;

ping www.google.com

Pingni CTRL+C bilan bekor qiling

SSH orqali Pi -ga simsiz ulanish uchun siz SSH -ni yoqishingiz kerak:

sudo raspi-config

"5 interfeysli variant" ga o'ting va SSH -ni yoqing. Keyin orqaga qayting va konfiguratsiyadan chiqing.

Pi -ning IP -manzilini qidiring:

ifconfig

IP wlan0 interfeysining "inet addr:" ostida bo'ladi.

Endi siz Wi -Fi orqali Pi -ga ulanishingiz mumkin, agar siz bir xil tarmoqda bo'lsangiz. Putty -ni yuklab oling (derazalar uchun), "Xost nomi" ostida topilgan IP -manzilni kiriting va "Ochish" tugmasini bosing. Ogohlantirishni qabul qilgandan so'ng, siz buyruq satrini ko'rishingiz va tizimga kirishingiz kerak.

3 -qadam: kerakli dasturiy ta'minotni yangilang va o'rnating

Kerakli dasturiy ta'minotni yangilang va o'rnating
Kerakli dasturiy ta'minotni yangilang va o'rnating
Kerakli dasturiy ta'minotni yangilang va o'rnating
Kerakli dasturiy ta'minotni yangilang va o'rnating

WiFi ishlagandan so'ng, Pi -ni yangilang:

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

Yangilanish tugagandan so'ng (biroz vaqt ketishi mumkin), biz ishlatadigan dasturni o'rnating;

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

4 -qadam: Sensorga ulaning (bu misolda Arduino)

Arduino -ni USB uyasi yordamida klaviatura bilan bog'lang yoki Arduino -ni bitta USB port orqali ulang va Wi -Fi orqali SSH yordamida sozlang.

Arduino ulangan ketma -ket portga kirish uchun standart pi hisob qaydnomasiga kirishga ruxsat berish foydalidir. Arduino odatda "/dev/ttyACM0" portiga tayinlangani uchun, "pi" foydalanuvchisiga portga kirishga ruxsat berish uchun quyidagi buyruqdan foydalaning:

sudo chown pi: /dev /ttyACM0

Agar Arduino ketma -ket port orqali ma'lumotlarni yuborish uchun allaqachon o'rnatilgan deb hisoblasangiz, siz pythondagi ma'lumotlarni quyidagi tarzda ko'rishingiz mumkin:

Ochiq piton;

python3

Serialni import qilish:

serialni import qilish

Kirish portini oching:

ser = serial. Serial (port = '/dev/ttyACM0', bod tezligi = 9600, vaqt tugashi = 5)

Bu erda Arduino -ning bodud tezligi 9600 ga o'rnatildi.

Siz quyidagi kodni ishlatib satrni o'qishingiz va chop etishingiz mumkin:

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

Agar u ishlayotgan bo'lsa, ulanishni o'chirib, Python -dan chiqish mumkin:

ser.close ()

Chiqish()

5 -qadam: WiFi kirish nuqtasi imkoniyatlarini o'rnating

Wi -Fi kirish nuqtasi rejimida Pi Zero W -ni sozlash orqali siz unga har qanday Wi -Fi qurilmasi bilan ulanishingiz mumkin. Bu loggerni sozlash va ma'lumotlarni Wi -Fi orqali yuklab olish imkonini beradi, kabellar yoki haydovchilar kerak emas.

Buning uchun Adafruit -da yaxshi qo'llanma mavjud. Ba'zi kichik izohlar:

  • /Etc/hostapd/hostapd.conf drayveri uchun haydovchi chizig'idan foydalanmang.
  • "Hostapd -ni yangilash" bosqichi kerak bo'lmasligi kerak.

Qo'llanma oxirida kirish nuqtasi ishlamasa, Pi (sudo reboot) ni qayta ishga tushiring.

6 -qadam: Wi -Fi kirish nuqtasi va mijoz rejimlari o'rtasida almashish

Ba'zida siz Raspberry Pi -ga dasturiy ta'minotni yangilashni yoki yangi dasturiy ta'minotni o'rnatishni xohlaysiz, lekin buning uchun internetga ulanish kerak. Yaxshiyamki, ikkalasini almashtirish juda oson.

Pi -ga SSH bilan ulaning (Wi -Fi orqali emas, kabel orqali!). Kirish nuqtasi xizmatlarini to'xtatish bilan boshlang:

sudo cystemctl hostapd.service -ni to'xtating

sudo cystemctl stop isc-dhcp-server.service

Keyin tarmoq interfeyslari faylini tahrir qiling:

sudo nano/etc/tarmoq/interfeyslari

Bu erda siz hosting parametrlarini sharhlashingiz va tarmoq ulanish parametrlarini sharhlamasligingiz kerak. Buni quyidagicha o'zgartiring:

#-Hosting parametrlari:

allow-hotplug wlan0 iface wlan0 inet statik manzil 192.168.42.1 netmask 255.255.255.0 # -Tarmoq (mijoz) parametrlari: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Bunga:

#-Hosting parametrlari: #allow-hotplug wlan0 #iface wlan0 inet statik #manzil 192.168.42.1 #netmask 255.255.255.0 #-Tarmoq (mijoz) parametrlari: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_confs

Faylni saqlang va yoping.

Keyin siz quyidagi buyruqlarni bajarasiz:

sudo systemctl wpa_supplicant.service -ni ishga tushiring

sudo ifdown wlan0 sudo ifup wlan0

Endi sizning Pi yana Wi -Fi tarmog'iga ulanishi kerak, bu sizga dasturiy ta'minotni yangilash va o'rnatish imkonini beradi.

Kirish nuqtasi rejimiga qaytish uchun/etc/network/interfeyslaridagi sharhlarni almashtiring va Pi -ni qayta ishga tushiring.

7 -qadam: Yakuniy izohlar

Yakuniy izohlar
Yakuniy izohlar

Veb -saytni sozlash

Apache serveri/var/www/da joylashgan. Standart sahifani o'zgartirish uchun /var/www/html/index.html faylini tahrir qiling.

Siz bu erdagi fayllarni Wi -Fi orqali yuklab olishingiz mumkin, brauzeringiz orqali Pi -ning IP -manziliga o'ting (192.168.42.1). Wi -Fi -ga ulangan har qanday qurilma ularni qo'shimcha dasturlarsiz yuklab olishi mumkin.

SFTP ulanishi

SSH orqali FTP ulanishi mumkin. Fayllarni tez va oson o'tkazish uchun Filezilla -dan foydalanishingiz mumkin (rasmga qarang).

Haqiqiy vaqt soati

Agar Internetga ulanish bo'lmasa, Pi ning ichki soati sezilarli darajada siljiydi, agar aniq vaqtni saqlash zarur bo'lsa, real vaqtda soat (RTC) moduli kerak bo'ladi. Bunday modullardan biri bu RasClock, o'rnatish ko'rsatmalarini bu erda topishingiz mumkin. Boshqa i2c soatlari ham mavjud (ya'ni. DS3231)

Xulosa

Agar hamma narsa to'g'ri bajarilgan bo'lsa, endi sizda Pi Zero ishlaydigan ma'lumotlar katalogi bo'lishi kerak! Python jurnalini yozish skriptining misoli keyingi bosqichga kiritilgan.

8 -qadam: Python logging skriptiga misol

import qilish os

serial vaqtini import vaqtidan vaqtni import vaqtini import raqamini np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) katalogi = r '\ var / www / html / ma'lumotlar / anemometr / WMPro1352_ 'ser.flushInput () ser.flushOutput () urinib ko'ring: while True: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = katalog + day_timestring +'.dat '#O'qing ma'lumotlar va darhol vaqt qatorini oling = ser.readline (). dekodlash ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') chiziq = chiziq.split (', ') urinish: u = suzish (chiziq [1]) tashqari: u = np.nan urinish: v = suzish (chiziq [2]) tashqari: v = np.nan urinib ko'ring: w = suzuvchi (chiziq [3]) bundan mustasno: w = np.nan urinish: c = float (chiziq [5]) bundan mustasno: c = np.nan Ts = 1/403*c ** 2 - 273.15 harakat qilib ko'ring: Ta = float (chiziq [8]) bundan mustasno: Ta = np.nan if (os.path.isfile (file_today))): open (file_today, 'a') fileobject: fileobject.write (nowtime+',')) fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+) str (Ta)+'\ n') fileobject.clos e () boshqa: ochiq (file_today, 'w') bilan fileobject sifatida: fileobject.write ('"Vaqt", "u", "v", "w", "c", "Ts", "Ta" ) n ') fileobject.write (hozir+', ') fileobject.write (str (u)+', '+str (v)+', '+str (w)+', '+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close () KeyboardInterruptdan tashqari: ser.close ()

Tavsiya: