Мазмуну:
- 1 -кадам: материалдар жана шаймандар
- 2 -кадам: ATTINY85ти даярдаңыз
- 3 -кадам: Районду чогултуңуз
- 4 -кадам: Тестирлөө
- 5 -кадам: Кийинки кадамдар
Video: IOT123 - I2C MQ2 КИРПИШ: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
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 -кадам: материалдар жана шаймандар
Материалдардын жана булактардын толук тизмеси бар.
- MQ2 сенсор кыш (1)
- ATTINY85 20PU (1)
- 1 "Эки тараптуу протобер (1)
- Эркек Башы 90º (3P, 3P)
- Эркек баш (2P, 2P)
- Jumper Shunt (1)
- Байланыш зымы (~ 7)
- Лайнер жана Темир (1)
2 -кадам: 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 -кадам: Районду чогултуңуз
- Алдыңкы бөлүктө ATTINY85 (1), 3P 90deg эркек баштыктары (2) (3), 2P эркек баштар (4) (5) жана арткы жагына ширетилген компоненттерди салыңыз.
- Арткы жагында, ORANGE1ден ORANGE2ге чейин кызгылт сары түстөгү зымды издеңиз.
- Арткы жагында, BLUE1ден BLUE2ге чейин көк зымды караңыз жана solder.
- Арткы жагында GREEN1ден GREEN2ге чейинки жашыл зымды байкап көрүңүз.
- Арткы жагында, SILVER1ден SILVER2ге чейинки жылаңач зымды издеңиз.
- Арткы жагында SILVER3төн SILVER4ке чейинки жылаңач зымды издеңиз.
- Арткы жагында BLACK1ден BLACK2ге чейин кара зымды караңыз жана ширетүү.
- Арткы жагында BLACK3төн BLACK4ке чейин кара зымды караңыз жана ширетүү.
- Арткы жагында кызыл зымды RED1ден RED2ге чейин жана ширетүүнү издеңиз.
- Арткы жагында кызыл зымды RED3төн RED4кө чейин жана ширетүүнү издеңиз.
- Арткы жагында сары зымды САРЫ 1ден САРЫ2ге чейин издеп, ширетүү керек.
Эми сенсор түздөн -түз анын казыктары аркылуу ПХБга же зымдар аркылуу, пин келишиминде көрсөтүлгөн пункттарга туташтырылышы мүмкүн.
4 -кадам: Тестирлөө
Бул BRICKS бир катар чөйрөдө бир нече түйүндөрдө (MCUs - ESP8266 же ATTINY84) болушу күтүлүүдө. Бул бирдиктүү тест: бардык маалыматтар ташталганга чейин БУУнун суроо -талаптарын/жоопторун текшерет, андан кийин I2C кулун этибарга албайт.
- БУУнун кодун БУУнун сыноо жабдууларына жүктөңүз. ADDRESS_SLAVE BRICKтин I2C дарегине дал келерин текшериңиз.
- БУУдагы 5.0Вды БРИККтеги VCCге туташтырыңыз.
- Ошол пин үчүн секиргичтин күйгүзүлгөнүн текшериңиз.
- БУУдагы GNDди БРИККтеги GNDге туташтырыңыз.
- A5ти БУУда SCL менен BRICKке туташтырыңыз.
- БУУдагы А4ты БРИКК боюнча SDAга туташтырыңыз.
- SDAдан VCCге 4K7 тартма каршылыгын туташтырыңыз.
- SCLден VCCге 4K7 тартма каршылыгын туташтырыңыз.
- UNOну USB менен Dev PCке туташтырыңыз.
- Arduino консолун ачыңыз. 9600 baudду тандаңыз (БУУну кайра баштаңыз жана керек болсо консолун кайра ачыңыз).
- Мүлк аттары жана баалуулуктары консолго бир жолу басылышы керек, андан кийин уйку сөзү кайталанат.
Эгер сиз "орнотууну" көрсөңүз, анда 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 тарабынан колдонулат.
Сунушталууда:
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)
IOT123 - D1M BLOCK - 2xAMUX Ассамблеясы: 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 - СЕНСОРДУ БИЛДИРҮҮ: MQ2: 4 кадам
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS - бул кошумча аппараттык жана программалык абстракция катмарына ээ болгон чөйрө сенсорлору, бул ASSIMILATE SENSOR HUBга толугу менен жаңы типтерди кошууга мүмкүндүк берет жана көрсөткүчтөр коду жок MQTT серверине чыгарылат
IOT123 - 5PIN ATTINY85 NRF24L01 КИРПИШ: 4 кадам
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Бул орнотуу негизинен академиялык же программалык камсыздоону/электр менен камсыздоону текшерүү үчүн база болуп саналат. PB5 RESET катары өчүрүлгөндө да, ал analogRead аркылуу баалуулуктарды так окубайт: сенсор окуу үчүн негизги колдонуу. ATTINY84 орнотууларын карайбыз