תוכן עניינים:

Raspberry Pi Zero W Datalogger: 8 שלבים (עם תמונות)
Raspberry Pi Zero W Datalogger: 8 שלבים (עם תמונות)

וִידֵאוֹ: Raspberry Pi Zero W Datalogger: 8 שלבים (עם תמונות)

וִידֵאוֹ: Raspberry Pi Zero W Datalogger: 8 שלבים (עם תמונות)
וִידֵאוֹ: Raspberry Pi 4 Data Logger | DHT11/DHT22 Sensor Data Logger 2024, יולי
Anonim
Raspberry Pi Zero W Datalogger
Raspberry Pi Zero W Datalogger

באמצעות Raspberry Pi Zero W, אתה יכול ליצור נתוני זול וקלים לשימוש, שניתן לחבר אותם לרשת wifi מקומית, או לשמש כנקודת גישה בשטח המאפשרת להוריד נתונים באופן אלחוטי באמצעות הטלפון החכם שלך.

הצגתי את ההתקנה הזו בישיבת הסתיו 2017 של האיגוד האמריקאי לגיאופיסיקה, כדרך ליצור הגדרת לוגר נתונים משלך. אתה יכול למצוא את המצגת הזו כאן.

מה שאתה תצטרך:

  • פטל פיי אפס W
  • כרטיס מיקרו SD
  • כבל USB או ספק כוח USB
  • מחשב עם קורא כרטיסי USB
  • אופציונלי (אך שימושי):

    • miniHDMI -> מתאם HDMI (לחיבור ה- Pi למסך)
    • מתאם USB OTG (לחיבור מקלדת ל- Pi

שלב 1: הגדר את Pi Zero W

כדי להתחיל, שים תמונה Rasbian על כרטיס microSD (במדריך זה השתמשתי 2017-07-05-raspbian-jessie-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 זהות = "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 reboot), חיבור ה- wifi שלך אמור לפעול. אתה יכול לבדוק זאת על ידי פינג של אתר אינטרנט;

ping www.google.com

בטל את הפינג באמצעות CTRL+C.

כדי להתחבר ל- Pi באמצעות SSH באופן אלחוטי, עליך להפעיל SSH:

sudo raspi-config

נווט אל "5 אפשרויות ממשק" והפעל SSH. לאחר מכן חזור ויצא מהתצורה.

חפש את כתובת ה- IP של ה- Pi:

ifconfig

כתובת ה- IP תהיה תחת "inet addr:" של ממשק wlan0.

עכשיו אתה יכול להתחבר ל- Pi באמצעות WiFi, אם אתה באותה רשת. הורד את המרק (עבור חלונות), הזן את כתובת ה- IP שמצאת תחת "שם מארח" ולחץ על "פתח". לאחר קבלת האזהרה כעת אתה אמור להיות מסוגל לראות את שורת הפקודה ולהתחבר.

שלב 3: עדכן והתקן את התוכנות הדרושות

עדכן והתקן את התוכנה הנדרשת
עדכן והתקן את התוכנה הנדרשת
עדכן והתקן את התוכנה הנדרשת
עדכן והתקן את התוכנה הנדרשת

לאחר שה WiFi פועל, עדכן את ה- Pi עם:

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

לאחר סיום העדכון (זה יכול לקחת זמן), התקן את התוכנה שבה נשתמש;

sudo apt-get להתקין python3 python3 סדרתי apache2 -y

שלב 4: התחבר לחיישן (בדוגמה זו ארדואינו)

או חבר את הארדואינו יחד עם מקלדת באמצעות רכזת USB, או חבר את הארדואינו באמצעות יציאת ה- USB היחידה, ובצע את ההגדרה באמצעות SSH באמצעות WiFi.

כדי להיות מסוגל לגשת ליציאה הסדרתית שאליה מחובר הארדואינו, כדאי לתת גישה לחשבון ה- pi המוגדר כברירת מחדל. מכיוון שהארדואינו בדרך כלל מקצה ליציאה "/dev/ttyACM0", השתמש בפקודה הבאה כדי לתת למשתמש 'pi' גישה ליציאה:

sudo chown pi: /dev /ttyACM0

בהנחה שה- Arduino כבר הוגדר לשליחת נתונים דרך היציאה הטורית, תוכל להציג את הנתונים בפייתון באופן הבא:

פייתון פתוח;

python3

ייבוא סדרתי:

ייבוא סדרתי

פתח את יציאת com:

ser = serial. Serial (port = '/dev/ttyACM0', קצב שידור = 9600, פסק זמן = 5)

היכן שהעומס של הארדואינו נקבע ל 9600 במקרה זה.

אתה יכול לקרוא ולהדפיס שורה על ידי הפעלת הקוד הבא:

ser.readline (). לפענח ('utf-8')

אם הוא פועל, תוכל לסגור את החיבור ולצאת מ- Python באמצעות:

ser.close ()

יְצִיאָה()

שלב 5: הגדר יכולות נקודת גישה ל- WiFi

על ידי הגדרת ה- Pi Zero W שלך במצב נקודת גישה ל- wifi, תוכל להתחבר אליו עם כל מכשיר wifi. זה מאפשר הגדרת הלוגר והורדת נתונים דרך wifi, ללא צורך בכבלים או במנהלי התקן.

לשם כך יש ל- Adafruit הדרכה טובה. כמה הערות קטנות:

  • עבור מנהל ההתקן /etc/hostapd/hostapd.conf, אל תשתמש בשורת הנהג.
  • לא צריך להיות שלב "עדכן hostapd".

אם נקודת הגישה לא פועלת בסוף ההדרכה, נסה לאתחל את ה- Pi (אתחול סודו).

שלב 6: מעבר בין נקודת גישה ל- Wifi לבין מצבי לקוח

לפעמים תרצה לעדכן תוכנה או להתקין תוכנה חדשה ב- Raspberry Pi שלך, אך הדבר דורש חיבור לאינטרנט. למרבה המזל המעבר בין השניים קל מאוד.

התחבר ל- Pi באמצעות SSH (באמצעות כבל, לא wifi!). התחל בעצירת שירותי נקודת הגישה:

sudo cystemctl עצור hostapd.service

sudo cystemctl עצור isc-dhcp-server.service

לאחר מכן ערוך את קובץ ממשקי הרשת:

sudo nano/etc/network/interfaces

כאן עליך להגיב על פרמטרי האירוח, ולבטל את ההערה על פרמטרי חיבור הרשת. שנה את זה מכאן:

#פרמטרים לאירוח:

allow-hotplug wlan0 iface wlan0 inet כתובת סטטית 192.168.42.1 netmask 255.255.255.0 # -Network (client) פרמטרים: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

לזה:

#פרמטרים לאירוח: #allow-hotplug wlan0 #iface wlan0 inet סטטי #כתובת 192.168.42.1 #netmask 255.255.255.0 #פרמטרים של רשת (לקוח): auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

שמור וסגור את הקובץ.

לאחר מכן תפעיל את הפקודות הבאות:

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, על ידי ניווט בדפדפן שלך לכתובת ה- IP של ה- Pi (192.168.42.1). כל מכשיר המאפשר wifi יכול להוריד אותם ללא תוכנה נוספת.

חיבור SFTP

באמצעות SSH ניתן ליצור חיבור FTP. אתה יכול להשתמש ב- Filezilla כדי להעביר במהירות ובקלות כמות גדולה של קבצים (ראה תמונה).

שעון בזמן אמת

מכיוון שהשעון הפנימי של ה- Pi ייסחף באופן משמעותי אם אין חיבור לאינטרנט, יהיה צורך במודול שעון בזמן אמת (RTC) אם נדרש שמירת זמן מדויקת. מודול אחד כזה הוא RasClock, הוראות התקנה ניתן למצוא כאן. זמינים גם שעונים אחרים מבוססי i2c (כלומר DS3231)

סיכום

אם הכל התנהל כשורה, כעת אמור להיות לך מחשב הנתונים של Pi Zero עובד! דוגמה לתסריט רישום של פייתון כלולה בשלב הבא.

שלב 8: דוגמא לסקריפט רישום Python

ייבוא מערכת הפעלה

יבוא סדרתי מהזמן ייבוא זמן מ- datetime יבוא תאריך זמן יבוא numpy כ- np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) ספרייה = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () נסה: בעוד נכון: 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 ') line = line.split (', ') try: u = float (שורה [1]) למעט: u = np.nan try: v = float (שורה [2]) למעט: v = np.נן לנסות: w = float (שורה [3]) למעט: w = np.nan try: c = float (שורה [5]) למעט: c = np.nan Ts = 1/403*c ** 2 - 273.15 נסה: Ta = float (שורה [8]) למעט: Ta = np.nan אם (os.path.isfile (file_today)): עם open (file_today, 'a') בתור fileobject: fileobject.write (עכשיו+',') 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 () למעט KeyboardInterrupt: ser.close ()

מוּמלָץ: