Indholdsfortegnelse:
- Trin 1: Materialer og værktøjer
- Trin 2: Forbered ATTINY85
- Trin 3: Saml kredsløbet
- Trin 4: Test
- Trin 5: Næste trin
Video: IOT123 - I2C 2CH RELAY BRICK: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
IOT123 BRICKS er DIY modulære enheder, der kan moses sammen med andre IOT123 BRICKS, for at tilføje funktionalitet til en node eller bærbar. De er baseret på tommer firkantede, dobbeltsidede protoboards med indbyrdes forbundne huller.
Et antal af disse BRICKS forventes at være på flere noder (Master MCU'er - ESP8266 eller ATTINY84) på et websted. MCU'en behøver ingen forudgående viden om sensorernes formål eller softwarebehov. Den scanner efter I2C -noder og anmoder derefter om en egenskabsdump (sensordata) fra hver slave. Disse BRICK'er leverer 5.0V, 3.3V og en anden AUX -linje, der kan tilpasses.
Denne I2C 2CH RELAY BRICK udvider funktionaliteten af I2C KY019 BRICK og har to læse/skrive egenskaber:
2CH RELÆER [0] (true/false)
2CH RELÆER [1] (true/false)
De gennemgående huller ved siden af ATTINY85 er blevet efterladt ubrugte for at muliggøre en pogo pin programmerer, mens DIP8 er loddet til printet. En yderligere abstraktion, emballering af BRICKS i små cylindre, der sættes i et D1M WIFI BLOCK -hub, der pumper værdierne til en MQTT -server, udvikles.
Trin 1: Materialer og værktøjer
Der er en fuld liste over materiale og indkøbsliste.
- 2 kanal relæ (1)
- ATTINY85 20PU (1)
- 1 "Dobbeltsidet protoboard (1)
- Mandskærebord 90º (3P, 3P)
- Male Header (2P, 2P)
- Jumper Shunt (1)
- Tilslutningskablet (~ 7)
- Lodde og jern (1)
Trin 2: Forbered ATTINY85
BEMÆRK: Hvis du agter at have Crouton -integration, skal du bruge biblioteket herfra og bruge eksemplet installeret "attiny_2ch_relay".
AttinyCore fra bestyrelseschefen er påkrævet. Brænd bootloader "EEPROM beholdt", "8mHZ intern" (alle konfigurationer vist ovenfor).
Kodelageret kan findes her.
En ZIP af biblioteket findes her.
Instruktioner til "Import af et ZIP -bibliotek" her.
Når biblioteket er installeret, kan du åbne eksemplet "attiny_2ch_relay".
For at uploade firmwaren til ATTINY85 finder du muligvis flere detaljer i disse instruktioner:
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
Bedst at teste via breadboard, inden du fortsætter.
Hvis du har eksisterende ASSIMILATE SENSORS, skal du sørge for, at slaveadressen er forskellig på en SENSOR/MCU -værtskombination, dvs. at alle relæaktører kan have den samme adresse, så længe du kun har en relæaktør på en MCU/node.
Trin 3: Saml kredsløbet
- På forsiden indsættes komponenterne ATTINY85 (1), 3P 90deg hanhoveder (2) (3), 3P hanhoveder (4) (5) og loddes af på bagsiden.
- På bagsiden skal du spore en gul ledning fra GUL1 til GUL2 og lodde.
- På bagsiden kan du spore en orange ledning fra ORANGE1 til ORANGE2 og lodde.
- På bagsiden kan du spore en blå ledning fra BLUE1 til BLUE2 og lodde.
- På bagsiden kan du spore en grøn ledning fra GREEN1 til GREEN2 og lodde.
- På bagsiden kan du spore en sort ledning fra BLACK1 til BLACK2 og lodde.
- På bagsiden kan du spore en sort ledning fra BLACK3 til BLACK4 og lodde.
- På bagsiden skal du spore en rød ledning fra RØD1 til RØD2 og lodde.
- På bagsiden kan du spore en ledning fra RED3 til RED4 og lodde.
- På bagsiden skal du spore en ledning fra SILVER1 til SILVER2 og lodde.
- Tilføj en jumper på 5V eller 3V3 linjen.
Relæet kan nu forbindes direkte via sine ben til printkortet eller via ledninger til de punkter, der er vist i stiftkontrakten.
Trin 4: Test
Et antal af disse BRICKS forventes at være på flere noder (MCU'er - ESP8266 eller ATTINY84) i et miljø. Dette er en enhedstest: sender I2C -kommandoer fra UNO til ATTINY, som åbner eller lukker relæerne.
Vi har tidligere bygget et I2C SHIELD til Arduino.
Hvis du vil breadboard det i stedet:
- Tilslut 5.0V på UNO til en VCC på BRICK.
- Tilslut GND på UNO til GND på BRICK.
- Tilslut A5 på UNO til SCL på BRICK.
- Tilslut A4 på UNO til SDA på BRICK.
- Tilslut en 4K7 pull-up modstand fra SDA til VCC.
- Tilslut en 4K7 pull-up modstand fra SCL til VCC.
Kører testen
- Tilslut din UNO til din Dev PC med USB.
- Upload koden til UNO.
- Åbn Arduino -konsollen.
- Vælg 9600 baud (genstart UNO, og åbn konsollen igen, hvis du skal).
- Slavens adresse udskrives til konsollen.
-
Når, indtast i afsendelsesboksen 2 0: 1 (altså 15 2 0: 1), og CH1 -relæet tændes.
- Når, indtast i afsendelsesboksen 2 0: 0 (altså 15 2 0: 0), og CH1 -relæet slukker.
- Når, indtast i afsendelsesboksen 2 1: 1 (altså 15 2 1: 1), og CH2 -relæet tændes.
- Når, indtast i afsendelsesboksen 2 1: 0 (altså 15 2 0: 0), og CH2 -relæet slukker.
I2C BRICK adhoc -kommandoer til slaver fra UNO master
#omfatte |
const byte _num_chars = 32; |
char _received_chars [_num_chars]; // en matrix til lagring af de modtagne data |
boolsk _has_new_data = falsk; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR"); |
Serial.println ("sikre ny linje valgt i konsolvindue"); |
Serial.println (); |
Serial.println ("ADRESSE 1 BEKRÆFTELSE METADATA MODTAGELSE IKKE (FOR M2M)"); |
Serial.println ("ADDRESS 2 ACTOR COMMAND"); |
Serial.println (); |
Serial.println ("ADRESSER PÅ BUS:"); |
scan_i2c_addresses (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
for (byte adresse = 8; adresse <127; adresse ++) |
{ |
Wire.beginTransmission (adresse); |
const byte fejl = Wire.endTransmission (); |
hvis (fejl == 0) |
{ |
Serial.println (adresse); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
statisk byte ndx = 0; |
char end_marker = '\ n'; |
char rc; |
mens (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
hvis (rc! = end_marker) { |
_received_chars [ndx] = rc; |
ndx ++; |
hvis (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
andet { |
_received_chars [ndx] = '\ 0'; // afslut strengen |
ndx = 0; |
_has_new_data = true; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String received_string = String (_received_chars); |
hvis (_has_new_data == true) { |
int idx1 = modtaget_string.indexOf (''); |
Strengadresse = modtaget_streng.substreng (0, idx1); |
int address_int = address.toInt (); |
hvis (address_int <8 || address_int> 127) { |
Serial.println ("UGyldig ADRESSE -INDGANG:"); |
Serial.println (adresse); |
Vend tilbage; |
} |
int idx2 = modtaget_string.indexOf ('', idx1+1); |
String kode; |
hvis (idx2 == -1) { |
kode = modtaget_string.substring (idx1+1); |
}andet{ |
kode = modtaget_streng.substreng (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
hvis (code_int <0 || code_int> 5) { |
Serial.println ("UGyldig kodeindtastning:"); |
Serial.println (kode); |
Vend tilbage; |
} |
bool has_parameter = idx2> -1; |
String parameter; |
hvis (har_parameter) { |
parameter = modtaget_string.substring (idx2 + 1, idx2 + 17); // 16 tegn max |
hvis (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. LÆNGDE 1"); |
_has_new_data = falsk; |
Vend tilbage; |
} |
}andet{ |
hvis (code_int> 1) { |
Serial.println ("PARAMETER KRÆVES!"); |
_has_new_data = falsk; |
Vend tilbage; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (modtaget_streng); |
Serial.print ("adresse ="); |
Serial.println (adresse); |
Serial.print ("kode ="); |
Serial.println (kode); |
Serial.print ("parameter ="); |
Serial.println (parameter); |
// SEND VIA I2C |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
hvis (har_parameter) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("SENDET VIA I2C!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = falsk; |
} |
} |
se rawuno_i2c_command_input.ino hostet af ❤ af GitHub
Trin 5: Næste trin
Opfølgningen ASSIMILATE ACTOR: 2CH RELAY, der bruger denne mursten, har automatisk konfiguration til Crouton via de metadata, der allerede er installeret i ATTINY85 her. JSON -pakken sendt til Crouton sendes via den nyeste firmware til ICOS10. Du kan lave et Proof-of-concept på en almindelig ESP8266, hvis bygningen er for meget for nu.
UNO -skitsen, der blev brugt i Testing, har en funktion til at gemme en ny slave -adresse til EEPROM på ATTINY85, hvis du har et sammenstød på din mål -I2C -bus. Der er tilføjet et par skemaer, men der er forskellige måder at tilslutte kredsløbet nedstrøms afhængigt af hvad du vil opnå, så jeg overlader det til dig:)
Anbefalede:
Klik på Brick Switch til Makey Makey: 4 trin (med billeder)
Klik på Brick Switch til Makey Makey: Denne 3D -printede switch giver brugeren mulighed for at gøre en Makey Makey til et " finger slide " for et " klik " i spil eller kan være højre/venstre pile for at rulle gennem præsentationer. Tilføjelsen af højre og venstre terminalbeslag til
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
IOT123 - 3.3V POWER BRICK: 4 trin
IOT123 - 3.3V POWER BRICK: IOT123 BRICKS er DIY modulære enheder, der kan moses sammen med andre IOT123 BRICKS, for at tilføje funktionalitet til en node eller bærbar. De er baseret på tommer firkantede, dobbeltsidede protoboards med indbyrdes forbundne huller. Selvom instruktionen
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 trin
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Denne opsætning er stort set akademisk eller en base for test af software/strømforsyning. Selv når PB5 er deaktiveret som RESET, læser den ikke værdier nøjagtigt ved hjælp af analogRead: det vigtigste anvendelsesmulighed for sensoraflæsninger. Vil undersøge opsætningen af ATTINY84
Raspberry Pi DIY Relay Board: 3 trin (med billeder)
Raspberry Pi DIY Relay Board: For nogle projekter med hindbær og de mindre arduinoer skal jeg skifte nogle relæer. På grund af GPIO -udgangsniveauet (3,3V) er det svært at finde nogle relæer, der er i stand til at skifte større belastninger og kan fungere direkte med de givne 3,3 volt.Så jeg