- חומרים נדרשים:
- מתודולוגיית עבודה:
- דרישות קדם:
- עבודה של שלט AC:
- תרשים מעגל והסבר:
- פענוח אותות מרחוק AC:
- תוכנית ארדואינו ראשית:
- עבודה של מערכת בקרת טמפרטורה אוטומטית:
מזגן (AC) שהיה נחשב לפריט יוקרתי ונמצא רק בבתי מלון גדולים, אולמות קולנוע, מסעדות וכו '… אבל, כמעט לכולם יש AC בביתנו כדי לנצח את הקיץ / בחורף ולמי שיש לו את זה, דואגים לדבר אחד נפוץ. זו צריכת החשמל הגבוהה והמטענים שלהם בגלל זה. בפרויקט זה אנו הולכים ליצור מעגל בקרת טמפרטורות אוטומטי קטן שיכול למזער את מטעי החשמל על ידי שינוי טמפרטורת ה- AC באופן אוטומטי בהתבסס על טמפרטורת החדרים. על ידי שינוי הטמפרטורה שנקבעה מעת לעת אנו יכולים להימנע מהפיכת ה- AC לעבודה לערכי טמפרטורה נמוכים יותר לאורך זמן ובכך לגרום לו לצרוך פחות חשמל.
רובנו היינו חווים מצב בו עלינו לשנות את הטמפרטורה המוגדרת של המזגן לערכים שונים בשעות שונות של היום, כדי לשמור על נוחות לאורך כל הדרך. כדי להפוך את התהליך הזה בפרויקט זה נעשה שימוש בחיישן טמפרטורה (DHT11) אשר קוראת את הטמפרטורה הנוכחית של החדר ועל סמך ערך כי זה יהיה לשלוח פקודות AC דרך IR Blaster דומה AC של מרחוק. ה- AC יגיב לפקודות אלה כאילו הוא מגיב לשלט הרחוק שלו ובכך יתאים את הטמפרטורה. כאשר הטמפרטורה בחדר שלך משתנה, ה- Arduino גם יתאים את הטמפרטורה המוגדרת של AC שלך כדי לשמור על הטמפרטורה שלך בדיוק כפי שאתה רוצה שתהיה. נשמע מגניב נכון?… בואו נראה איך בונים אחד כזה.
חומרים נדרשים:
- ארדואינו מגה 2560
- TSOP1738 (HS0038)
- IR Led
- חיישן טמפרטורה / לחות DHT11
- כל צבע LED ונגד 1K (אופציונלי)
- קרש לחם
- חוטי חיבור
מתודולוגיית עבודה:
כל השלטים בביתנו שאנו משתמשים בהם לשליטה בטלוויזיה, קולנוע ביתי, AC וכו 'עובדים בעזרת IR Blasters. IR Blaster איננו אלא LED IR Blaster אשר יכולה אות ידי פועם חוזר; אות זה יקרא על ידי המקלט במכשיר האלקטרוניקה. עבור כל כפתור אחר בשלט יופץ אות ייחודי אשר לאחר קריאתו של המקלט משמש לביצוע משימה מוגדרת מראש. אם אנו מצליחים לקרוא את האות הזה שיוצא מהשלט הרחוק, נוכל לחקות את אותו האות באמצעות נורית IR כאשר נדרש אי פעם לבצע את אותה משימה. בעבר יצרנו מעגל IR Blaster לשלט רחוק אוניברסלי.
TSOP מהווה מקלט IR שיכול לשמש כדי לפענח את האות מגיע השלט. מקלט זה ינותק לממשק עם Arduino כדי לאותת לכל כפתור ואז IR Led ישמש עם Arduino כדי לחקות את האות כשנדרש אי פעם. בדרך זו אנו יכולים להשיג שליטה על ה- AC שלנו באמצעות Arduino.
כעת כל שנותר הוא לקרוא את ערך הטמפרטורה באמצעות DHT11 ולהדריך את ה- AC בהתאם באמצעות אותות ה- IR. כדי לגרום לפרויקט להראות יותר אטרקטיבי וידידותי למשתמש, הוספתי גם תצוגת OLED המציגה את הטמפרטורה הנוכחית, הלחות והטמפרטורה שנקבעה. למידע נוסף על שימוש ב- OLED עם Arduino.
דרישות קדם:
פרויקט בקר טמפרטורות AC אוטומטי זה מתקדם מעט לרמת מתחילים, אולם בעזרת מעט הדרכות אחרות כל אחד יכול לבנות זאת בעניין הזמן. אז אם אתם מתחילים מוחלטים ב- OLED, DHT11 או TSOP, אנא חזרו למדריכות הבאות בהן תוכלו ללמוד את היסודות וכיצד להתחיל בעבודה עם אלה. נראה שהרשימה ארוכה מעט, אבל תאמין לי שזה קל וכדאי ללמוד, וגם היא תפתח דלתות לפרויקטים חדשים רבים.
- מעגל בסיסי באמצעות TSOP ו- IR LED עד לעבודתם
- מדריך ממשק בסיסי ל- DHT11 עם Arduino
- מדריך ממשק בסיסי ל- OLED עם Arduino
- ממשק TSOP עם Arduino לקריאת ערכי IR מרחוק
ודא שיש לך מגה של Arduino וכל גרסה אחרת של Arduino, מכיוון שגודל הקוד כבד. בדוק גם אם כבר התקנת את ספריות Arduino הבאות אם לא התקן אותן מהקישור למטה
- ספריית IR מרחוק עבור TSOP ו- IR Blaster
- ספריית Adafruit ל- OLED
- ספריית הגרפיקה GFX עבור OLED
- ספריית חיישנים DHT11 לחיישן טמפרטורה
עבודה של שלט AC:
לפני שנמשיך לפרויקט קח קצת זמן והבחן איך עובד שלט ה- AC שלך. שלטי AC עובדים בצורה שונה במקצת בהשוואה לשלט טלוויזיה, DVD IR. יכול להיות שיש רק 10-12 כפתורים בשלט הרחוק שלך, אך הם יוכלו לשלוח הרבה סוגים שונים של אותות. כלומר השלט לא שולח את אותו קוד בכל פעם לאותו כפתור. לדוגמא, כאשר אתה מוריד את הטמפרטורה באמצעות כפתור למטה כדי להפוך אותו ל -24 מעלות צלזיוס (תואר צלזיוס) תקבל איתות עם סט נתונים, אך כשתלחץ עליו שוב כדי להגדיר 25 מעלות צלזיוס לא תקבל את אותו הדבר. נתונים מכיוון שהטמפרטורה היא כעת 25 ולא 24. באופן דומה, הקוד ל- 25 ישתנה גם עבור מהירות המאוורר השונה, הגדרות שינה וכו '. אז בואו לא נתעסק בכל האפשרויות ופשוט נרכז רק את ערכי הטמפרטורה עם ערך קבוע עבור הגדרות אחרות.
בעיה נוספת היא כמות הנתונים הנשלחים לכל לחיצה על כפתור, שלטים רגילים עם שליחה של 24 סיביות או 48 סיביות, אך שלט AC עשוי לשלוח עד 228 סיביות מכיוון שכל אות מכיל מידע רב כמו Temp, Speed Fan, תזמון שינה, סגנון נדנדה וכו 'זו הסיבה מדוע אנו זקוקים למגה Arduino לאפשרויות אחסון טובות יותר.
תרשים מעגל והסבר:
למרבה המזל הגדרת החומרה של פרויקט בקרת טמפרטורה אוטומטית זו היא קלה מאוד. אתה יכול פשוט להשתמש בקרש לחם ולבצע את החיבורים כפי שמוצג להלן.
ניתן להשתמש בטבלה הבאה לאימות החיבורים שלך.
S. לא: |
סיכת רכיב |
פין ארדואינו |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED- SDA, D1, MOSI, נתונים |
3 |
5 |
OLED- RES, RST, RESET |
7 |
6 |
OLED- DC, A0 |
5 |
7 |
OLED- CS, שבב בחר |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - אות |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
IR Led - אנודה |
9 |
14 |
IR Led - קתודה |
Gnd |
לאחר סיום החיבורים זה אמור להראות בערך כמו זה המוצג למטה. השתמשתי בלוח לחם כדי לסדר דברים, אבל אתה יכול גם לך חוטי זכר לנקבה ישירות כדי לחבר את כל הרכיבים
פענוח אותות מרחוק AC:
הצעד הראשון לשלוט ב- AC שלך הוא להשתמש ב- TSOP1738 לפענוח קודי IR שלט רחוק. בצע את כל החיבורים כפי שמוצג בתרשים המעגל וודא שהתקנת את כל הספריות שהוזכרו. כעת פתח את תוכנית הדוגמה " IRrecvDumpV2 " אשר ניתן למצוא בקובץ -> דוגמאות -> IRremote -> IRrecvDumpV2 . העלה את התוכנית ל- Arduino Mega שלך ופתח את ה- Monitor Serial.
כוון את השלט רחוק לכיוון TSOP ולחץ על כל כפתור כלשהו, עבור כל כפתור שתלחץ עליו האות המתאים יקרא TSOP1738, מפוענח על ידי Arduino ויוצג בצג הסידורי. עבור כל שינוי בטמפרטורה בשלט רחוק תקבל נתונים אחרים. שמור נתונים אלה כי אנו נשתמש בהם בתוכנית הראשית שלנו. הצג הסדרתי שלך ייראה בערך כך, הראיתי גם את קובץ ה- Word עליו שמרתי את הנתונים שהועתקו.
תמונת המסך מציגה את הקוד להגדרת הטמפרטורה על 26 מעלות צלזיוס עבור השלט החשמלי שלי. בהתבסס על השלט הרחוק שלך תקבל קבוצה אחרת של קודים. באופן דומה העתק את הקודים לכל רמת הטמפרטורה השונה. אתה יכול לבדוק את כל קודי ה- IR שלט רחוק למזגן בקוד הארדואינו שניתן בסוף הדרכה זו.
תוכנית ארדואינו ראשית:
את התוכנית הראשית המלאה של ארדואינו תוכלו למצוא בתחתית דף זה, אך אינכם יכולים להשתמש באותה תוכנית. עליכם לשנות את ערכי קוד האות שהשגנו זה עתה משרטוט הדוגמה לעיל. פתח את התוכנית הראשית שלך ב- Arduino IDE וגלול מטה לאזור זה שמוצג למטה, שם עליך להחליף את ערכי המערך בערכים שהשגת עבור השלט הרחוק שלך.
שים לב שהשתמשתי ב -10 מערכים מתוכם שני נהגו להדליק ולכבות את זרם חילופין בזמן שהשאר 8 משמש להגדרת טמפרטורה שונה. לדוגמא Temp23 משמש להגדרת 23 מעלות צלזיוס ב- AC שלך, לכן השתמש בקוד המתאים באותו מערך. ברגע שזה נעשה, אתה רק צריך להעלות את הקוד לארדואינו שלך ולהניח אותו מולך AC וליהנות מהבריזה המגניבה.
ההסבר לקוד הולך כדלקמן, ראשית עלינו להשתמש בחיישן הטמפרטורה DHT1 כדי לקרוא את הטמפרטורה והלחות ולהציגו ב- OLED. זה נעשה על ידי הקוד הבא.
DHT.read11 (DHT11_PIN); // קרא את הטמפרטורה והלחות Measured_temp = DHT.temperature + temp_error; Measured_Humi = DHT. לחות; // בדיקות תצוגת טקסט display.setTextSize (1); display.setTextColor (WHITE); display.setCursor (0,0); display.print ("טמפרטורה:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("לחות:"); display.print (Measured_Humi); display.println ("%");
ברגע שאנו מכירים את טמפרטורת החדר עלינו להשוות אותה לערך הרצוי. ערך רצוי זה הוא ערך קבוע אשר מוגדר כ- 27 מעלות צלזיוס (התואר צלזיוס) בתוכנית שלי. אז בהתבסס על השוואה זו נקבע טמפרטורת AC המתאימה כמוצג להלן
אם (Measured_temp == Desired_temperature + 3) // אם AC מופעל וטמפ 'נמדדת גבוהה מאוד מהרצוי {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); עיכוב (2000); // שלח אות להגדרת 24 * C AC_Temp = 24; }
כאן AC יוגדר ל- 24 ° C כאשר הטמפרטורה הנמדדת היא 30 ° C (מכיוון שהטמפ 'הרצויה היא 27). באופן דומה אנו יכולים ליצור לולאות If רבות כדי להגדיר רמה שונה של טמפרטורות בהתבסס על הטמפרטורה הנמדדת כמוצג להלן.
אם (Measured_temp == Desired_temperature-1) // אם AC פועל וטמפ 'נמדדת נמוכה מהערך הרצוי {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); עיכוב (2000); // שלח אות להגדרת 28 * C AC_Temp = 28; } אם (Measured_temp == Desired_temperature-2) // אם AC פועל וטמפ 'נמדדת נמוכה מאוד מהערך הרצוי {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); עיכוב (2000); // שלח אות להגדרת 29 * C AC_Temp = 29; } אם (Measured_temp == Desired_temperature-3) // אם AC מופעל וטמפ 'נמדדת היא מאוד רצוי ערך מאוד {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); עיכוב (2000); // שלח אות להגדרת 30 * C AC_Temp = 30; }
עבודה של מערכת בקרת טמפרטורה אוטומטית:
כאשר הקוד והחומרה שלך מוכנים, העלה את הקוד ללוח שלך וכדאי לשים לב ל- OLED המציג משהו דומה לזה.
כעת הצב את המעגלים ממול למזגן שלך ואתה מבחין בטמפרטורת ה- AC נשלטת על סמך טמפרטורת החדרים. אתה יכול לנסות להגדיל את הטמפרטורה ליד חיישן DHT11 כדי לבדוק אם הטמפרטורה של ה- AC נשלטת כפי שמוצג בסרטון להלן.
אתה יכול לשנות את התוכנית כדי לבצע כל פעולה רצויה; כל מה שאתה צריך זה הקוד שהשגת משרטוט הדוגמה. מקווה שהבנתם את פרויקט בקר הטמפרטורה האוטומטי הזה ונהניתם לבנות משהו דומה מאוד. אני יודע שיש כאן הרבה מקומות להיתקע, אבל אל תדאגי אז. פשוט השתמש בקטע הפורום או ההערות כדי להסביר את הבעיה שלך ואנשים כאן בוודאי יעזרו לך לפתור אותה.