תוכן עניינים:
- שלב 1: הדברים הדרושים לפרויקט
- שלב 2: הורד והתקן את Arduino IDE ב- Raspberry Pi
- שלב 3: קוד עבור Arduino
- שלב 4: הגדרת פטל פטל
- שלב 5: Python Scipt
- שלב 6: תרשים מעגלים
- שלב 7: תוצאה
וִידֵאוֹ: עלילת נתוני DHT11 באמצעות פטל פי וארדואינו UNO: 7 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
מדריך זה מסביר כיצד אני משרטט נתוני חיישן טמפרטורה של DHT11 באמצעות Arduino Uno ו- Raspberry Pi. בחיישן טמפרטורה זה מחובר עם Arduino Uno ו- Arduino Uno מחובר באופן סדרתי עם Raspberry Pi. ב- Raspberry Pi Side משתמשים בספריות matplotlib, numpy ו- drawow לשרטוט גרפים.
שלב 1: הדברים הדרושים לפרויקט
1. פטל פטל
2. ארדואינו אונו
3. חיישן טמפרטורה DHT11
4. חוטי מגשר
5. לוח לחם
שלב 2: הורד והתקן את Arduino IDE ב- Raspberry Pi
הערה:- אתה יכול להשתמש ב- Arduino IDE של Windows, Linux או Mac כדי להעלות סקיצה ב- Arduino UNO.
השלב הראשון הוא להתקין את Arduino IDE עבור אותו דפדפן פתוח ב- Raspberry Pi ולפתוח את הקישור שניתן להלן
Arduino קודמת IDE
לאחר מכן הורד את גרסת Linux ARM וחלץ אותה באמצעות הפקודה
tar -xf שם קובץ
לאחר החילוץ תראה ספרייה חדשה. כאן אני משתמש ב- arduino-1.8.2 IDE. לאחר מכן עבור למדריך באמצעות הפקודה.
CD arduino-1.8.1
להפעלת Arduino IDE, השתמש בפקודה זו בספריית arduino-1.8.2
./arduino
אופן השימוש בספריות
כדי להתקין את כל הספריות בארדואינו, פשוט הורד את הספרייה והדבק בתיקיית arduino 1.8.2 ==> ספריות.
הערה:-ודא שאין (-) בתיקיית הספרייה לשעבר (חיישן DHT). אם יש (-), שנה את שמו.
נשתמש בשתי ספריות במדריך זה, DHT_Sensor ו- Adafruit_Sensor
שלב 3: קוד עבור Arduino
עכשיו, בואו נדבר על פייתון וארדואינו ביחד. ראשית אנו זקוקים לתוכנית פשוטה להעביר נתוני שליחת Arduino מעל היציאה הטורית. התוכנית הבאה היא תכנית פשוטה שתספור את ה- Arduino ותשלח את הנתונים ליציאה הטורית.
קוד ארדואינו
#כלול טמפ 'צף "DHT.h"; // משתנה או החזקת טמפרטורה ב- C צף tempF; // משתנה להחזקת טמפ 'בלחות צף F; // משתנה לקריאת לחץ
#define DHTPIN 7 // לאיזה סיכה דיגיטלית אנחנו מחוברים
#define DHTTYPE DHT11 // DHT 11
//#הגדר DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#הגדר DHTTYPE DHT21 // DHT 21 (AM2301)
// אתחל חיישן DHT.
DHT dht (DHTPIN, DHTTYPE);
הגדרת void () {Serial.begin (115200); // הפעל צג סדרתי
dht.begin (); // לאתחל dht}
לולאת חלל () {tempC = dht.readTemperature (); // הקפד להצהיר על המשתנים שלך
לחות = dht.readHumidity (); // קרא לחות
Serial.print (tempC);
Serial.print (",");
Serial.print (לחות);
Serial.print ("\ n"); // עבור linedelay חדש (2000); // השהה בין הקריאות. }
לאחר רישום הסקיצה, בחר לוח ויציאה והעלה אותו.
שלב 4: הגדרת פטל פטל
לאחר העלאת הקוד, התקן כמה ספריות על מנת שנוכל לתוות גרף נתונים המגיע באופן סדרתי מ- Arduino Uno.
1. PySerial היא ספרייה המספקת תמיכה בחיבורים סדרתיים במגוון מכשירים שונים. כדי להתקין אותו השתמש בפקודה.
סודו apt-get להתקין python-serial
2. Numpy היא חבילה המגדירה אובייקט מערך רב ממדי ופונקציות מתמטיות מהירות המשויכות הפועלות עליו. הוא מספק גם שגרות פשוטות לאלגברה לינארית ו- FFT (Fast Fourier Transform) ולייצור מספר אקראי מתוחכם. אתה יכול להתקין אותו בדרכים רבות או להשתמש בחבילה מתאימה או בפיפ. כאן אני מתקין באמצעות pip לשם כך ראשית עלינו להתקין פיפ
sudo apt-get להתקין python-pip python-dev build-essential
sudo pip התקן numpy
או אם אתה רוצה להשתמש בחבילה apt
sudo apt להתקין python-numpy
3. Matplotlib היא ספריית מזימות דו-ממדית המספקת ממשק API מונחה עצמים להטמעת עלילות ביישומים באמצעות ערכות כלי GUI למטרות כלליות כמו Tkinter, wxPython, Qt או GTK+. כדי להתקין אותו השתמש בפקודה
sudo pip התקן matplotlib
אוֹ
sudo apt להתקין python-matplotlib
4. בדרך כלל משתמשים ב- Drawnow כדי לראות את התוצאות לאחר כל איטרציה כאשר אנו משתמשים ב- "imshow" ב- MATLAB. כדי להתקין אותו השתמש בפקודה
sudo pip התקן drawow
שלב 5: Python Scipt
השלב הבא הוא לכתוב סקריפט פייתון לשם כך תוכל להשתמש בכל עורך כדי לכתוב אותו.
1. משרטט נתונים בגרף אחד
יבוא ספריית סידורי # יבוא סידורי
יבוא numpy # ייבוא numpy
ייבא matplotlib.pyplot כ plt #import matplotlib ספרייה
מיבוא משיכה *
tempC = #מערך ריק לחות =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # מצב אינטראקטיבי להתוויית נתוני נתונים חיים = 0
def makeFig (): #צור פונקציה שעושה את העלילה הרצויה שלנו
plt.ylim (20, 30) #הגדר ערכי min ו- max
plt.title ('נתוני DHT11 בזמן אמת') #הצג את הכותרת
plt.grid (נכון) #הפעל את הרשת
plt.ylabel ('טמפ' C ') #הגדר את התיוג
plt.plot (tempC, 'b^-', label = 'Degree C') #זמם את הטמפרטורה
plt.legend (loc = 'ימין עליון') #זממו את האגדה
plt2 = plt.twinx () #צור ציר y שני
plt.ylim (50, 70) #הגדר גבולות של ציר y השני
plt2.plot (לחות, 'g*-', תווית = 'לחות') נתוני לחץ #עלילה
plt2.set_ylabel ('לחות') #label ציר y השני
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'שמאל למעלה')
בעוד שזה נכון: # בעוד לולאה שלולאת לנצח
while (arduino.inWaiting () == 0): #המתן כאן עד שיהיו נתונים
תעבור #אל תעשה כלום
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #לפצל אותו למערך
temp = float (dataArray [0])
זמזום = צף (dataArray [1])
tempC. append (temp)
לחות. להוסיף (לזמזם)
צייר (makeFig)
plt.pause (.000001)
count = count+1 if (count> 20): #רק קח את 20 הנתונים האחרונים אם הנתונים יותר הם יצוצו קודם
tempC.pop (0)
לחות.פופ (0)
2. לשרטט לחות וטמפרטורה בנפרד
יבוא ספריית סידורי # יבוא סידורי
יבוא numpy # ייבוא numpy
ייבא matplotlib.pyplot כ plt #import matplotlib ספרייה
מיבוא משיכה *
tempC = מערך ריק
לחות =
arduino = serial. Serial ("/dev/ttyACM0", 115200) #יציאה טורית שאליה מחובר הארדואינו ו- Baudrate
plt.ion () #תגיד matplotlib שאתה רוצה מצב אינטראקטיבי לשרטט נתונים חיים
def CreatePlot (): #צור פונקציה שעושה את העלילה הרצויה שלנו
חלקת משנה (2, 1, 1) #גובה, רוחב, חלקה ראשונה
plt.ylim (22, 34) #הגדר ערכי min ו- max
plt.title ('נתוני DHT11 בזמן אמת') #הצג את הכותרת
plt.grid (נכון) #הפעל את הרשת
plt.ylabel ('טמפ' C ') #קבע תוויות
plt.plot (tempC, 'b^-', label = 'Degree C') #זמם את הטמפרטורה
plt.legend (loc = 'מרכז עליון') #זממו את האגדה
חלקת משנה (2, 1, 2) # גובה, רוחב, חלקה שנייה
plt.grid (נכון)
plt.ylim (45, 70) #הגדר גבולות של ציר y השני
plt.plot (לחות, 'g*-', תווית = 'לחות (g/m^3)') #נתוני לחות #עלילה
plt.ylabel ('לחות (g/m^3)') #ציר y השני #תווית
plt.ticklabel_format (useOffset = False) #לעצירת ציר y בקנה מידה אוטומטי
plt.legend (loc = 'מרכז עליון')
בעוד שזה נכון: # בעוד לולאה שלולאת לנצח
while (arduino.inWaiting () == 0): #המתן כאן עד שיהיו נתונים תעבור #אל תעשה כלום
arduinoString = arduino.readline () #קרא את הנתונים מיציאה טורית
dataArray = arduinoString.split (',') #לפצל אותו למערך
temp = float (dataArray [0]) #המרת רכיב ראשון למספר צף והכנס זמני
hum = float (dataArray [1]) #הפוך את האלמנט השני למספר צף והכניס לזמזום
tempC.append (temp) #בנה את מערך ה- tempC שלנו על ידי הוספת קריאה זמנית
moist.append (hum) #בניית מערך הלחות שלנו על ידי הוספת קריאת זמזום
drawow (CreatePlot)
plt.pause (.000001)
ספירה = ספירה+1
if (count> 20): #קח רק את 20 הנתונים האחרונים אם הנתונים יותר הם יצוצו קודם
tempC.pop (0) אלמנט ראשון קופץ החוצה
לחות.פופ (0)
שלב 6: תרשים מעגלים
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> החוצה
מוּמלָץ:
כיצד לקרוא נתוני DHT על LCD באמצעות פטל פטל: 6 שלבים
כיצד לקרוא נתוני DHT על LCD באמצעות פטל פטל: הטמפרטורה והלחות היחסית הם נתוני מזג אוויר חשובים בסביבות. השניים יכולים להיות הנתונים שתחנת מזג אוויר מיני מספקת. ניתן להשיג את קריאת הטמפרטורה והלחות היחסית שלך עם פטל פאי באמצעות מגוון
קריאה ורישום נתוני חיישן אור וטמפרטורה עם פטל פטל: 5 שלבים
קריאה ורישום נתוני חיישן אור וטמפרטורה עם פטל פאי: במדריך זה תלמד כיצד לקרוא חיישן אור וטמפרטורה עם פטל פאי וממיר אנלוגי לדיגיטלי ADS1115 וגרף אותו באמצעות matplotlib. נתחיל עם החומרים הדרושים
מדידת טמפרטורה ולחות באמצעות DHT11 / DHT22 וארדואינו: 4 שלבים
מדידת טמפרטורה ולחות באמצעות DHT11 / DHT22 וארדואינו: במדריך זה של ארדואינו נלמד כיצד להשתמש בחיישן DHT11 או בחיישן DHT22 למדידת טמפרטורה ולחות בעזרת לוח הארדואינו
רובוט SCARA: למידה על קיממטיקה של פאוורד והיפוך !!! (עלילת טוויסט למד כיצד ליצור ממשק בזמן אמת ב- ARDUINO באמצעות עיבוד !!!!): 5 שלבים (עם תמונות)
רובוט SCARA: למידה על קיממטיקה של פאוורד והיפוך !!! (Plot Twist למד כיצד ליצור ממשק בזמן אמת ב- ARDUINO באמצעות עיבוד !!!!): רובוט SCARA הוא מכונה פופולרית מאוד בעולם התעשייה. השם מייצג הן זרוע רובוט הרכבה תואמת סלקטיבית והן זרוע רובוט מפרקית תואמת סלקטיבית. זהו בעצם רובוט של שלוש דרגות של חופש, בהיותו שני ההחלפות הראשונות
כיצד לשלוח נתוני DHT11 לשרת MySQL באמצעות NodeMCU: 6 שלבים
כיצד לשלוח נתוני DHT11 לשרת MySQL באמצעות NodeMCU: בפרויקט זה התממשקנו ל- DHT11 עם nodemcu ולאחר מכן אנו שולחים נתונים של dht11 שהם לחות וטמפרטורה למסד הנתונים של phpmyadmin