Mündəricat:

Raspberry Pi Zero W Datalogger: 8 Addım (Şəkillərlə birlikdə)
Raspberry Pi Zero W Datalogger: 8 Addım (Şəkillərlə birlikdə)

Video: Raspberry Pi Zero W Datalogger: 8 Addım (Şəkillərlə birlikdə)

Video: Raspberry Pi Zero W Datalogger: 8 Addım (Şəkillərlə birlikdə)
Video: Высокоскоростной разъем Excel для Интернета вещей 2024, Noyabr
Anonim
Raspberry Pi Zero W Datalogger
Raspberry Pi Zero W Datalogger

Bir Raspberry Pi Zero W istifadə edərək, yerli wifi şəbəkəsinə qoşula bilən və ya məlumatlarınızı smartfonunuzla simsiz yükləməyinizə imkan verən sahədə bir giriş nöqtəsi olaraq xidmət edə biləcək ucuz və istifadəsi asan bir datalogger edə bilərsiniz.

Bu qurğunu Amerika Geofizika Birliyinin Payız Toplantısı 2017 -də öz məlumat qeyd etmə qurğunuzu qurmağın bir yolu olaraq təqdim etdim. Bu təqdimatı burada tapa bilərsiniz.

Nə lazımdır:

  • A Raspberry Pi Zero W
  • Mikro SD kart
  • USB kabel və ya USB enerji təchizatı
  • USB kart oxuyan kompüter
  • İsteğe bağlı (lakin faydalıdır):

    • miniHDMI -> HDMI adapteri (Pi'yi ekrana bağlamaq üçün)
    • USB OTG adapteri (klaviaturanı Pi -yə bağlamaq üçün)

Addım 1: Pi Zero W qurun

Başlamaq üçün bir microSD kartına Rasbian şəkli qoyun (bu dərslikdə 2017-07-05-raspbian-jessie-lite istifadə etdim, burada mövcuddur). Quraşdırma əmr xətti vasitəsilə həyata keçiriləcəyi üçün sadə bir versiya (masa üstü olmadan) istifadə edilə bilər.

SD kartı Pi -yə daxil edin, ekranı və klaviaturanı bağlayın və elektrik kabelini bağlayaraq açın. Başsız quraşdırma da mümkündür, ancaq SSH üzərindən əlaqə tələb olunur.

Pi girişi başladıqdan sonra (standart istifadəçi adı: pi, parol: moruq) və "passwd" əmri ilə şifrəni dəyişdirin.

Klaviatura terminalda "sudo raspi-config" yazaraq konfiqurasiya edilə bilər.

Addım 2: WiFi -yə qoşulun

WiFi -yə qoşulun
WiFi -yə qoşulun
WiFi -yə qoşulun
WiFi -yə qoşulun
WiFi -yə qoşulun
WiFi -yə qoşulun
WiFi -yə qoşulun
WiFi -yə qoşulun

İnternetə qoşulmaq üçün Pi -yə hansı şəbəkəyə qoşulacağımızı bildirəcəyik. Aşağıdakı faylı açaraq başlayın;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Burada aşağıya şəbəkə məlumatlarını əlavə edin;

şəbəkə = {

ssid = "şəbəkə adı" psk = "şəbəkə şifrəsi"}

Müəssisə şəbəkəsi vəziyyətində aşağıdakı quruluşdan istifadə edə bilərsiniz (WPA-EAP // TTLA // MSCHAPv2-ni tətbiq olunan parametrlərə uyğunlaşdırın).

şəbəkə = {

ssid = "ssid" #Şəbəkə adınızı daxil edin key_mgmt = WPA-EAP eap = TTLS identifikasiyası = "xxxxx" #Giriş hesabınızın parolunu daxil edin = "xxxxx" #Keçid mərhələsinə daxil olun2 = "auth = MSCHAPv2"}

CTRL+O düyməsini basaraq qənaət edin və CTRL+X ilə çıxın.

İndi/etc/network/interfeyslərdə konfiqurasiya sənədinizə istinad edin

sudo nano/etc/network/interfeysləri

Wlan0 hissəsini dəyişdirin:

avtomatik wlan0

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

Yenidən faylı saxla (CTRL+O) və sonra çıx (CTRL+X).

Yenidən başladıqdan sonra (sudo reboot), wifi bağlantınız işləməlidir. Bunu bir veb saytı ping edərək sınaya bilərsiniz;

ping www.google.com

Pinqi CTRL+C ilə ləğv edin

Pi üzərində SSH -ə simsiz qoşulmaq üçün SSH -ni aktiv etməlisiniz:

sudo raspi-config

"5 İnterfeys Seçimləri" nə gedin və SSH -i aktiv edin. Sonra geri qayıdın və konfiqurasiyadan çıxın.

Pi -nin IP ünvanını axtarın:

ifconfig

IP, wlan0 interfeysinin "inet addr:" altında olacaq.

Eyni şəbəkədəsinizsə, artıq WiFi üzərindən Pi -yə qoşula bilərsiniz. Putty (Windows üçün) yükləyin, "Host Adı" altında tapdığınız IP ünvanını daxil edin və "Aç" düyməsini basın. Xəbərdarlığı qəbul etdikdən sonra indi əmr satırını və girişi görə bilməlisiniz.

Addım 3: Lazımi Proqramı Yeniləyin və Qurun

Lazımi proqram təminatını yeniləyin və quraşdırın
Lazımi proqram təminatını yeniləyin və quraşdırın
Lazımi Proqram təminatını yeniləyin və quraşdırın
Lazımi Proqram təminatını yeniləyin və quraşdırın

WiFi işlədikdən sonra Pi ilə yeniləyin:

sudo apt -get yeniləmə -y && sudo apt -get upgrade -y

Yeniləmə başa çatdıqdan sonra (bir müddət çəkə bilər) istifadə edəcəyimiz proqramı quraşdırın;

sudo apt-get python3 python3-serial apache2 -y quraşdırın

Addım 4: Sensora qoşulun (Bu nümunədə Arduino)

Arduino ya bir USB hub istifadə edərək bir klaviatura ilə birləşdirin, ya da Arduino'yu tək bir USB portu ilə bağlayın və WiFi üzərindən SSH ilə qurun.

Arduinonun qoşulduğu serial portuna daxil olmaq üçün standart pi hesabına giriş vermək faydalıdır. Arduino ümumiyyətlə "/dev/ttyACM0" limanına təyin olunduğundan, 'pi' istifadəçisinin limana girişini təmin etmək üçün aşağıdakı əmri istifadə edin:

sudo chown pi: /dev /ttyACM0

Arduinonun serial port üzərindən məlumat göndərmək üçün artıq qurulduğunu fərz etsək, pythondakı məlumatlara aşağıdakı şəkildə baxa bilərsiniz:

Açıq piton;

python3

İdxal serialı:

idxal serialı

Giriş limanını açın:

ser = serial. Serial (port = '/dev/ttyACM0', baudrate = 9600, zaman aşımı = 5)

Bu vəziyyətdə Arduino -nun baud hızı 9600 olaraq təyin olundu.

Aşağıdakı kodu işlədərək bir sətir oxuya və çap edə bilərsiniz:

ser.readline (). deşifr edin ('utf-8')

İşləsəniz, əlaqəni bağlaya və Python -dan çıxa bilərsiniz:

ser.close ()

çıxmaq ()

Addım 5: WiFi giriş nöqtəsi imkanlarını qurun

Pi Zero W cihazınızı wifi giriş nöqtəsi rejimində quraraq, ona hər hansı bir wifi cihazı ilə qoşula bilərsiniz. Bu, qeyd cihazını qurmağa və məlumatları wifi üzərindən yükləməyə imkan verir, heç bir kabel və ya sürücü tələb olunmur.

Bunun üçün Adafruit -də yaxşı bir dərs var. Bəzi kiçik ifadələr:

  • /Etc/hostapd/hostapd.conf sürücüsü üçün sürücü xəttindən istifadə etməyin.
  • "Hostapd yeniləmə" addımı lazım olmamalıdır.

Dərsliyin sonunda giriş nöqtəsi işləmirsə, Pi'yi (sudo reboot) yenidən başladın.

Addım 6: Wifi giriş nöqtəsi ilə müştəri rejimi arasında keçid

Bəzən proqramı yeniləmək və ya Raspberry Pi -yə yeni bir proqram quraşdırmaq istəyəcəksiniz, ancaq bunun üçün internet bağlantısı lazımdır. Xoşbəxtlikdən ikisi arasında keçid etmək çox asandır.

SSH ilə Pi -yə qoşulun (wifi deyil, kabel üzərindən!). Giriş nöqtəsi xidmətlərini dayandıraraq başlayın:

sudo cystemctl hostapd.service'i dayandırın

sudo cystemctl stop isc-dhcp-server.service

Sonra şəbəkə interfeysi faylını redaktə edin:

sudo nano/etc/network/interfeysləri

Burada hosting parametrlərini şərh etməli və şəbəkə bağlantısı parametrlərini şərh etməməlisiniz. Bunu bundan dəyişdirin:

#-Hosting parametrləri:

allow-hotplug wlan0 iface wlan0 inet statik ünvan 192.168.42.1 netmask 255.255.255.0 # -Ağ (müştəri) parametrləri: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Buna:

#-Hosting parametrləri: #allow-hotplug wlan0 #iface wlan0 inet static #address 192.168.42.1 #netmask 255.255.255.0 #-Ağ (müştəri) parametrləri: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_confupplicant/wpa_conf

Faylı qeyd edin və bağlayın.

Sonra aşağıdakı əmrləri yerinə yetirirsiniz:

sudo systemctl wpa_supplicant.service başlayın

sudo ifdown wlan0 sudo ifup wlan0

İndi Pi'iniz, proqramı yeniləməyinizə və quraşdırmağınıza imkan verərək yenidən wifi -yə qoşulmalıdır.

Giriş nöqtəsi rejiminə qayıtmaq üçün/etc/network/interfeyslərindəki şərhlərə keçin və Pi'yi yenidən başladın.

Addım 7: Son qeydlər

Son qeydlər
Son qeydlər

Veb saytın qurulması

Apache serveri/var/www/-də yerləşir. Varsayılan səhifəni dəyişdirmək üçün /var/www/html/index.html faylını redaktə edin.

Brauzerinizi Pi -nin IP ünvanına (192.168.42.1) gedərək wifi bağlantısı üzərindən yükləyə biləcəyiniz faylları buradan əldə edə bilərsiniz. Wi -Fi ilə işləyən hər hansı bir cihaz daha sonra heç bir əlavə proqram olmadan yükləyə bilər.

SFTP bağlantısı

SSH üzərindən bir FTP bağlantısı edilə bilər. Çoxlu sayda faylları tez və asanlıqla köçürmək üçün Filezilla'dan istifadə edə bilərsiniz (şəkilə bax).

Real vaxt saatı

İnternetə qoşulma olmadıqda Pi -nin daxili saatı əhəmiyyətli dərəcədə sürüşdüyünə görə, dəqiq zaman tutma tələb olunarsa, real vaxt saatı (RTC) modulu lazım olacaq. Belə bir modul RasClock -dur, quraşdırma təlimatlarını burada tapa bilərsiniz. Digər i2c əsaslı saatlar da mövcuddur (yəni. DS3231)

Nəticə

Hər şey düzgün gedirsə, indi işləyən Pi Zero datalogger olmalıdır! Bir python giriş skript nümunəsi növbəti addıma daxil edilmişdir.

Addım 8: Python Logging Script nümunəsi

id id

nat ser = serial. Serial (port = 'COM4', baudrate = 57600, zaman aşımı = 5) dizini = r '\ var / www / html / data / anemometr / WMPro1352_ 'ser.flushInput () ser.flushOutput () cəhd edin: isə Doğru: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = kataloq + day_timestring +'.dat ' #Oxuyun data və dərhal vaxt xəttini əldə edin = ser.readline (). deşifr edin ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') line = line.split (', ') cəhd edin: u = float (line [1]) istisna olmaqla: u = np.nan cəhd edin: v = float (line [2]) istisna olmaqla: v = np.nan cəhd edin: w = üzmək (xətt [3]) istisna olmaqla: w = np.nan cəhd edin: c = üzmək (xətt [5]) istisna olmaqla: c = np.nan Ts = 1/403*c ** 2 - 273.15 cəhd edin: Ta = float (xətt [8]) istisna olmaqla: Ta = np.nan if (os.path.isfile (file_today))): fileobject: fileobject.write (nowtime+',' olaraq open (file_today, 'a') ilə) fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () başqa: fileobject olaraq open (file_today, 'w') ilə: fileobject.write ('"Zaman", "u", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (indi+', ') fileobject.write (str (u)+', '+str (v)+', '+str (w)+', '+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close () KeyboardInterrupt istisna olmaqla: ser.close ()

Tövsiyə: