Мазмұны:

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 - бұл түйінге функционалдылықты қосу немесе киюге болатын басқа IOT123 кірпіштерімен біріктіруге болатын DIY модульдік қондырғылары. Олар дюймдік шаршыға, тесіктері арқылы өзара қосылған екі жақты протоборларға негізделген.

Бұл BRICKS саны сайтта бірнеше түйіндерде болады (Master MCUs - ESP8266 немесе ATTINY84). MCU сенсорлардың мақсаты немесе бағдарламалық қамтамасыз ету қажеттілігі туралы алдын ала білуді қажет етпейді. Ол I2C түйіндерін сканерлейді, содан кейін әрбір құлдан сипаттық демпингті (сенсорлық деректерді) сұрайды. Бұл BRICKs 5.0V, 3.3V және реттелетін басқа AUX желісін береді.

Бұл I2C MQ2 BRICK 3 қасиетті тастайды:

Сұйытылған газ (миллионға шаққандағы бөліктер), CO (PPM), ТҮТІН (PPM)

Бұл сенсор қызықты сценарий ұсынды: оны қыздыру үшін кемінде 2 минут қажет (5 минутқа дейін), содан кейін оны қолданар алдында 20 секунд бойы калибрлеу қажет. Қабылдаушы MCU тек атау/мән жұбын алуға бағытталған (және жалғасы бар хабарлама) болғандықтан, біз «ДАЙЫНДАУ» қасиетін енгіздік. Жалғастыру туралы хабарлама «1» (алдағы уақытта) болғандықтан, хост MCU дайын болғанша BRICK бойынша сауалнама жүргізеді. Сондай-ақ, MQ2-ді қолданар алдында «күйдіру» ұсынылады, яғни 5В тізбегіне 24 сағат бойы қосылып тұрыңыз.

Keyes типті сенсорлық кірпіштер алдымен абстракцияланады, өйткені олар витаминдермен (қосымша компоненттер қажет) және салыстырмалы түрде таза (мен 37 AUD үшін сатып алдым). Басқа тақталар/схемалар I2C BRICKS -ке енгізіледі.

ATTINY85-ке іргелес орналасқан тесіктер DIP8 ПХД-ге дәнекерленген кезде, пинг-пин бағдарламашысын қосу үшін пайдаланылмай қалды.

D1M WIFI BLOCK хабына қосылатын, мәндерді MQTT серверіне айдайтын шағын цилиндрлерге BRICKS ораудың тағы бір абстракциясы әзірленуде.

1 -қадам: материалдар мен құралдар

Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар

Материалдар мен ресурстардың толық тізімі бар.

  1. MQ2 сенсорлық кірпіш (1)
  2. ATTINY85 20PU (1)
  3. 1 дюймдік екі жақты протободы (1)
  4. Ерлер тақырыбы 90º (3P, 3P)
  5. Ерлер тақырыбы (2P, 2P)
  6. Секіргіш шунт (1)
  7. Қосылатын сым (~ 7)
  8. Дәнекер және темір (1)

2 -қадам: ATTINY85 дайындаңыз

ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз

Тақталар менеджерінен AttinyCore қажет. «EEPROM Retained», «8mHZ Internal» жүктеушісін жазыңыз (барлық конфигурация жоғарыда көрсетілген).

Қосылған дереккөзді пайдаланыңыз; 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 SENSORS бар болса, SENSOR/MCU хост комбинациясында қосалқы мекенжайдың әр түрлі екеніне көз жеткізіңіз, яғни 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. Артқы жағында САРЫ 1 -ден САРЫ2 -ге дейінгі сары сымды және дәнекерлеуді қадағалаңыз.

Енді сенсорды түйреуіштер арқылы ПХД немесе сымдар арқылы, түйреуіш келісімінде көрсетілген нүктелерге қосуға болады.

4 -қадам: тестілеу

Сынақ
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ

Бұл BRICKS саны қоршаған ортада бірнеше түйіндерде (MCU - ESP8266 немесе ATTINY84) болады деп күтілуде. Бұл бірлік сынағы: барлық деректер жойылғанша БҰҰ сұрауларын/жауаптарын тексереді, содан кейін I2C құлын елемейді.

  1. БҰҰ кодын UNO сынақ құралдарына жүктеңіз. ADDRESS_SLAVE BRICK I2C мекенжайына сәйкес келетініне көз жеткізіңіз.
  2. БҰҰ -дағы 5.0В -ты BRICK -тегі VCC -ге қосыңыз.
  3. Бұл түйреуішке қосқыштың қосылғанына көз жеткізіңіз.
  4. UNO -дағы GND -ді BRICK -тегі GND -ге қосыңыз.
  5. A5 -ті UNO -да SCL -ге BRICK -ке қосыңыз.
  6. A4 -ті БҰҰ -дағы SDA -ға BRICK -те қосыңыз.
  7. SDA-дан VCC-ге 4K7 тартылатын резисторды қосыңыз.
  8. SCL-ден VCC-ге 4K7 тартылатын резисторды қосыңыз.
  9. БҰҰ -ды USB көмегімен Dev компьютеріне қосыңыз.
  10. Arduino консолін ашыңыз, 9600 байды таңдаңыз (БҰҰ -ны қайта іске қосыңыз және қажет болса консольді қайта ашыңыз).
  11. Сипат атаулары мен мәндері консольге бір рет басып шығарылуы керек, содан кейін ұйқы сөзі қайталанады.

Егер сіз «баптауды» көрсеңіз, онда қоқыстың 3 жолы қайталанады, сізде SDA және SCL сызықтары алдыңғы жағында болуы мүмкін.

I2C Master I2C slave -ден плоттер/метадеректер қолдауымен тіркеу

#қосу
#анықтауADDRESS_SLAVE10
bool _outputPlotterOnly = жалған;
bool _confirmedMetadata = жалған;
int _packetSegment = 0;
bool _i2cNodeProcessed = жалған;
char _property [2] [24] = {«аты», «мәні»};
voidsetup () {
Wire.begin (); // i2c шинасына қосылыңыз (мекенжай мастер үшін міндетті емес)
Serial.begin (9600); // шығару үшін сериялық бастаңыз
кешіктіру (1000);
егер (! _outputPlotterOnly) {
Serial.println («орнату»);
Serial.println ();
}
}
voidloop () {
егер (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// сенсор деректерін жіберуді бастау туралы құлға хабарлаңыз
кешіктіру (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
кешіктіру (100);
_confirmedMetadata = ақиқат;
}
_i2cNodeProcessed = жалған;
егер (! _outputPlotterOnly) {
Serial.println ();
}
қайтару;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char пакеті [16];
intindex = 0;
bool isContinueSegment = жалған; // ContinueSegment (3 -ші) 1 = көп, 0 = соңғы
while (Wire.available ()) {// slave сұраудан аз жібере алады
char c = Wire.read ();
пакет [индекс] = int (c)> -1? c: ''; // жарамсыз таңбаларды бос орынмен ауыстырыңыз
егер (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = ақиқат;
//Serial.println("------------- «);
//Serial.println(int(c));
//Serial.println("------------- «);
if (int (c) == 48 || int (c) == 86) {// 0 соңғы қасиет бойынша
_i2cNodeProcessed = ақиқат;
// MQTT мәндерін жіберу
үзіліс;
}
}
индекс ++;
}
if (! isContinueSegment) {
егер (! _outputPlotterOnly) {
Serial.println (пакет);
}
strcpy (_property [_packetSegment - 1], пакет); // аты/мәні бар жергілікті var орнатыңыз
} басқа {
егер (_outputPlotterOnly && _confirmedMetadata) {
егер (_i2cNodeProcessed) {
Serial.println (_мүлік [1]);
} басқа {
Serial.print (_property [1]);
Serial.print («»);
}
}
}
}

GitHub ❤ ұсынған rawuno_i2c_generic_sensor_test_w_plotter_v2.ino қарау

5 -қадам: Келесі қадамдар

Схеманың негізгі орналасуы мен бағдарламалық жасақтаманың I2C қабаты әр түрлі сенсорларға қатысты. Ең бастысы - бастық пен құл арасындағы пакеттік келісімшарт.

Мен осы шеңберді қолданатын сенсорлардың (3D басып шығарылған) пакеттік желісін жоспарладым/бастадым және бөліктер жарияланған кезде оған сілтеме жасайды.

Бұл блокты MQ2 ASSIMILATE SENSOR қолданады.

Ұсынылған: