Съдържание:
- Стъпка 1: Материали и инструменти
- Стъпка 2: Подгответе ATTINY85
- Стъпка 3: Сглобете веригата
- Стъпка 4: Тестване
- Стъпка 5: Следващи стъпки
Видео: IOT123 - I2C MQ2 ЦИПЛА: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Тухлите 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: Материали и инструменти
Има пълен списък на материали и източници.
- Сензорна тухла MQ2 (1)
- ATTINY85 20PU (1)
- 1 "Двустранна протоборд (1)
- Заглавие за мъже 90º (3P, 3P)
- Мъжко заглавие (2P, 2P)
- Джъмпер шунт (1)
- Свързващ проводник (~ 7)
- Припой и желязо (1)
Стъпка 2: Подгответе 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: Сглобете веригата
- Отпред поставете компонентите ATTINY85 (1), 3P 90deg мъжки заглавки (2) (3), 2P мъжки заглавки (4) (5) и спойнете отзад.
- Отзад проследете оранжев проводник от ORANGE1 до ORANGE2 и запойте.
- Отзад проследете син проводник от СИН1 до СИН2 и запойте.
- Отзад проследете зелен проводник от ЗЕЛЕН1 до ЗЕЛЕН2 и запойте.
- Отзад проследете гола жица от СРЕБЪР1 до СРЕБЪР2 и запойте.
- Отзад проследете гола жица от SILVER3 до SILVER4 и запойте.
- Отзад проследете черен проводник от BLACK1 до BLACK2 и запойте.
- Отзад проследете черен проводник от BLACK3 до BLACK4 и запойте.
- Отзад проследете червен проводник от RED1 до RED2 и запойте.
- Отзад проследете червен проводник от RED3 до RED4 и запойте.
- Отзад проследете жълт проводник от ЖЪЛТО1 до ЖЪЛТО2 и запойте.
Сензорът вече може да бъде свързан директно чрез неговите щифтове към печатната платка или чрез проводници, към точките, показани в договора на щифта.
Стъпка 4: Тестване
Очаква се редица от тези ТУРКИ да бъдат на множество възли (MCUs - ESP8266 или ATTINY84) в среда. Това е единичен тест: проверява заявките/отговорите на UNO, докато всички данни бъдат изхвърлени, след което пренебрегва I2C подчинения.
- Качете UNO кода във вашия UNO тест. Уверете се, че ADDRESS_SLAVE съвпада с I2C адреса на ТУРКАТА.
- Свържете 5.0V на UNO към VCC на BRICK.
- Уверете се, че джъмперът за този щифт е включен.
- Свържете GND на UNO към GND на BRICK.
- Свържете A5 на UNO към SCL на BRICK.
- Свържете A4 на UNO към SDA на BRICK.
- Свържете издърпващ резистор 4K7 от SDA към VCC.
- Свържете издърпващ резистор 4K7 от SCL към VCC.
- Свържете вашия UNO към вашия Dev компютър с USB.
- Отворете конзолата Arduino, Изберете 9600 бода (рестартирайте UNO и отново отворете конзолата, ако трябва).
- Имената и стойностите на свойствата трябва да бъдат отпечатани в конзолата веднъж, след което думата 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.
Препоръчано:
IOT123 - D1M БЛОК - 2xAMUX Монтаж: 7 стъпки (със снимки)
IOT123 - D1M БЛОК - 2xAMUX Монтаж: D1M BLOCKS добавят тактилни калъфи, етикети, водачи за полярност и пробиви за популярните Wemos D1 Mini SOC/щитове/клонинги. Един от проблемите с чипа ESP8266 е, че има само един аналогов IO пин. Тази инструкция показва как да сглобите 2xA
IOT123 - D1M БЛОК - RFTXRX Монтаж: 8 стъпки
IOT123 - D1M БЛОК - RFTXRX Монтаж: D1M BLOCKS добавят тактилни калъфи, етикети, водачи за полярност и пробиви за популярните Wemos D1 Mini SOC/щитове/клонинги. RF предаватели/приемници позволяват на ESP8266 достъп до съществуваща домашна/индустриална автоматизация. Този корпус осигурява пробиви за 433
IOT123 - D1M БЛОК - GY521 Монтаж: 8 стъпки
IOT123 - D1M BLOCK - GY521 Монтаж: D1M BLOCKS добавят тактилни калъфи, етикети, водачи за полярност и пробиви за популярните Wemos D1 Mini SOC/щитове/клонинги. Този D1M БЛОК дава лесно свързване между Wemos D1 Mini и модула GY-521 (щифтовете за адрес и прекъсване могат да бъдат закачени
IOT123 - D1M БЛОК - ADXL345 Монтаж: 8 стъпки
IOT123 - D1M BLOCK - ADXL345 Монтаж: D1M BLOCKS добавят тактилни калъфи, етикети, водачи за полярност и пробиви за популярните Wemos D1 Mini SOC/щитове/клонинги. Този D1M БЛОК дава просто свързване между Wemos D1 Mini и модула за акселерометър ADXL345. Моята първоначална мотивация за развитие
IOT123 - СЕНЗОР ЗА АСИМИЛАЦИЯ: MQ2: 4 стъпки
IOT123 - АСИМИЛИРАЩ СЕНЗОР: MQ2: АСИМИЛИРАЩИТЕ СЕНЗОРИ са сензори за среда, които имат добавен хардуерен и софтуерен абстракционен слой, което прави възможно напълно нови типове да се добавят към ASSIMILATE SENSOR HUB и показанията да се изпомпват към MQTT сървър без добавен кодин