Taula de continguts:
- Pas 1: material i eines
- Pas 2: prepareu l'ATTINY85
- Pas 3: Munteu el circuit
- Pas 4: proves
- Pas 5: passos següents
Vídeo: IOT123 - I2C MQ2 BRICK: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Els IOT123 BRICKS són unitats modulars de bricolatge que es poden combinar amb altres IOT123 BRICKS, per afegir funcionalitat a un node o usable. Es basen en protobardes de doble cara quadrades de polzades amb forats interconnectats.
Es preveu que alguns d’aquests BRICKS estiguin en diversos nodes (MCU mestres - ESP8266 o ATTINY84) en un lloc. La MCU no necessita cap coneixement previ del propòsit dels sensors ni de les necessitats del programari. Busca nodes I2C i després sol·licita un buidatge de propietats (dades del sensor) a cada esclau. Aquests BRICKs subministren 5.0V, 3.3V i una altra línia AUX que es pot personalitzar.
Aquest I2C MQ2 BRICK aboca 3 propietats:
GLP (parts per milió), CO (PPM), FUM (PPM)
Aquest sensor va proporcionar un escenari interessant: necessita com a mínim 2 minuts (fins a 5 minuts) per escalfar-se, i després cal calibrar-lo durant 20 segons abans d’utilitzar-lo. Com que la MCU amfitrió només té intesetes en obtenir parells nom / valor (i un missatge de continuació), hem introduït una propietat "PREPARAR". Com que el missatge de continuació és "1" (més per arribar), l'MCU amfitrió seguirà sondejant el BRICK fins que estigui llest. També es recomana "Cremar" el MQ2 abans d'utilitzar-lo, és a dir, deixar-lo connectat al circuit de 5V durant 24 hores.
Els maons del sensor del tipus Keyes s’abstraccionaran primer, ja que inclouen vitamines (es necessiten components addicionals) i són relativament econòmics (n’he comprat 37 per 10 AUD). Altres blocs / circuits s’introduiran als I2C BRICKS.
Els forats passants adjacents a l'ATTINY85 s'han deixat sense utilitzar, per habilitar un programador de pogo pin mentre el DIP8 està soldat al PCB.
S'està desenvolupant una altra abstracció, que empaqueta els BRICKS en petits cilindres que es connecten a un hub D1M WIFI BLOCK, que bombeja els valors a un servidor MQTT.
Pas 1: material i eines
Hi ha una llista completa de llista de subministraments i material.
- Maó sensor MQ2 (1)
- ATTINY85 20PU (1)
- 1 "protoborda de doble cara (1)
- Capçalera masculina 90º (3P, 3P)
- Capçalera masculina (2P, 2P)
- Jumper Shunt (1)
- Cable de connexió (~ 7)
- Soldadura i ferro (1)
Pas 2: prepareu l'ATTINY85
Cal AttinyCore del gestor de juntes. Grava el carregador d'arrencada "EEPROM retingut", "8mHZ Internal" (totes les configuracions es mostren més amunt).
Utilitzeu la font inclosa; compileu i programeu a l'ATtiny85.
El GIST és aquí:
gist.github.com/IOT-123/4c501046d365d01a60…
Podeu trobar més detalls en aquests instructius:
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…
El millor és provar-ho mitjançant taulers abans de continuar.
Si teniu SENSORS ASSIMILATS existents, assegureu-vos que l'adreça esclava sigui diferent en una combinació d'amfitrió SENSOR / MCU, és a dir, tots els sensors de temperatura poden tenir la mateixa adreça sempre que només tingueu un sensor de temperatura en un node / MCU.
Pas 3: Munteu el circuit
- A la part frontal, inseriu els components ATTINY85 (1), capçaleres masculines 3P 90deg (2) (3), capçaleres masculines 2P (4) (5) i soldeu-les per la part posterior.
- A la part posterior, traqueu un fil taronja de TARONJA1 a TARONJA2 i soldeu-lo.
- A la part posterior, traqueu un fil blau de BLAU 1 a BLAU 2 i soldeu-lo.
- A la part posterior, traqueu un fil verd de GREEN1 a GREEN2 i soldeu-lo.
- A la part posterior, traça un fil nu de SILVER1 a SILVER2 i solda.
- A la part posterior, traça un fil nu de SILVER3 a SILVER4 i solda.
- A la part posterior, traça un fil negre de BLACK1 a BLACK2 i solda.
- A la part posterior, traça un fil negre de BLACK3 a BLACK4 i solda.
- A la part posterior, traqueu un cable vermell de RED1 a RED2 i soldeu-lo.
- A la part posterior, traqueu un cable vermell de RED3 a RED4 i soldeu-lo.
- A la part posterior, traqueu un cable groc de GROC1 a GROC2 i soldeu-lo.
Ara el sensor es pot connectar directament a través dels seus pins a la PCB o mitjançant cables, als punts que es mostren al contracte de pins.
Pas 4: proves
S'espera que diversos d'aquests BRICKS estiguin en diversos nodes (MCU - ESP8266 o ATTINY84) en un entorn. Es tracta d’una prova unitària: comprova les sol·licituds / respostes de l’ONU fins que s’han bolcat totes les dades i després descuida l’esclau I2C.
- Pengeu el codi UNO al vostre arnès de proves UNO. Assegureu-vos que ADDRESS_SLAVE coincideixi amb l'adreça I2C de BRICK.
- Connecteu el 5.0V a UNO a un VCC a BRICK.
- Assegureu-vos que el pont del pin estigui activat.
- Connecteu el GND a UNO a GND a BRICK.
- Connecteu l'A5 a UNO a SCL a BRICK.
- Connecteu l'A4 a UNO a SDA a BRICK.
- Connecteu una resistència de captació 4K7 des de SDA a VCC.
- Connecteu una resistència de captació 4K7 de SCL a VCC.
- Connecteu la vostra UNO al vostre PC de desenvolupament amb USB.
- Obriu la consola Arduino. Trieu 9600 baud (reinicieu UNO i torneu a obrir la consola si cal).
- Els noms i els valors de les propietats s’han d’imprimir a la consola un cop es repeteixi la paraula son.
Si veieu "configuració", es repetiran 3 línies d'escombraries, és possible que tinguis les línies SDA i SCL al capdavant.
Registre mestre I2C des de l'esclau I2C amb suport de traçador / metadades
#incloure |
# defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _confirmedMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = fals; |
char _property [2] [24] = {"nom", "valor"}; |
voidsetup () { |
Wire.begin (); // unir-se al bus i2c (adreça opcional per al mestre) |
Serial.begin (9600); // iniciar sèrie per a la sortida |
retard (1000); |
if (! _outputPlotterOnly) { |
Serial.println ("configuració"); |
Serial.println (); |
} |
} |
voidloop () { |
if (_i2cNodeProcessed) { |
if (! _confirmedMetadata) {// feu saber a l'esclau que comença a enviar dades del sensor |
retard (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
retard (100); |
_confirmMetadata = true; |
} |
_i2cNodeProcessed = fals; |
if (! _outputPlotterOnly) { |
Serial.println (); |
} |
tornar; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
paquet char [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (the 3rd) 1 = more, 0 = last |
while (Wire.available ()) {// slave pot enviar menys del que es demana |
char c = Wire.read (); |
paquet [índex] = int (c)> -1? c: ''; // substitueix els caràcters no vàlids per espais |
if (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = true; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
if (int (c) == 48 || int (c) == 86) {// 0 a la darrera propietat |
_i2cNodeProcessed = cert; |
// enviar valors a MQTT |
trencar; |
} |
} |
índex ++; |
} |
if (! isContinueSegment) { |
if (! _outputPlotterOnly) { |
Serial.println (paquet); |
} |
strcpy (_property [_packetSegment - 1], paquet); // defineix la variable local amb nom / valor |
} més { |
if (_outputPlotterOnly && _confirmMetadata) { |
if (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
} més { |
Serial.print (_property [1]); |
Serial.print (""); |
} |
} |
} |
} |
veure rawuno_i2c_generic_sensor_test_w_plotter_v2.ino allotjat amb ❤ per GitHub
Pas 5: passos següents
El disseny bàsic del circuit i la capa I2C del programari es poden relacionar amb molts sensors diferents. El més important per encertar és el contracte de paquets entre amo i esclau.
He programat / iniciat una xarxa empaquetada (impresa en 3D) de sensors que utilitza aquest marc i hi vincularé a mesura que es publiquin parts.
Aquest BLOC el fa servir el SENSOR ASSIMILAT MQ2.
Recomanat:
Feu clic a Brick Switch per a Makey Makey: 4 passos (amb imatges)
Feu clic a Interruptor de maó per a Makey Makey: aquest interruptor imprès en 3D permetrà a l'usuari convertir un Makey Makey en una "diapositiva digital". per a un " clic " als jocs o poden ser fletxes dreta / esquerra per desplaçar-se per les presentacions. L'addició de muntatges terminals dret i esquerre per a
Projecte Arduino Brick Color Sorter: 5 passos
Projecte Arduino Brick Color Sorter Project: En aquest tutorial d’Arduino, aprendrem a detectar els colors del meu maó de joguina mitjançant Arduino i el sensor de color TCS3200. Podeu llegir el tutorial escrit a continuació per obtenir més detalls.Materials: Arduino Leonardo x 1TCS3200 x 1Lots of cartboard180 Servo
500 LED-Pixel RGB-Brick: 9 passos (amb imatges)
500 LED-Pixel RGB-Brick: Fa un temps vaig construir un 10x10 LED-Coffetable amb alguns d'aquests LED WS2812, però fins i tot si és possible jugar al joc de la vella escola Snake amb un telèfon intel·ligent connectat, vull alguna cosa més especial. Així que vaig decidir posar-hi uns quants leds més, ara
IOT123 - ASSIMILAR SENSOR: MQ2: 4 passos
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS són sensors d’entorn que tenen una capa d’abstracció de maquinari i programari afegida, cosa que permet afegir tipus completament nous a un HUB ASSENSOR SENSOR i les lectures es bomben a un servidor MQTT sense codin afegit
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 passos
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: ACTUALITZACIÓ: aquesta configuració és en gran mesura acadèmica o és una base per provar programari / font d'alimentació. Fins i tot quan el PB5 està desactivat com a RESET, no llegeix els valors amb precisió mitjançant analogRead: el cas d’ús principal per a la lectura del sensor. Consultarem la configuració ATTINY84