Obsah:
- Krok 1: Materiál a nástroje
- Krok 2: Pripravte si ATTINY85
- Krok 3: Zostavte obvod
- Krok 4: Testovanie
- Krok 5: Ďalšie kroky
Video: IOT123 - I2C MQ2 BRICK: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
IOT123 BRICKS sú DIY modulárne jednotky, ktoré je možné kombinovať s inými IOT123 BRICKS a pridať tak funkčnosť do uzla alebo nositeľné zariadenie. Sú založené na palcových štvorcových, obojstranných protoboardoch so vzájomne prepojenými priechodnými otvormi.
Očakáva sa, že niekoľko týchto BRICKS bude na viacerých uzloch (hlavné MCU - ESP8266 alebo ATTINY84) na webe. MCU nepotrebuje žiadne predchádzajúce znalosti o účele senzorov alebo softvérových potrebách. Skenuje pre uzly I2C a potom od každého podriadeného zariadenia požaduje výpis vlastností (údaje senzora). Tieto BRICKS napájajú 5,0 V, 3,3 V a ďalšiu linku AUX, ktorú je možné prispôsobiť.
Tento I2C MQ2 BRICK má 3 vlastnosti:
LPG (diely na milión), CO (PPM), DYM (PPM)
Tento senzor poskytol zaujímavý scenár: Na zahriatie potrebuje najmenej 2 minúty (až 5 minút) a potom ho musí pred použitím 20 sekúnd kalibrovať. Pretože sa hostiteľský MCU zameriava iba na získavanie párov názov/hodnota (a správy o pokračovaní), zaviedli sme vlastnosť „PRIPRAVIŤ“. Keďže jeho správa o pokračovaní je „1“(ešte len príde), hostiteľský MCU bude pokračovať v hlasovaní o BRICK, kým nebude pripravený. Tiež sa odporúča "zapáliť" MQ2 pred použitím, tj. Nechať zapojený do vášho 5V obvodu 24 hodín.
Senzorové tehly typu Keyes budú najskôr abstrahované, pretože obsahujú vitamíny (potrebné ďalšie komponenty) a sú relatívne lacné (kúpil som 37 za 10AUD). K I2C BRICKS budú predstavené ďalšie dosky/obvody.
Priechodné otvory susediace s ATTINY85 zostali nevyužité, aby sa umožnil programátor pogo pinov, keď je DIP8 spájkovaný s PCB.
Vyvíja sa ďalšia abstrakcia, balenie BRICKS do malých valcov, ktoré sa zapoja do rozbočovača D1M WIFI BLOCK, čerpanie hodnôt na server MQTT.
Krok 1: Materiál a nástroje
K dispozícii je úplný zoznam kusovníkov a zdrojov.
- Tehla senzora MQ2 (1)
- ATTINY85 20PU (1)
- 1 "obojstranný protoboard (1)
- Mužská hlavička 90 ° (3P, 3P)
- Mužská hlavička (2P, 2P)
- Skokanský mostík (1)
- Pripojovací drôt (~ 7)
- Spájka a železo (1)
Krok 2: Pripravte si ATTINY85
Je potrebný AttinyCore od správcu dosiek. Napaľujte bootloader „EEPROM zachovaný“, „8 mHZ interný“(všetky konfigurácie sú uvedené vyššie).
Použite priložený zdroj; skompilovať a naprogramovať na ATtiny85.
GIST je tu:
gist.github.com/IOT-123/4c501046d365d01a60…
Podrobnejšie informácie nájdete v týchto pokynoch:
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…
Pred pokračovaním je najlepšie otestovať ho na breadboarde.
Ak máte existujúce ASIMILAČNÉ SENZORY, uistite sa, že adresa slave je v kombinácii hostiteľa SENSOR/MCU odlišná, t. J. Všetky snímače teploty môžu mať rovnakú adresu, pokiaľ máte na MCU/uzle iba jeden snímač teploty.
Krok 3: Zostavte obvod
- Na prednú stranu vložte súčiastky ATTINY85 (1), 3P 90deg zástrčky (2) (3), 2P zástrčky (4) (5) a spájku na zadnej strane.
- Na zadnej strane nakreslite oranžový vodič z ORANGE1 na ORANGE2 a spájkujte.
- Na zadnej strane nakreslite modrý vodič z BLUE1 na BLUE2 a spájkujte.
- Na zadnej strane vyznačte zelený vodič od ZELENÉ1 do ZELENÉ2 a spájkujte.
- Na zadnej strane vystopujte holý drôt od SILVER1 do SILVER2 a spájkujte.
- Na zadnej strane nakreslite holý drôt od SILVER3 do SILVER4 a spájkujte.
- Na zadnej strane nakreslite čierny vodič z BLACK1 na BLACK2 a spájkujte.
- Na zadnej strane nakreslite čierny vodič z BLACK3 na BLACK4 a spájkujte.
- Na zadnej strane vyznačte červený vodič od RED1 do RED2 a spájkujte.
- Na zadnej strane vyznačte červený vodič z RED3 na RED4 a spájkujte.
- Na zadnej strane nakreslite žltý vodič od ŽLTÉHO1 po ŽLUTÉ2 a spájkujte.
Senzor je teraz možné pripojiť priamo cez jeho kolíky k doske plošných spojov alebo pomocou vodičov k bodom zobrazeným v kolíkovej zmluve.
Krok 4: Testovanie
Očakáva sa, že niekoľko týchto BRICKS bude na viacerých uzloch (MCU - ESP8266 alebo ATTINY84) v prostredí. Toto je jednotkový test: kontroluje požiadavky/reakcie UNO, kým nie sú uložené všetky údaje, a potom ignoruje slave I2C.
- Nahrajte kód UNO do testovacieho postroja UNO. Zaistite, aby sa adresa ADDRESS_SLAVE zhodovala s adresou BRICK I2C.
- Pripojte 5,0 V na UNO k VCC na BRICK.
- Zaistite, aby bola prepojka pre tento kolík zapnutá.
- Pripojte GND na UNO k GND na BRICK.
- Pripojte A5 na UNO k SCL na BRICK.
- Pripojte A4 na UNO k SDA na BRICK.
- Pripojte výsuvný odpor 4K7 z SDA do VCC.
- Pripojte výsuvný odpor 4K7 z SCL k VCC.
- Pripojte svoj UNO k vývojovému počítaču pomocou USB.
- Otvorte konzolu Arduino. Vyberte 9600 baudov (reštartujte UNO a v prípade potreby znova otvorte konzolu).
- Názvy vlastností a hodnoty by sa mali na konzolu vytlačiť raz, potom sa zopakuje slovo spánok.
Ak vidíte „nastavenie“a potom sa opakujú tri riadky odpadu, môžete mať riadky SDA a SCL zozadu dopredu.
Logovanie I2C Master z I2C slave s podporou plotru/metadát
#zahrnúť |
#defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _confirmedMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"meno", "hodnota"}; |
voidsetup () { |
Wire.begin (); // pripojenie k zbernici i2c (adresa voliteľná pre master) |
Serial.begin (9600); // spustenie sériového výstupu |
oneskorenie (1000); |
if (! _outputPlotterOnly) { |
Serial.println ("nastavenie"); |
Serial.println (); |
} |
} |
voidloop () { |
if (_i2cNodeProcessed) { |
if (! _confirmedMetadata) {// dajte otrokovi vedieť, aby začal odosielať údaje senzorov |
oneskorenie (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
oneskorenie (100); |
_confirmedMetadata = true; |
} |
_i2cNodeProcessed = false; |
if (! _outputPlotterOnly) { |
Serial.println (); |
} |
návrat; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
char paket [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (3.) 1 = viac, 0 = posledný |
while (Wire.available ()) {// slave môže odoslať menej, ako sa požaduje |
char c = Wire.read (); |
paket [index] = int (c)> -1? c: ''; // nahraďte neplatné znaky medzerami |
if (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = true; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
if (int (c) == 48 || int (c) == 86) {// 0 o poslednej vlastnosti |
_i2cNodeProcessed = true; |
// odoslanie hodnôt na MQTT |
prestávka; |
} |
} |
index ++; |
} |
if (! isContinueSegment) { |
if (! _outputPlotterOnly) { |
Serial.println (paket); |
} |
strcpy (_property [_packetSegment - 1], paket); // nastavenie lokálneho var s názvom/hodnotou |
} else { |
if (_outputPlotterOnly && _confirmedMetadata) { |
if (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
} else { |
Serial.print (_property [1]); |
Serial.print (""); |
} |
} |
} |
} |
zobraziť rawuno_i2c_generic_sensor_test_w_plotter_v2.ino hostené s ❤ od GitHub
Krok 5: Ďalšie kroky
Základné rozloženie obvodu a vrstva I2C softvéru je spojená s mnohými rôznymi senzormi. Najdôležitejšou vecou na začiatku je paketová zmluva medzi pánom a otrokom.
Navrhol/spustil som (3D tlačenú) balenú sieť senzorov, ktoré používajú tento rámec, a prepojí sa s ním pri publikovaní častí.
Tento BLOK používa asimilovaný snímač MQ2.
Odporúča:
IOT123 - D1M BLOCK - zostava 2xAMUX: 7 krokov (s obrázkami)
IOT123 - D1M BLOCK - 2xAMUX zostava: D1M BLOCKS dodáva hmatové puzdrá, štítky, vodítka polarity a vylomeniny pre obľúbené Wemos D1 Mini SOC/štíty/klony. Jedným z problémov čipu ESP8266 je, že má k dispozícii iba jeden analógový IO pin. Tento návod ukazuje, ako zostaviť 2xA
IOT123 - D1M BLOCK - RFTXRX Zostava: 8 krokov
IOT123 - D1M BLOCK - RFTXRX Zostava: D1M BLOCKS dodáva hmatové puzdrá, štítky, vodidlá polarity a vylomeniny pre obľúbené Wemos D1 Mini SOC/štíty/klony. RF vysielače/prijímače umožňujú ESP8266 prístup k existujúcej domácej/priemyselnej automatizácii. Toto puzdro poskytuje výpadky pre 433/
IOT123 - ASIMIMÁLNY SENZOR: MQ2: 4 kroky
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS sú snímače prostredia, ktoré majú pridanú vrstvu abstrakcie hardvéru a softvéru, čo umožňuje pridanie úplne nových typov do rozbočovača ASSIMILATE SENSOR HUB a čítanie je možné čerpať na server MQTT bez pridania kodónu
IOT123 - LIR2032 BITTERY BRICK: 4 kroky
IOT123 - LIR2032 BATTERY BRICK: IOT123 BRICKS sú DIY modulárne jednotky, ktoré je možné kombinovať s inými IOT123 BRICKS, aby pridali funkčnosť uzlu alebo boli nositeľné. Vychádzajú z palcových štvorcových, obojstranných protoboardov, ktoré sú navzájom prepojené priechodnými otvormi. Napriek tomu, že inštrukcie
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 kroky
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: AKTUALIZÁCIA: Toto nastavenie je do značnej miery akademické alebo je základom testovania softvéru/napájania. Aj keď je PB5 deaktivovaný ako RESET, nečíta hodnoty presne pomocou analogRead: hlavného prípadu čítania senzorov. Pozrie sa na nastavenie ATTINY84