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

IOT123 - I2C MQ2 בריק: 5 שלבים
IOT123 - I2C MQ2 בריק: 5 שלבים

וִידֵאוֹ: IOT123 - I2C MQ2 בריק: 5 שלבים

וִידֵאוֹ: IOT123 - I2C MQ2 בריק: 5 שלבים
וִידֵאוֹ: MQ-2 датчик газов и дыма подключаем к Arduino 2024, נוֹבֶמבֶּר
Anonim
IOT123 - לבנה I2C MQ2
IOT123 - לבנה I2C MQ2
IOT123 - לבנה I2C MQ2
IOT123 - לבנה I2C MQ2
IOT123 - לבנה I2C MQ2
IOT123 - לבנה I2C MQ2
IOT123 - לבנה I2C MQ2
IOT123 - לבנה I2C MQ2

ה- 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: חומר וכלים

חומר וכלים
חומר וכלים
חומר וכלים
חומר וכלים
חומר וכלים
חומר וכלים

יש רשימה מלאה של חומרים ומקורות.

  1. לבני חיישן MQ2 (1)
  2. ATTINY85 20PU (1)
  3. 1 "פרוטבורד דו צדדי (1)
  4. כותרת זכר 90º (3P, 3P)
  5. כותרת זכר (2P, 2P)
  6. מגשר Shunt (1)
  7. חיבור חיבור (~ 7)
  8. הלחמה וברזל (1)

שלב 2: הכינו את ה- ATTINY85

הכינו את ה- ATTINY85
הכינו את ה- ATTINY85
הכינו את ה- ATTINY85
הכינו את ה- ATTINY85
הכינו את ה- ATTINY85
הכינו את ה- ATTINY85
הכינו את ה- ATTINY85
הכינו את ה- 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: הרכיב את המעגל

הרכיבו את המעגל
הרכיבו את המעגל
הרכיבו את המעגל
הרכיבו את המעגל
הרכיבו את המעגל
הרכיבו את המעגל
  1. בחזית, הכנס את הרכיבים ATTINY85 (1), כותרות זכר 3P 90deg (2) (3), 2P כותרות זכר (4) (5), והלחם על הגב.
  2. מאחור, עקוב אחר חוט כתום מ- ORANGE1 ל- ORANGE2 והלחמה.
  3. מאחור, עקוב אחר חוט כחול מ- BLUE1 ל- BLUE2 והלחמה.
  4. מאחור, עקוב אחר חוט ירוק מ- GREEN1 ל- GREEN2 והלחמה.
  5. מאחור, עקוב אחר חוט חשוף מ- SILVER1 ל- SILVER2 והלחמה.
  6. מאחור, עקוב אחר חוט חשוף מ- SILVER3 ל- SILVER4 והלחמה.
  7. מאחור, עקוב אחר חוט שחור מ- BLACK1 ל- BLACK2 והלחמה.
  8. מאחור, עקוב אחר חוט שחור מ- BLACK3 ל- BLACK4 והלחמה.
  9. מאחור, עקוב אחר חוט אדום מ- RED1 ל- RED2 והלחמה.
  10. מאחור, עקוב אחר חוט אדום מ- RED3 ל- RED4 והלחמה.
  11. מאחור, עקוב אחר חוט צהוב מ- YELLOW1 ל- YELLOW2 והלחמה.

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

שלב 4: בדיקה

בדיקה
בדיקה
בדיקה
בדיקה
בדיקה
בדיקה

מספר בריקים אלה צפויים להיות במספר צמתים (MCUs - ESP8266 או ATTINY84) בסביבה. זוהי בדיקת יחידה: בודקת את הבקשות/תגובות UNO עד שכל הנתונים נזרקו ואז מזניחה את העבד I2C.

  1. העלה את קוד UNO לרתמת הבדיקה של UNO שלך. ודא ש- ADDRESS_SLAVE תואם את כתובת I2C של BRICK.
  2. חבר את 5.0V ב- UNO ל- VCC ב- BRICK.
  3. ודא שהמגף לסיכה זו מופעל.
  4. חבר את ה- GND ב- UNO ל- GND ב- BRICK.
  5. חבר את A5 ב- UNO ל- SCL ב- BRICK.
  6. חבר את ה- A4 ב- UNO ל- SDA ב- BRICK.
  7. חבר נגד נגד משיכה 4K7 מ- SDA ל- VCC.
  8. חבר נגד הנגינה 4K7 מ- SCL ל- VCC.
  9. חבר את UNO למחשב ה- Dev שלך באמצעות USB.
  10. פתח את מסוף Arduino. בחר 9600 baud (הפעל מחדש את UNO ופתח מחדש את הקונסולה אם עליך).
  11. יש להדפיס את שמות הנכסים והערכים לקונסולה ברגע שהמילה שינה חוזרת על עצמה.

אם אתה רואה "התקנה", אז 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.

מוּמלָץ: