תוכן עניינים:
- שלב 1: חומר וכלים
- שלב 2: הכינו את ה- ATTINY85
- שלב 3: הרכיב את המעגל
- שלב 4: בדיקה
- שלב 5: השלבים הבאים
וִידֵאוֹ: IOT123 - I2C MQ2 בריק: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
ה- IOT123 BRICKS הן יחידות מודולריות מסוג DIY שניתן לערבב אותן עם IOT123 BRICKS אחרות, כדי להוסיף פונקציונליות לצומת או לביש. הם מבוססים על מרובעי הסנטימטרים המרובעים והדו-צדדיים עם חורים המחוברים זה לזה.
מספר בריקים אלה צפויים להיות במספר צמתים (Master MCUs - ESP8266 או ATTINY84) באתר. ה- MCU אינו זקוק לידע מוקדם של מטרת החיישנים או צרכי התוכנה. הוא סורק אחר צמתים I2C ואז מבקש הצלת נכס (נתוני חיישן) מכל עבד. בריקים אלה מספקים 5.0V, 3.3V ועוד קו AUX הניתן להתאמה אישית.
I2C MQ2 BRICK משליך 3 נכסים:
גפ"מ (חלקים למיליון), CO (PPM), עשן (PPM)
חיישן זה סיפק תרחיש מעניין: הוא צריך לפחות 2 דקות (עד 5 דקות) להתחמם, ואז הוא צריך לכייל במשך 20 שניות לפני השימוש. מכיוון שמרכז ה- MCU המארח מעוצב רק בקבלת זוגות שם/ערך (והודעת המשך), הצגנו מאפיין "PREPARE". מכיוון שהודעת ההמשך שלו היא "1" (עוד יבואו), ה- MCU המארח ימשיך לסקר את ה- BRICK עד שהוא יהיה מוכן. כמו כן, מומלץ "לשרוף" את ה- MQ2 לפני השימוש, כלומר להשאיר מחובר למעגל 5V שלך למשך 24 שעות.
לבני החיישן מסוג Keyes יופשטו תחילה מכיוון שהן מגיעות עם ויטמינים (יש צורך ברכיבים נוספים) והם יחסית זולים (קניתי 37 תמורת 10AUD). לוחות/מעגלים אחרים יוצגו ל- I2C BRICKS.
החורים המעוברים הסמוכים ל- ATTINY85 נותרו ללא שימוש, כדי לאפשר מתכנת סיכות פוגו בזמן שה- DIP8 מולחם אל ה- PCB.
הפשטה נוספת, אריזת ה- BRICKS בצילינדרים קטנים המתחברים לרכזת D1M WIFI BLOCK, ושואבת את הערכים לשרת MQTT, מפותחת.
שלב 1: חומר וכלים
יש רשימה מלאה של חומרים ומקורות.
- לבני חיישן MQ2 (1)
- ATTINY85 20PU (1)
- 1 "פרוטבורד דו צדדי (1)
- כותרת זכר 90º (3P, 3P)
- כותרת זכר (2P, 2P)
- מגשר Shunt (1)
- חיבור חיבור (~ 7)
- הלחמה וברזל (1)
שלב 2: הכינו את ה- ATTINY85
יש צורך ב- AttinyCore ממנהל הלוחות. צריבת מטען האתחול "EEPROM שמור", "8mHZ פנימי" (כל התצורות מוצגות למעלה).
השתמש במקור הכלול; הידור ותכנות ל- ATtiny85.
ה- GIST נמצא כאן:
gist.github.com/IOT-123/4c501046d365d01a60…
אתה עשוי למצוא פרטים נוספים במדריכים הבאים:
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/How-to-Program-AT…
www.instructables.com/id/How-to-program-th…
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/Programming-an-At…
עדיף לבדוק באמצעות קרש לחם לפני שתמשיך.
אם יש לך חיישני ASSIMILATE קיימים, ודא שכתובת העבד שונה בצירוף SENSOR/MCU Host כלומר כל חיישני הטמפרטורה יכולים להיות בעלי אותה כתובת כל עוד יש לך רק חיישן טמפרטורה אחד ב- MCU/צומת.
שלב 3: הרכיב את המעגל
- בחזית, הכנס את הרכיבים ATTINY85 (1), כותרות זכר 3P 90deg (2) (3), 2P כותרות זכר (4) (5), והלחם על הגב.
- מאחור, עקוב אחר חוט כתום מ- ORANGE1 ל- ORANGE2 והלחמה.
- מאחור, עקוב אחר חוט כחול מ- BLUE1 ל- BLUE2 והלחמה.
- מאחור, עקוב אחר חוט ירוק מ- GREEN1 ל- GREEN2 והלחמה.
- מאחור, עקוב אחר חוט חשוף מ- SILVER1 ל- SILVER2 והלחמה.
- מאחור, עקוב אחר חוט חשוף מ- SILVER3 ל- SILVER4 והלחמה.
- מאחור, עקוב אחר חוט שחור מ- BLACK1 ל- BLACK2 והלחמה.
- מאחור, עקוב אחר חוט שחור מ- BLACK3 ל- BLACK4 והלחמה.
- מאחור, עקוב אחר חוט אדום מ- RED1 ל- RED2 והלחמה.
- מאחור, עקוב אחר חוט אדום מ- RED3 ל- RED4 והלחמה.
- מאחור, עקוב אחר חוט צהוב מ- YELLOW1 ל- YELLOW2 והלחמה.
כעת ניתן לחבר את החיישן ישירות באמצעות הפינים שלו ללוח המודרני או באמצעות חוטים, לנקודות המוצגות בחוזה הסיכה.
שלב 4: בדיקה
מספר בריקים אלה צפויים להיות במספר צמתים (MCUs - ESP8266 או ATTINY84) בסביבה. זוהי בדיקת יחידה: בודקת את הבקשות/תגובות UNO עד שכל הנתונים נזרקו ואז מזניחה את העבד I2C.
- העלה את קוד UNO לרתמת הבדיקה של UNO שלך. ודא ש- ADDRESS_SLAVE תואם את כתובת I2C של BRICK.
- חבר את 5.0V ב- UNO ל- VCC ב- BRICK.
- ודא שהמגף לסיכה זו מופעל.
- חבר את ה- GND ב- UNO ל- GND ב- BRICK.
- חבר את A5 ב- UNO ל- SCL ב- BRICK.
- חבר את ה- A4 ב- UNO ל- SDA ב- BRICK.
- חבר נגד נגד משיכה 4K7 מ- SDA ל- VCC.
- חבר נגד הנגינה 4K7 מ- SCL ל- VCC.
- חבר את UNO למחשב ה- Dev שלך באמצעות USB.
- פתח את מסוף Arduino. בחר 9600 baud (הפעל מחדש את UNO ופתח מחדש את הקונסולה אם עליך).
- יש להדפיס את שמות הנכסים והערכים לקונסולה ברגע שהמילה שינה חוזרת על עצמה.
אם אתה רואה "התקנה", אז 3 שורות זבל חוזרות עלולות להיות שורות ה- SDA וה- SCL שלך קדימה.
I2C מאסטר רישום מעבד I2C עם תמיכה בפוטר/מטא נתונים
#לִכלוֹל |
#הגדר ADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _confirmedMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"שם", "ערך"}; |
הגדרת voids () { |
Wire.begin (); // הצטרף לאוטובוס i2c (כתובת אופציונלית למאסטר) |
Serial.begin (9600); // התחל סדרתי לפלט |
עיכוב (1000); |
אם (! _outputPlotterOnly) { |
Serial.println ("התקנה"); |
Serial.println (); |
} |
} |
voidloop () { |
if (_i2cNodeProcessed) { |
if (! _confirmedMetadata) {// הודע לעבד כדי להתחיל לשלוח נתוני חיישנים |
עיכוב (1); |
שידור Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
עיכוב (100); |
_confirmedMetadata = true; |
} |
_i2cNodeProcessed = false; |
אם (! _outputPlotterOnly) { |
Serial.println (); |
} |
לַחֲזוֹר; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
חבילת צ'ארלה [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (השלישי) 1 = יותר, 0 = אחרון |
בעוד (Wire.available ()) {// העבד עשוי לשלוח פחות מהמתבקש |
char c = Wire.read (); |
מנה [אינדקס] = int (c)> -1? c: ''; // החלף תווים לא חוקיים ברווחים |
אם (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = true; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
if (int (c) == 48 || int (c) == 86) {// 0 בנכס האחרון |
_i2cNodeProcessed = true; |
// שלח ערכים ל- MQTT |
לשבור; |
} |
} |
אינדקס ++; |
} |
אם (! isContinueSegment) { |
אם (! _outputPlotterOnly) { |
Serial.println (מנות); |
} |
strcpy (_property [_packetSegment - 1], packet); // הגדר var מקומי עם שם/ערך |
}אַחֵר{ |
if (_outputPlotterOnly && _confirmedMetadata) { |
if (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
}אַחֵר{ |
Serial.print (_ נכס [1]); |
Serial.print (""); |
} |
} |
} |
} |
הצג rawuno_i2c_generic_sensor_test_w_plotter_v2.ino שהתארח אצל ❤ על ידי GitHub
שלב 5: השלבים הבאים
הפריסה הבסיסית של המעגל ושכבת ה- I2C של התוכנה קשורה לחיישנים רבים ושונים. הדבר העיקרי שצריך להתחיל איתו הוא חוזה המנות בין אדון לעבד.
פתחתי/פתחתי רשת (מודפסת תלת מימד) של חיישנים המשתמשים במסגרת זו ויקשרו אליה עם פרסום חלקים.
הגוש הזה משמש את החיישן ASSIMILATE MQ2.
מוּמלָץ:
IOT123 - D1M BLOCK - 2xAMUX Assembly: 7 שלבים (עם תמונות)
IOT123 - D1M BLOCK - 2xAMUX מכלול: D1M BLOCKS מוסיפים מארזים מישוש, תוויות, מדריכי קוטביות והתפרצויות עבור ה- Wemos D1 Mini SOC/Shields/Clones הפופולרי. אחת הבעיות בשבב ESP8266 היא שיש לו רק סיכת IO אנלוגית אחת זמינה. מדריך זה מראה כיצד להרכיב את 2xA
IOT123 - D1M BLOCK - הרכבת RFTXRX: 8 שלבים
IOT123 - D1M BLOCK - הרכבה RFTXRX: D1M BLOCKS מוסיפים מארזי מישוש, תוויות, מדריכי קוטביות והתפרצויות עבור ה- Wemos D1 Mini SOC/Shields/Clones הפופולרי. משדרי/מקלט RF מאפשרים ל- ESP8266 לגשת לאוטומציה ביתית/תעשייתית קיימת. מעטפת זו מספקת פריצות עבור 433
IOT123 - D1M BLOCK - הרכבה GY521: 8 שלבים
IOT123 - D1M BLOCK - GY521 הרכבה: D1M BLOCKS מוסיפים מארזי מישוש, תוויות, מדריכי קוטביות והתפרצויות עבור ה- Wemos D1 Mini SOC/Shields/Clones הפופולרי. בלוק D1M זה נותן חיבור פשוט בין Wemos D1 Mini לבין מודול GY-521 (ניתן לחבר את סיכות הכתובת והפרעה
IOT123 - חיישן סמיך: MQ2: 4 שלבים
IOT123 - חיישן אסמילירט: MQ2: חיישני ASSIMILATE הם חיישני סביבה הכוללים שכבת הפשטה של חומרה ותוכנה, מה שמאפשר להוסיף סוגים חדשים לגמרי ל- HUB ASSIMILATE SENSOR ולשאוב את הקריאות לשרת MQTT ללא תוספת קודאין
IOT123 - 5PIN ATTINY85 NRF24L01 בריק: 4 שלבים
IOT123 - 5PIN ATTINY85 NRF24L01 לבנים: עדכון: התקנה זו היא אקדמית במידה רבה או בסיס לבדיקת תוכנות/ספק כוח. גם כאשר PB5 מושבת כ- RESET, הוא אינו קורא ערכים במדויק באמצעות analogRead: מקרה השימוש העיקרי עבור קריאות חיישן. אבדוק את ההתקנה של ATTINY84