Სარჩევი:

Raspberry Pi Zero W Datalogger: 8 ნაბიჯი (სურათებით)
Raspberry Pi Zero W Datalogger: 8 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi Zero W Datalogger: 8 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi Zero W Datalogger: 8 ნაბიჯი (სურათებით)
ვიდეო: CS50 2014 - Week 2 2024, ნოემბერი
Anonim
Raspberry Pi Zero W Datalogger
Raspberry Pi Zero W Datalogger

Raspberry Pi Zero W– ის საშუალებით შეგიძლიათ გააკეთოთ იაფი და ადვილად გამოსაყენებელი მონაცემთა დამთვალიერებელი, რომელიც შეიძლება იყოს დაკავშირებული ადგილობრივ wifi ქსელთან, ან იყოს ამ სფეროში წვდომის წერტილი, რომელიც საშუალებას გაძლევთ უსადენოდ გადმოწეროთ მონაცემები თქვენი სმარტფონით.

მე ეს კონფიგურაცია წარმოვადგინე ამერიკის გეოფიზიკური კავშირის საშემოდგომო შეხვედრაზე 2017 წელს, როგორც საკუთარი მონაცემების ჩამწერი კონფიგურაციის საშუალება. თქვენ შეგიძლიათ იპოვოთ ეს პრეზენტაცია აქ.

რაც დაგჭირდებათ:

  • ჟოლო Pi Zero W
  • მიკრო SD ბარათი
  • USB კაბელი ან USB კვების წყარო
  • კომპიუტერი USB ბარათის წამკითხველით
  • არჩევითი (მაგრამ სასარგებლო):

    • miniHDMI -> HDMI ადაპტერი (Pi- ს ეკრანთან დასაკავშირებლად)
    • USB OTG ადაპტერი (კლავიატურის დასაკავშირებლად Pi

ნაბიჯი 1: დააყენეთ Pi Zero W

დასაწყებად, განათავსეთ რასბიური სურათი microSD ბარათზე (ამ გაკვეთილში მე გამოვიყენე 2017-07-05-raspbian-jessie-lite, აქ ხელმისაწვდომი). Lite ვერსიის გამოყენება შესაძლებელია (დესკტოპის გარეშე), რადგან დაყენება მოხდება ბრძანების ხაზის საშუალებით.

ჩადეთ SD ბარათი Pi- ში, შეაერთეთ ეკრანი და კლავიატურა და ჩართეთ იგი კვების კაბელის ჩართვით. თავსაბურავის დაყენება ასევე შესაძლებელია, მაგრამ საჭიროებს SSH- ზე დაკავშირებას.

მას შემდეგ, რაც Pi ჩატვირთავს ლოგინს (მომხმარებლის მომხმარებლის სახელი: pi, პაროლი: ჟოლო) და შეცვალეთ პაროლი ბრძანებით "passwd".

კლავიატურის კონფიგურაცია შესაძლებელია ტერმინალში "sudo raspi-config" შეყვანით.

ნაბიჯი 2: დაუკავშირდით WiFi- ს

დაუკავშირდით WiFi- ს
დაუკავშირდით WiFi- ს
დაუკავშირდით WiFi- ს
დაუკავშირდით WiFi- ს
დაუკავშირდით WiFi- ს
დაუკავშირდით WiFi- ს
დაუკავშირდით WiFi- ს
დაუკავშირდით WiFi- ს

ინტერნეტთან დასაკავშირებლად, ჩვენ ვეტყვით Pi- ს, რომელ ქსელს უნდა დაუკავშირდეს. დაიწყეთ შემდეგი ფაილის გახსნით;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

აქ, დაამატეთ ქსელის ინფორმაცია ბოლოში;

ქსელი = {

ssid = "ქსელის სახელი" psk = "ქსელის პაროლი"}

საწარმოს ქსელის შემთხვევაში, შეგიძლიათ გამოიყენოთ შემდეგი კონფიგურაცია (შეცვალეთ WPA-EAP // TTLA // MSCHAPv2 მოქმედ პარამეტრებზე).

ქსელი = {

ssid = "ssid" #შეიყვანეთ თქვენი ქსელის სახელი key_mgmt = WPA-EAP eap = TTLS Identity = "xxxxx" #შეიყვანეთ თქვენი ანგარიშის პაროლი = "xxxxx" #შეიყვანეთ საგუშაგო ეტაპი 2 = "auth = MSCHAPv2"}

შეინახეთ CTRL+O დაჭერით და გამოდით CTRL+X– ით.

ახლა მიუთითეთ თქვენი კონფიგურაციის ფაილი/etc/network/interfaces

sudo nano/etc/network/interfaces

შეცვალეთ wlan0 ნაწილი:

ავტო wlan0

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

კვლავ შეინახეთ ფაილი (CTRL+O) და შემდეგ გამოდით (CTRL+X).

გადატვირთვის შემდეგ (sudo გადატვირთვა), თქვენი wifi კავშირი უნდა იმუშაოს. ამის შემოწმება შეგიძლიათ ვებგვერდის პინგზე;

ping www.google.com

გააუქმეთ პინგი CTRL+C- ით

Pi– ზე SSH– ზე უსადენოდ დასაკავშირებლად, თქვენ უნდა ჩართოთ SSH:

sudo raspi-config

გადადით "ინტერფეისის 5 ვარიანტზე" და ჩართეთ SSH. შემდეგ დაბრუნდით და გამოდით კონფიგურაციიდან.

მოძებნეთ Pi მისამართის IP მისამართი:

ifconfig

IP იქნება wlan0 ინტერფეისის "inet addr:".

ახლა თქვენ შეგიძლიათ დაუკავშირდეთ Pi– ს WiFi– ზე, თუ ერთსა და იმავე ქსელში ხართ. ჩამოტვირთეთ Putty (ფანჯრებისთვის), შეიყვანეთ IP მისამართი, რომელიც იპოვეთ "მასპინძლის სახელი" და დააჭირეთ "გახსნას". გაფრთხილების მიღების შემდეგ თქვენ ახლა უნდა გქონდეთ ბრძანების ხაზის ნახვა და შესვლა.

ნაბიჯი 3: განაახლეთ და დააინსტალირეთ საჭირო პროგრამული უზრუნველყოფა

განაახლეთ და დააინსტალირეთ საჭირო პროგრამული უზრუნველყოფა
განაახლეთ და დააინსტალირეთ საჭირო პროგრამული უზრუნველყოფა
განაახლეთ და დააინსტალირეთ საჭირო პროგრამული უზრუნველყოფა
განაახლეთ და დააინსტალირეთ საჭირო პროგრამული უზრუნველყოფა

WiFi– ის მუშაობის შემდეგ განაახლეთ Pi შემდეგით:

sudo apt -get განახლება -y && sudo apt -get განახლება -y

განახლების დასრულების შემდეგ (შეიძლება გარკვეული დრო დასჭირდეს), დააინსტალირეთ პროგრამული უზრუნველყოფა, რომელსაც ჩვენ ვიყენებთ;

sudo apt-get დააინსტალირეთ python3 python3-serial apache2 -y

ნაბიჯი 4: დაუკავშირდით სენსორს (ამ მაგალითში Arduino)

ან დაუკავშირეთ Arduino კლავიატურას USB ჰაბის საშუალებით, ან დაუკავშირეთ Arduino ერთი USB პორტის საშუალებით და გააკეთეთ დაყენება SSH– ით WiFi– ით.

სერიულ პორტზე შესასვლელად, რომელთანაც Arduino არის დაკავშირებული, სასარგებლოა წვდომა ნაგულისხმევი პი ანგარიშზე. როგორც წესი, Arduino ენიჭება პორტს "/dev/ttyACM0", გამოიყენეთ შემდეგი ბრძანება, რათა "pi" მომხმარებელს ჰქონდეს პორტზე წვდომა:

sudo chown pi: /dev /ttyACM0

დავუშვათ, რომ Arduino უკვე შეიქმნა სერიული პორტის მონაცემების გასაგზავნად, თქვენ შეგიძლიათ ნახოთ მონაცემები პითონში შემდეგნაირად:

ღია პითონი;

პითონი 3

სერიის იმპორტი:

სერიული იმპორტი

გახსენით com პორტი:

ser = სერიული. სერიული (პორტი = '/dev/ttyACM0', ბაუდრატი = 9600, ვადა = 5)

სადაც არდუინოს ბაუდრატი ამ შემთხვევაში იყო 9600.

თქვენ შეგიძლიათ წაიკითხოთ და დაბეჭდოთ ხაზი შემდეგი კოდის გაშვებით:

ser.readline (). დეკოდირება ('utf-8')

თუ ის მუშაობს, შეგიძლიათ დახუროთ კავშირი და გამოხვიდეთ პითონიდან შემდეგით:

ser. დახურვა ()

გასვლა ()

ნაბიჯი 5: შექმენით WiFi წვდომის წერტილის შესაძლებლობები

თქვენი Pi Zero W wifi წვდომის წერტილის რეჟიმში დაყენებით, შეგიძლიათ დაუკავშირდეთ მას ნებისმიერი wifi მოწყობილობით. ეს საშუალებას გაძლევთ შექმნათ ჟურნალი და გადმოწეროთ მონაცემები wifi– ზე, არ არის საჭირო კაბელები და დრაივერები.

ამისათვის Adafruit– ს აქვს კარგი სამეურვეო პროგრამა. რამდენიმე მცირე შენიშვნა:

  • /Etc/hostapd/hostapd.conf დრაივერისთვის გამოიყენეთ არ გამოიყენოთ დრაივერის ხაზი.
  • ნაბიჯი "განახლება hostapd" არ უნდა იყოს საჭირო.

თუ გაკვეთილის ბოლოს წვდომის წერტილი არ მუშაობს, სცადეთ გადატვირთოთ Pi (sudo გადატვირთვა).

ნაბიჯი 6: გადართვა Wifi წვდომის წერტილსა და კლიენტის რეჟიმებს შორის

ზოგჯერ მოგინდებათ პროგრამული უზრუნველყოფის განახლება ან ახალი პროგრამული უზრუნველყოფის დაყენება თქვენს Raspberry Pi– ზე, მაგრამ ეს მოითხოვს ინტერნეტ კავშირს. საბედნიეროდ, ამ ორს შორის გადართვა ძალიან ადვილია.

დაუკავშირდით Pi– ს SSH– ით (კაბელის საშუალებით, არა wifi!). დაიწყეთ წვდომის წერტილის სერვისების შეჩერებით:

sudo cystemctl stop hostapd.service

sudo cystemctl stop isc-dhcp-server.service

შემდეგ შეცვალეთ ქსელის ინტერფეისების ფაილი:

sudo nano/etc/network/interfaces

აქ თქვენ უნდა გააკეთოთ კომენტარი ჰოსტინგის პარამეტრებზე და არ გააკეთოთ კომენტარი ქსელის კავშირის პარამეტრებზე. შეცვალეთ აქედან:

#-მასპინძლობის პარამეტრები:

allow-hotplug wlan0 iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0 # -ბადის (კლიენტის) პარამეტრები: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

ამას:

#-მასპინძელი პარამეტრები: #allow-hotplug wlan0 #iface wlan0 inet static #მისამართი 192.168.42.1 #netmask 255.255.255.0 #-ბადის (კლიენტის) პარამეტრები: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.con

შეინახეთ და დახურეთ ფაილი.

შემდეგი თქვენ აწარმოებთ შემდეგ ბრძანებებს:

sudo systemctl დაწყება wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

ახლა თქვენი Pi კვლავ უნდა დაუკავშირდეს wifi– ს, რაც საშუალებას მოგცემთ განაახლოთ და დააინსტალიროთ პროგრამული უზრუნველყოფა.

წვდომის წერტილის რეჟიმში დასაბრუნებლად გადაუხვიეთ კომენტარებს/etc/network/interfaces და გადატვირთეთ Pi.

ნაბიჯი 7: საბოლოო შენიშვნები

დასკვნითი შენიშვნები
დასკვნითი შენიშვნები

ვებსაიტის დაყენება

Apache სერვერი მდებარეობს/var/www/. ნაგულისხმევი გვერდის შესაცვლელად, შეცვალეთ /var/www/html/index.html ფაილი.

თქვენ შეგიძლიათ აქ ფაილები ჩამოტვირთოთ wifi კავშირის საშუალებით, ბრაუზერში ნავიგაციით Pi– ს IP მისამართზე (192.168.42.1). ნებისმიერ wifi მოწყობილობას შეუძლია ჩამოტვირთოს ისინი დამატებითი პროგრამული უზრუნველყოფის გარეშე.

SFTP კავშირი

SSH– ით შესაძლებელია FTP კავშირის დამყარება. თქვენ შეგიძლიათ გამოიყენოთ Filezilla, რათა სწრაფად და მარტივად გადაიტანოთ დიდი რაოდენობით ფაილი (იხ. სურათი).

რეალურ დროში საათი

ვინაიდან Pi– ს შიდა საათი მნიშვნელოვნად დაიძვრება, თუკი ინტერნეტთან კავშირი არ არის, საჭირო იქნება რეალური დროის საათის (RTC) მოდული, თუ საჭიროა ზუსტი დროის აღრიცხვა. ერთ -ერთი ასეთი მოდული არის RasClock, ინსტალაციის ინსტრუქცია შეგიძლიათ იხილოთ აქ. ასევე ხელმისაწვდომია სხვა i2c დაფუძნებული საათები (მაგ. DS3231)

დასკვნა

თუ ყველაფერი სწორად წარიმართა, თქვენ უნდა გქონდეთ სამუშაო Pi Zero მონაცემთა დამდგენი! პითონის ჟურნალის სკრიპტის მაგალითი შედის შემდეგ ეტაპზე.

ნაბიჯი 8: მაგალითი Python Logging Script

იმპორტი os

იმპორტი სერიული დროიდან იმპორტი დრო datetime იმპორტი datetime იმპორტი numpy როგორც np ser = სერიული. სერიული (პორტი = 'COM4', baudrate = 57600, დრო = 5) დირექტორია = 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 = დირექტორია + day_timestring +'.dat ' #წაკითხვა მონაცემები და დაუყოვნებლივ მიიღეთ დროის ხაზი = ser.readline (). დეკოდირება ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') ხაზი = ხაზი. გაყოფა (', ') სცადეთ: u = float (ხაზი [1]) გარდა: u = np.nan სცადეთ: v = float (ხაზი [2]) გარდა: v = np.nan ცადეთ: w = float (ხაზი [3]) გარდა: w = np.nan ცადეთ: c = float (ხაზი [5]) გარდა: c = np.nan Ts = 1/403*c ** 2 - 273.15 სცადეთ: Ta = float (ხაზი [8]) გარდა: Ta = np.nan if (os.path.isfile (file_today)): ღია (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 () else: ღია (file_today, 'w') როგორც fileobject: fileobject.write ('"დრო", "u", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (ახლა ++,') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close () კლავიატურის გარდა შეფერხება: ser.close ()

გირჩევთ: