Съдържание:

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 са модулни единици „Направи си сам“, които могат да бъдат комбинирани с други IOT123 ТУКЛИ, за да се добави функционалност към възел или носим. Те се основават на инчови квадратни, двустранни протобордове със свързани помежду си отвори.

Очаква се редица от тези ТУРКИ да бъдат на множество възли (Master MCUs - ESP8266 или ATTINY84) на сайт. MCU не се нуждае от предварителни познания за целите на сензорите или софтуерните нужди. Той сканира за I2C възли, след което иска дамп на свойство (данни на сензора) от всяко подчинено устройство. Тези тухли захранват 5.0V, 3.3V и друга AUX линия, която може да се персонализира.

Тази I2C MQ2 тухла изхвърля 3 имота:

LPG (части на милион), CO (PPM), дим (PPM)

Този сензор предостави интересен сценарий: Необходими са поне 2 минути (до 5 минути), за да се затопли, след което трябва да се калибрира за 20 секунди преди употреба. Тъй като MCU на хоста е само за получаване на двойки име/стойност (и съобщение за продължаване), ние въведохме свойство "PREPARE". Тъй като неговото съобщение за продължаване е "1" (предстоят още), MCU на домакина ще продължи да оглежда ТИРКАТА, докато не бъде готов. Също така се препоръчва MQ2 да се "изгори" преди употреба, т.е. оставете свързан към вашата 5V верига за 24 часа.

Сензорните тухли тип Keyes първо ще бъдат абстрахирани, тъй като идват с включени витамини (необходими са допълнителни компоненти) и са сравнително евтини (купих 37 за 10 австралийски долара). Други платки/вериги ще бъдат представени на I2C тухлите.

Проходните отвори, съседни на ATTINY85, са оставени неизползвани, за да се даде възможност за програмиране на pogo pin, докато DIP8 е запоен към печатната платка.

Разработва се още една абстракция, опаковане на ТУКЛИТЕ в малки цилиндри, които се включват в D1M WIFI BLOCK хъб, изпомпвайки стойностите към MQTT сървър.

Стъпка 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 запазена“, „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 SENSORS, уверете се, че подчиненият адрес е различен в комбинация SENSOR/MCU Host, т.е. всички температурни сензори могат да имат един и същ адрес, стига да имате само един сензор за температура на MCU/възел.

Стъпка 3: Сглобете веригата

Сглобете веригата
Сглобете веригата
Сглобете веригата
Сглобете веригата
Сглобете веригата
Сглобете веригата
  1. Отпред поставете компонентите ATTINY85 (1), 3P 90deg мъжки заглавки (2) (3), 2P мъжки заглавки (4) (5) и спойнете отзад.
  2. Отзад проследете оранжев проводник от ORANGE1 до ORANGE2 и запойте.
  3. Отзад проследете син проводник от СИН1 до СИН2 и запойте.
  4. Отзад проследете зелен проводник от ЗЕЛЕН1 до ЗЕЛЕН2 и запойте.
  5. Отзад проследете гола жица от СРЕБЪР1 до СРЕБЪР2 и запойте.
  6. Отзад проследете гола жица от SILVER3 до SILVER4 и запойте.
  7. Отзад проследете черен проводник от BLACK1 до BLACK2 и запойте.
  8. Отзад проследете черен проводник от BLACK3 до BLACK4 и запойте.
  9. Отзад проследете червен проводник от RED1 до RED2 и запойте.
  10. Отзад проследете червен проводник от RED3 до RED4 и запойте.
  11. Отзад проследете жълт проводник от ЖЪЛТО1 до ЖЪЛТО2 и запойте.

Сензорът вече може да бъде свързан директно чрез неговите щифтове към печатната платка или чрез проводници, към точките, показани в договора на щифта.

Стъпка 4: Тестване

Тестване
Тестване
Тестване
Тестване
Тестване
Тестване

Очаква се редица от тези ТУРКИ да бъдат на множество възли (MCUs - ESP8266 или ATTINY84) в среда. Това е единичен тест: проверява заявките/отговорите на UNO, докато всички данни бъдат изхвърлени, след което пренебрегва I2C подчинения.

  1. Качете UNO кода във вашия UNO тест. Уверете се, че ADDRESS_SLAVE съвпада с I2C адреса на ТУРКАТА.
  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 бода (рестартирайте UNO и отново отворете конзолата, ако трябва).
  11. Имената и стойностите на свойствата трябва да бъдат отпечатани в конзолата веднъж, след което думата sleep се повтаря.

Ако видите "настройка", тогава 3 реда боклук се повтарят, може да имате SDA и SCL линиите си отпред.

I2C Master регистриране от I2C slave с поддръжка на плотер/метаданни

#включва
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = невярно;
bool _confirmedMetadata = false;
int _packetSegment = 0;
bool _i2cNodeProcessed = невярно;
char _property [2] [24] = {"име", "стойност"};
voidsetup () {
Wire.begin (); // присъединяване към i2c шина (адрес по избор за главния)
Serial.begin (9600); // стартиране на сериен изход
забавяне (1000);
if (! _outputPlotterOnly) {
Serial.println ("настройка");
Serial.println ();
}
}
voidloop () {
if (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// уведомете подчинения да започне да изпраща сензорни данни
забавяне (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
забавяне (100);
_confirmedMetadata = вярно;
}
_i2cNodeProcessed = невярно;
if (! _outputPlotterOnly) {
Serial.println ();
}
връщане;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char пакет [16];
intindex = 0;
bool isContinueSegment = false; // continueSegment (3 -ти) 1 = повече, 0 = последен
while (Wire.available ()) {// slave може да изпрати по -малко от заявеното
char c = Wire.read ();
пакет [индекс] = int (c)> -1? c: ''; // заменете невалидните символи с интервали
if (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = true;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
if (int (c) == 48 || int (c) == 86) {// 0 за последното свойство
_i2cNodeProcessed = вярно;
// изпраща стойности до MQTT
прекъсване;
}
}
индекс ++;
}
if (! isContinueSegment) {
if (! _outputPlotterOnly) {
Serial.println (пакет);
}
strcpy (_property [_packetSegment - 1], пакет); // задайте локален var с име/стойност
} else {
if (_outputPlotterOnly && _confirmedMetadata) {
if (_i2cNodeProcessed) {
Serial.println (_property [1]);
} else {
Serial.print (_property [1]);
Serial.print ("");
}
}
}
}

вижте rawuno_i2c_generic_sensor_test_w_plotter_v2.ino хоствано с ❤ от GitHub

Стъпка 5: Следващи стъпки

Основното оформление на веригата и I2C слоя на софтуера е свързано с много различни сензори. Основното, с което трябва да започнете, е пакетният договор между master и slave.

Имам планирана/стартирана (3D отпечатана) пакетирана мрежа от сензори, които използват тази рамка и ще се свързват с нея, когато се публикуват части.

Този БЛОК се използва от МАКСИМАЛНИЯ СЕНЗОР MQ2.

Препоръчано: