Мазмуну:

IOT123 - I2C MQ2 КИРПИШ: 5 кадам
IOT123 - I2C MQ2 КИРПИШ: 5 кадам

Video: IOT123 - I2C MQ2 КИРПИШ: 5 кадам

Video: IOT123 - I2C MQ2 КИРПИШ: 5 кадам
Video: 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 КИРПИЧТЕРИ менен биригип, түйүнгө функционалдык мүмкүнчүлүктү кошууга болот. Алар дюймдук чарчы, тешиктер аркылуу бири-бири менен байланышкан эки жактуу протоборлорго негизделген.

Бул BRICKS бир катар сайтта бир нече түйүндөрдө болушу күтүлүүдө (Master MCUs - ESP8266 же ATTINY84). MCU сенсорлордун максаты же программалык камсыздоо муктаждыктары жөнүндө алдын ала билимге муктаж эмес. Ал I2C түйүндөрүн издейт, андан кийин ар бир кулдан мулк таштандысын (сенсордук маалыматтарды) сурайт. Бул BRICKs 5.0V, 3.3V жана настройкаланган башка AUX линиясын беришет.

Бул I2C MQ2 BRICK 3 касиеттерин төгөт:

LPG (Миллион бөлүктөрү), CO (PPM), Түтүн (PPM)

Бул сенсор кызыктуу сценарийди берди: Жылытуу үчүн кеминде 2 мүнөт (5 мүнөткө чейин) керек, андан кийин колдонуудан мурун 20 секунд калибрлеши керек. Кабыл алуучу MCU аты/мааниси жуптарын алуу үчүн гана багытталгандыктан (жана улантуучу билдирүүнү), биз "ДАЯРДОО" касиетин киргиздик. Улантуу билдирүүсү "1" (дагы көп) болгондуктан, Host MCU даяр болгонго чейин BRICK сурамжылоону улантат. Ошондой эле колдонуудан мурун MQ2ди "күйгүзүү" сунушталат, башкача айтканда 5В схемаңызга 24 саат бою туташып туруңуз.

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

ATTINY85 жанындагы тешиктер DIP8 ПХБга ширетилип жатканда, пого пин программистти иштетүү үчүн колдонулбай калган.

Дагы бир абстракция, D1M WIFI BLOCK хабына туташтырылган кичинекей цилиндрлерге кирпичтерди таңгактоо, баалуулуктарды MQTT серверине чыгаруу.

1 -кадам: материалдар жана шаймандар

Материалдар жана куралдар
Материалдар жана куралдар
Материалдар жана куралдар
Материалдар жана куралдар
Материалдар жана куралдар
Материалдар жана куралдар

Материалдардын жана булактардын толук тизмеси бар.

  1. MQ2 сенсор кыш (1)
  2. ATTINY85 20PU (1)
  3. 1 "Эки тараптуу протобер (1)
  4. Эркек Башы 90º (3P, 3P)
  5. Эркек баш (2P, 2P)
  6. Jumper Shunt (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 Host айкалышында кул дареги башкача экенин текшериңиз, башкача айтканда, MCU/түйүнүндө бир гана Температура сенсору болгондо, бардык Температура сенсорлору ошол эле дарекке ээ болушу мүмкүн.

3 -кадам: Районду чогултуңуз

Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
Circuit чогултуу
  1. Алдыңкы бөлүктө ATTINY85 (1), 3P 90deg эркек баштыктары (2) (3), 2P эркек баштар (4) (5) жана арткы жагына ширетилген компоненттерди салыңыз.
  2. Арткы жагында, ORANGE1ден ORANGE2ге чейин кызгылт сары түстөгү зымды издеңиз.
  3. Арткы жагында, BLUE1ден BLUE2ге чейин көк зымды караңыз жана solder.
  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 бир катар чөйрөдө бир нече түйүндөрдө (MCUs - ESP8266 же ATTINY84) болушу күтүлүүдө. Бул бирдиктүү тест: бардык маалыматтар ташталганга чейин БУУнун суроо -талаптарын/жоопторун текшерет, андан кийин I2C кулун этибарга албайт.

  1. БУУнун кодун БУУнун сыноо жабдууларына жүктөңүз. ADDRESS_SLAVE BRICKтин I2C дарегине дал келерин текшериңиз.
  2. БУУдагы 5.0Вды БРИККтеги VCCге туташтырыңыз.
  3. Ошол пин үчүн секиргичтин күйгүзүлгөнүн текшериңиз.
  4. БУУдагы GNDди БРИККтеги GNDге туташтырыңыз.
  5. A5ти БУУда SCL менен BRICKке туташтырыңыз.
  6. БУУдагы А4ты БРИКК боюнча SDAга туташтырыңыз.
  7. SDAдан VCCге 4K7 тартма каршылыгын туташтырыңыз.
  8. SCLден VCCге 4K7 тартма каршылыгын туташтырыңыз.
  9. UNOну USB менен Dev PCке туташтырыңыз.
  10. Arduino консолун ачыңыз. 9600 baudду тандаңыз (БУУну кайра баштаңыз жана керек болсо консолун кайра ачыңыз).
  11. Мүлк аттары жана баалуулуктары консолго бир жолу басылышы керек, андан кийин уйку сөзү кайталанат.

Эгер сиз "орнотууну" көрсөңүз, анда 3 сап таштанды кайталанат, сизде SDA жана SCL линиялары алдыңкы жагында болушу мүмкүн.

I2C Master I2C кулунан плоттер/метадайындарды колдоосу менен каттайт

#кошуу
#аныктооADDRESS_SLAVE10
bool _outputPlotterOnly = false;
bool _confirmedMetadata = false;
int _packetSegment = 0;
bool _i2cNodeProcessed = false;
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 = true;
}
_i2cNodeProcessed = жалган;
эгер (! _outputPlotterOnly) {
Serial.println ();
}
кайтуу;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char пакети [16];
intindex = 0;
bool isContinueSegment = false; // continueSegment (the 3rd) 1 = more, 0 = last
while (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 = чын;
// баалуулуктарды MQTTге жөнөтүү
тыныгуу;
}
}
индекс ++;
}
if (! isContinueSegment) {
эгер (! _outputPlotterOnly) {
Serial.println (пакет);
}
strcpy (_property [_packetSegment - 1], пакет); // аталышы/мааниси менен жергиликтүү var орнотуу
} башка {
эгер (_outputPlotterOnly && _confirmedMetadata) {
эгер (_i2cNodeProcessed) {
Serial.println (_property [1]);
} башка {
Serial.print (_property [1]);
Serial.print ("");
}
}
}
}

GitHub тарабынан ❤ уюштурулган rawuno_i2c_generic_sensor_test_w_plotter_v2.ino көрүү

5 -кадам: Кийинки кадамдар

Программалык камсыздоонун схемасы жана I2C катмары ар кандай сенсорлорго байланыштуу. Баштоо үчүн эң башкысы - кожоюн менен кулдун ортосундагы пакеттик келишим.

Мен бул алкакты колдонгон сенсорлордун (3D басылган) пакеттелген тармагын пландаштырдым/баштадым жана анын бөлүктөрү жарыяланганда аны менен байланыштырам.

Бул блок MQ2 ASSIMILATE SENSOR тарабынан колдонулат.

Сунушталууда: