תוכן עניינים:
- שלב 1: תחנת מזג אוויר מיני עם Attiny85: המשדר
- שלב 2: תחנת מזג אוויר מיני עם Attiny85: המקלט
- שלב 3: תחנת מזג אוויר מיני עם Attiny85/45: התצוגה
- שלב 4: תחנת מזג אוויר מיני עם Attiny85/45: אפשרויות/מסקנות
- שלב 5: תחנת מזג אוויר מיני: האנטנה
- שלב 6: הוספת BMP180
וִידֵאוֹ: מיני תחנת מזג אוויר עם Attiny85: 6 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
באינדיגוד 0g שתוארה לאחרונה תיאר תחנת מזג אוויר מיני שעובדת די טוב, באמצעות שני ארדואינים. אולי לא כולם רוצים להקריב 2 ארדואינים כדי לקבל קריאות לחות וטמפרטורה והערתי שצריך לבצע פונקציה דומה עם שני Attiny85. אני מניח שהשיחה היא קלה, אז מוטב שאשים את הכסף שלי במקום שהפה שלי נמצא בו.
למעשה, אם אשלב שני הוראות קודמות שכתבתי:
ממשק LCD דו חוטי עבור Arduino או Attiny וקבלת ושליחת נתונים בין Attiny85 (Arduino IDE 1.06) אז רוב העבודה כבר נעשתה. צריך רק להתאים קצת את התוכנה.
בחרתי בפתרון lcd דו -חוטי עם רגיסטר shift, ולא ב- I2C LCD מכיוון שב- Attiny קל יותר ליישם את רשימת המשמרות מאשר באוטובוס I2C. עם זאת … אם אתה רוצה לקרוא למשל חיישן לחץ BMP180 או BMP085, אתה צריך I2C בשביל זה בכל מקרה, כך שגם אתה יכול להשתמש ב- LCD I2C. TinyWireM היא ספרייה טובה עבור I2C ב- Attiny (אך היא דורשת שטח נוסף).
BOM המשדר: מודול משדר DHT11 Attiny85 10 k נגד 433MHz
מקלט Attiny85 10k נגד מקלט 433 מגה -הרץ
הצג 74LS164 משמרת רשם 1N4148 דיודה 2x1k הנגד 1x1k משתנה תצוגת LCD 2x16
שלב 1: תחנת מזג אוויר מיני עם Attiny85: המשדר
המשדר הוא תצורה בסיסית מאוד של ה- Attiny85 עם נגד מעלה בקו האיפוס. מודול משדר מחובר לפין הדיגיטלי '0' וסיכת הנתונים DHT11 מתחברת לפין הדיגיטלי 4. צרף חוט של 17.2 ס מ כאנטנה (לקבלת אנטנה טובה בהרבה ראה שלב 5). התוכנה היא כדלקמן:
// יעבוד על Attiny // RF433 = סיכה D0 5
// DHT11 = סיכת D4 3 // ספריות #כלול // מאת רוב טילארט #כלול dht DHT11; #define DHT11PIN 4 #define TX_PIN 0 // סיכה שבה המשדר שלך מחובר // משתנים float h = 0; לצוף t = 0; int transmit_t = 0; int transmit_h = 0; int transmit_data = 0; הגדרת void () {pinMode (1, INPUT); man.setupTransmit (TX_PIN, MAN_1200); } לולאת חלל () {int chk = DHT11.read11 (DHT11PIN); h = DHT11. לחות; t = DHT11. טמפרטורה; // אני יודע, אני משתמש כאן ב -3 משתנים שלמים // שבהם אני יכול להשתמש ב 1 // אבל זה רק כך שקל יותר לעקוב אחרי transmit_h = 100* (int) h; transmit_t = (int) t; transmit_data = transmit_h+transmit_t; man.transmit (transmit_data); עיכוב (500); }
התוכנה משתמשת בקוד מנצ'סטר לשליחת הנתונים. הוא קורא את DHT11 ומאחסן את הטמפרטורה והלחות בשתי מצופים נפרדים. מכיוון שקוד מנצ'סטר לא שולח מצופים, אלא מספר שלם, יש לי מספר אפשרויות: 1- לפצל את המצופים לשני מספרים שלמים כל אחד ולשלוח את אלה 2- לשלוח כל מצוף כמספר שלם 3- לשלוח את שני המצופים כמספר אחד עם אפשרות 1 אני צריך לשלב המספרים השלמים לצפים שוב במקלט ואני צריך לזהות איזה מספר שלם הוא מה, מה שהופך את הקוד למפותל עם אפשרות 2 אני עדיין צריך לזהות איזה מספר שלם הוא ללחות ואילו לטמפרטורה. אני לא יכול ללכת לפי רצף לבד במקרה שמספר שלם אחד יאבד בשידור, אז אצטרך לשלוח מזהה המצורף למספר השלם. עם אפשרות 3, אני יכול לשלוח רק מספר שלם אחד. ברור שזה הופך את הקריאות למעט פחות מדויקות - בתוך מעלה אחת - ואי אפשר לשלוח מתחת לאפס טמפרטורות, אבל זה רק קוד פשוט ויש דרכים לעקוף את זה. בינתיים זה בערך העיקרון. אז מה שאני עושה זה שאני הופך את המצופים למספרים שלמים ואני מכפיל את הלחות עם 100. ואז אני מוסיף את הטמפרטורה ללחות המרובה. בהתחשב בעובדה שהלחות לעולם לא תהיה 100% המספר המרבי שאקבל הוא 9900. בהתחשב בעובדה שהטמפרטורה גם לא תהיה מעל 100 מעלות, המספר המרבי יהיה 99, לכן המספר הגבוה ביותר שאשלח הוא 9999 וקל להפריד בצד המקלט. כמובן החישוב שלי בו אני משתמש בשלושה מספרים שלמים הוא מוגזם מכיוון שניתן היה לעשות אותו בקלות עם משתנה אחד. רק רציתי להפוך את הקוד לקל יותר לעקוב. הקוד מתאסף כעת כדלקמן:
גודל סקיצה בינארית: 2, 836 בתים (של מקסימום 8, 192 בתים) כך שיתאים ל- Attiny 45 או 85 הערה הספרייה של dht.h שבה אני משתמשת היא זו של רוב טילארט. ספרייה זו מתאימה גם ל- DHT22. אני משתמש בגרסה 1.08. עם זאת, ל- Attiny85 ייתכנו בעיות בקריאת DHT22 עם גרסאות נמוכות יותר של הספרייה. אושר לי כי 1.08 ו- 1.14 - למרות שעובדים על ארדואינו רגיל - מתקשים לקרוא DHT22 ב- Attiny85. אם ברצונך להשתמש ב- DHT22 ב- Attiny85, השתמש בגרסת 1.20 של ספרייה זו. הכל צריך לעשות עם תזמון. גרסת 1.20 של הספרייה היא קריאה מהירה יותר. (תודה על חווית המשתמש הזו Jeroen)
שלב 2: תחנת מזג אוויר מיני עם Attiny85: המקלט
שוב Attiny85 משמש בתצורה בסיסית כאשר סיכת האיפוס מושכת גבוה עם נגד 10 k. מודול המקלט מחובר לסיכה דיגיטלית 1 (סיכה 6 בשבב). ה- LCD מחובר לפינים הדיגיטליים 0 ושניים. צרף חוט של 17.2 ס מ כאנטנה. הקוד הוא כדלקמן:
#לִכלוֹל
#include LiquidCrystal_SR lcd (0, 2, TWO_WIRE); #define RX_PIN 1 // = פין פין 6 הגדרת חלל () {lcd.begin (16, 2); lcd.home (); man.setupReceive (RX_PIN, MAN_1200); man.beginReceive (); } לולאת void () {if (man.receiveComplete ()) {uint16_t m = man.getMessage (); man.beginReceive (); lcd.print ("לח:"); lcd.print (m/100); lcd.setCursor (0, 1); lcd.print ("טמפ '"); lcd.print (מ%100); }}
הקוד פשוט למדי: המספר השלם המועבר מתקבל ומאוחסן במשתנה 'm'. הוא מחולק ב -100 כדי לתת לחות והמודולו של 100 נותן את הטמפרטורה. נניח שהמספר השלם שהתקבל היה 33253325/100 = 333325 % 100 = 25 קוד זה מתאסף כ- 3380 בתים ולכן ניתן להשתמש בו רק עם attiny85, לא עם 45
שלב 3: תחנת מזג אוויר מיני עם Attiny85/45: התצוגה
עבור התצוגה עדיף שאפנה למדריך שלי על צג דו חוטי. בקיצור, צג נפוץ בגודל 16x2 משתמש ב- shiftregister כך שהוא יכול לפעול עם שני סיכות דיגיטליות. כמובן אם אתה מעדיף להשתמש בתצוגה מוכנה ל- I2C, כלומר אפשרי גם, אבל אז אתה צריך ליישם פרוטוקול I2C על ה- Attiny. פרוטוקול Tinywire יכול לעשות זאת. למרות שכמה מקורות אומרים שזה מצפה לשעון של 1 מגה -הרץ, לא הייתה לי שום בעיה (בפרויקט אחר) להשתמש בו ב- 8Mhz בכל מקרה פשוט לא טרחתי כאן והשתמשתי במרשם משמרות.
שלב 4: תחנת מזג אוויר מיני עם Attiny85/45: אפשרויות/מסקנות
כאמור, הפכתי את זה להוראה להראות שאפשר ליצור תחנת מזג אוויר מיני עם שני attiny85 (אפילו עם attiny85+ 1 attiny45). זה שולח רק לחות וטמפרטורה באמצעות DHT11. עם זאת, ל- Attiny יש 5 סיכות דיגיטליות לשימוש, 6 אפילו עם קצת תחבולות. לכן אפשר לשלוח נתונים מחיישנים נוספים. בפרויקט שלי- כפי שניתן לראות בתמונות בלוח החשמל וב- PCB מקצועי (OSHPark)- אני שולח/מקבל נתונים מ- DHT11, מ- LDR ומ- PIR, הכל באמצעות הגבלה בשימוש ב- attiny85 כמקלט היא הצגת הנתונים בסגנון נוצץ. מכיוון שהזיכרון מוגבל: טקסטים כמו 'טמפרטורה, לחות, רמת אור, נושא מתקרב' ימלאו שטח זיכרון יקר למדי, אך אין סיבה להשתמש בשני של Arduino רק כדי לשלוח/לקבל טמפרטורה ולחות. בנוסף, אפשר כדי שהמשדר ילך לישון ורק יתעורר לשלוח נתונים אומרים כל 10 דקות ובכך להאכיל אותו מתא כפתור. מדידות לחות הקרקע גם כן, או הוספת מד -מד או מד גשם
שלב 5: תחנת מזג אוויר מיני: האנטנה
האנטנה היא חלק חשוב מכל התקנה של 433 מגה -הרץ. ניסיתי עם אנטנת 'מוט' הסטנדרטית בגודל 17.2 ס מ והייתה לי פלירטוט קצר עם אנטנת סליל. העיצוב הוא של בן שואלר וככל הנראה פורסם במגזין 'אלקטור'. קל לעקוב אחר קובץ PDF עם התיאור של 'אנטנת 433 מגה -הרץ המקוררת באוויר'. (הקישור נעלם, בדוק כאן)
שלב 6: הוספת BMP180
רוצה להוסיף חיישן לחץ ברומטרי כמו BMP180? בדוק את ההנחיות האחרות שלי בנושא.
מוּמלָץ:
תחנת מזג אוויר מיני באמצעות Arduino ו- ThingSpeak: 4 שלבים
תחנת מזג אוויר מיני באמצעות Arduino ו- ThingSpeak: שלום לכולם. במדריך זה, אני אדריך אותך את השלבים להכנת תחנת מזג אוויר מיני אישית. כמו כן, נשתמש ב- API של ThingSpeak כדי להעלות את נתוני מזג האוויר שלנו לשרתים שלהם, או אחרת מה המטרה של מערכת מזג אוויר
תוכנית MicroPython: תחנת מזג אוויר מיני: 7 שלבים
תוכנית MicroPython: תחנת מזג אוויר מיני: עכשיו חורף, אבל זה עדיין מרגיש קצת חם, למרות שאני לובש רק חולצת טריקו, מה שגורם לי לרצות לדעת את הטמפרטורה הנוכחית, אז אני משתמש בחיישני Micropython ESP32 ו- DHT11. ותחנת מזג אוויר פשוטה, כך שתוכלו לקבל את ה
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר מונעת על ידי סולארית Arduino בוצעה בדרך הנכונה: 8 שלבים (עם תמונות)
תחנת מזג האוויר של NaTaLia: תחנת מזג אוויר המופעלת באמצעות Arduino סולארית בוצעה בדרך הנכונה: לאחר שנה של הפעלה מוצלחת בשני מיקומים שונים אני משתף את תוכניות הפרויקט של תחנת מזג האוויר המונעות על ידי סולארי ומסביר כיצד היא התפתחה למערכת שיכולה לשרוד לאורך זמן. תקופות מכוח השמש. אם אתה עוקב
תחנת מיני מזג אוויר ארדואינו UNO: 5 שלבים
תחנת מזג אוויר מיני ארדואינו UNO: זהו הדור הראשון של תחנת מזג האוויר מיני מבוססת ארדואינו שלי עם חיבור Wi-Fi, המסוגלת לפרסם נתונים באופן ציבורי ברשת באמצעות פלטפורמת ThingSpeak. תחנת מזג האוויר אוספת את הנתונים הבאים הקשורים למזג האוויר ו סביבה
תחנת מזג אוויר Acurite 5 in 1 באמצעות פיי פטל ו- Weewx (תחנות מזג אוויר אחרות תואמות): 5 שלבים (עם תמונות)
תחנת מזג אוויר Acurite 5 in 1 באמצעות פי פטל ו- Weewx (תחנות מזג אוויר אחרות תואמות): כשקניתי את תחנת מזג האוויר Acurite 5 in 1 רציתי להיות מסוגל לבדוק את מזג האוויר בבית שלי בזמן שהייתי בחוץ. כשהגעתי הביתה והגדרתי אותו הבנתי שאני חייב לחבר את המסך למחשב או לקנות את הרכזת החכמה שלהם