Innholdsfortegnelse:
- Trinn 1: Materialer og verktøy
- Trinn 2: Forbered ATTINY85
- Trinn 3: Sett sammen kretsen
- Trinn 4: Testing
- Trinn 5: Neste trinn
Video: IOT123 - I2C KY019 BRICK: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
IOT123 BRICKS er DIY modulære enheter som kan moses sammen med andre IOT123 BRICKS, for å legge funksjonalitet til en node eller bærbar. De er basert på tommers firkantede, tosidige protoboard med sammenkoblede gjennomgående hull.
En rekke av disse BRICKS forventes å være på flere noder (Master MCUer - ESP8266 eller ATTINY84) på et nettsted. MCU trenger ingen forkunnskaper om sensorens formål eller programvarebehov. Den søker etter I2C -noder og ber deretter om en eiendomsdump (sensordata) fra hver slave. Disse BRICKene leverer 5.0V, 3.3V og en annen AUX -linje som kan tilpasses.
Denne I2C KY019 BRICK er den første av AKTØRENE, og har en lese/skrive -egenskap:
Bryter (true/false)
Sensorbrikkene av Keyes -typen blir først abstrahert ettersom de kommer med vitaminer (ekstra komponenter nødvendig) inkludert og er relativt tøffe (jeg kjøpte 37 for 10AUD). Andre tavler/kretser vil bli introdusert for I2C BRICKS.
Gjennomføringshullene ved siden av ATTINY85 har blitt ubrukt, for å muliggjøre en pogo pin programmerer mens DIP8 er loddet til PCB. En ytterligere abstraksjon, pakking av BRICKS i små sylindere som kobles til en D1M WIFI BLOCK -hub, som pumper verdiene til en MQTT -server, utvikles.
Trinn 1: Materialer og verktøy
Det er en fullstendig oversikt over materiale og innkjøpsliste.
- KY-019 Relé (1)
- ATTINY85 20PU (1)
- 1 "Dobbeltsidig protoboard (1)
- Hannoverskrift 90º (3P, 3P)
- Tilkoblingskabel (~ 7)
- Lodde og jern (1)
Trinn 2: Forbered ATTINY85
MERK: Hvis du har tenkt å ha Crouton -integrasjon, kan du bruke biblioteket herfra og bruke eksemplet installert "attiny_ky019".
AttinyCore fra Boards Manager er nødvendig. Brenn oppstartslaster "EEPROM beholdt", "8mHZ intern" (all konfigurasjon vist ovenfor).
Kodelageret finner du her.
En ZIP av biblioteket finner du her.
Instruksjoner for "Import av et ZIP -bibliotek" her.
Når biblioteket er installert, kan du åpne eksempelet "attiny_ky019".
For å laste opp fastvaren til ATTINY85, kan du finne flere detaljer i disse instruksjonene:
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…
Best å teste via brødbrett før du fortsetter.
Hvis du har eksisterende ASSIMILATE SENSORS, må du kontrollere at slaveadressen er forskjellig på en SENSOR/MCU -vertskombinasjon, dvs. at alle reléaktørene kan ha samme adresse så lenge du bare har en reléaktør på en MCU/node.
Trinn 3: Sett sammen kretsen
- Sett på forsiden komponentene ATTINY85 (1), 3P 90deg hannhoder (2) (3), og lodd av på baksiden.
- På baksiden, spor en gul ledning fra GUL1 til GUL 2 og loddetinn.
- På baksiden, spor en blå ledning fra BLÅ1 til BLÅ2 og loddetinn.
- På baksiden, spor en grønn ledning fra GREEN1 til GREEN2 og loddetinn.
- På baksiden, spor en svart ledning fra BLACK1 til BLACK2 og loddetinn.
- På baksiden, spor en svart ledning fra BLACK3 til BLACK4 og loddetinn.
- På baksiden, spor en rød ledning fra RØD1 til RØD2 og loddetinn.
- På baksiden, spor en rød ledning fra RED3 til RED4 og loddetinn.
Reléet kan nå kobles direkte via tappene til kretskortet eller via ledninger, til punktene vist i stiftkontrakten.
Trinn 4: Testing
En rekke av disse BRICKS forventes å være på flere noder (MCUer - ESP8266 eller ATTINY84) i et miljø. Dette er en enhetstest: sender I2C -kommandoer fra UNO til ATTINY som åpner eller lukker reléet.
Vi har tidligere bygget et I2C SHIELD for Arduino.
Hvis du vil kaste den i stedet:
- Koble 5.0V på UNO til en VCC på BRICK.
- Koble GND på UNO til GND på BRICK.
- Koble A5 på UNO til SCL på BRICK.
- Koble A4 på UNO til SDA på BRICK.
- Koble en opptrekksmotstand 4K7 fra SDA til VCC.
- Koble en opptrekkmotstand 4K7 fra SCL til VCC.
Kjører testen
- Koble UNO til Dev PC med USB.
- Last opp koden til UNO.
- Åpne Arduino -konsollen. Velg 9600 baud (start UNO på nytt og åpne konsollen hvis du må).
- Adressen til slaven skrives ut til konsollen.
- Når, skriv inn sendingsboksen 2 1 (altså 12 2 1), og reléet slås på.
- Når, skriv inn sendeboksen 2 0 (altså 12 2 0), og reléet slås av.
I2C BRICK adhoc -kommandoer for slaver fra UNO master
#inkludere |
const byte _num_chars = 32; |
char _received_chars [_num_chars]; // en matrise for å lagre mottatte data |
boolsk _has_new_data = false; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR"); |
Serial.println ("sikre ny linje valgt i konsollvindu"); |
Serial.println (); |
Serial.println ("ADRESSE 1 BEKREFT METADATA -MOTTAK IKKE (FOR M2M)"); |
Serial.println ("ADDRESS 2 ACTOR COMMAND"); |
Serial.println (); |
Serial.println ("ADRESSE ON 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 feil = Wire.endTransmission (); |
hvis (feil == 0) |
{ |
Serial.println (adresse); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
statisk byte ndx = 0; |
char end_marker = '\ n'; |
røye 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; |
} |
} |
annet { |
_received_chars [ndx] = '\ 0'; // avslutt 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 = received_string.indexOf (''); |
String address = received_string.substring (0, idx1); |
int address_int = address.toInt (); |
hvis (address_int <8 || address_int> 127) { |
Serial.println ("Ugyldig adresseinngang:"); |
Serial.println (adresse); |
komme tilbake; |
} |
int idx2 = received_string.indexOf ('', idx1+1); |
Strengkode; |
hvis (idx2 == -1) { |
code = received_string.substring (idx1+1); |
}ellers{ |
code = received_string.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
hvis (code_int <0 || code_int> 5) { |
Serial.println ("UGyldig KODE -INNGANG:"); |
Serial.println (kode); |
komme tilbake; |
} |
bool has_parameter = idx2> -1; |
String parameter; |
hvis (har_parameter) { |
parameter = received_string.substring (idx2 + 1, idx2 + 17); // 16 tegn maks |
hvis (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. LENGDE 1"); |
_has_new_data = false; |
komme tilbake; |
} |
}ellers{ |
hvis (code_int> 1) { |
Serial.println ("PARAMETER KREVES!"); |
_has_new_data = false; |
komme tilbake; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (mottatt_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 ("SENDT VIA I2C!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = false; |
} |
} |
se rawuno_i2c_command_input.ino hostet av ❤ av GitHub
Trinn 5: Neste trinn
Oppfølgingen ASSIMILATE ACTOR: KY019 som bruker denne mursteinen har automatisk konfigurasjon for Crouton via metadataene som allerede er installert i ATTINY85 her. JSON -pakken som sendes til Crouton sendes via den siste fastvaren for ICOS10. Du kan gjøre et Proof-of-concept på en vanlig ESP8266, hvis bygget er for mye for nå.
UNO -skissen som ble brukt i testing har en funksjon for å lagre en ny slave -adresse til EEPROM på ATTINY85, hvis du har et sammenstøt på mål I2C -bussen.
Noen skjemaer er lagt til, men det er forskjellige måter å koble nedstrøms krets avhengig av hva du vil oppnå, så jeg lar det være for deg:)
Anbefalt:
Klikk på Brick Switch for Makey Makey: 4 trinn (med bilder)
Klikk på Brick Switch for Makey Makey: Denne 3D -trykte bryteren lar brukeren gjøre en Makey Makey til et " finger -lysbilde " for et " klikk " i spill eller kan være høyre/venstre pil for å bla gjennom presentasjoner. Tillegg av høyre og venstre terminalfester for
Arduino Brick Color Sorter Project: 5 trinn
Arduino Brick Color Sorter Project: I denne Arduino -opplæringen vil vi lære å oppdage farger på min leketøystein ved å bruke Arduino og TCS3200 fargesensor. Du kan lese den skrevne opplæringen nedenfor for flere detaljer.Materialer: Arduino Leonardo x 1TCS3200 x 1Masse papp180 Servo
IOT123 - MILJØAKTOR: KY019: 4 trinn
IOT123 - ASSIMILATE ACTOR: KY019: Det er med 5V TIL -kontrollsignal som kan kontrollere DC / AC -signalet. Denne konstruksjonen er basert på I2C KY019 BRICK. Hvis du trenger 2 kanaler, anbefaler jeg å bytte ut denne skuespilleren med 2CH RELAY BRICK. ASSIMILATE ACTORS/SENSORS er miljøaktører/sensorer
IOT123 - 3.3V POWER BRICK: 4 trinn
IOT123 - 3.3V POWER BRICK: IOT123 BRICKS er DIY modulære enheter som kan moses sammen med andre IOT123 BRICKS, for å legge funksjonalitet til en node eller bærbar. De er basert på tommers firkantede, tosidige protoboard med sammenkoblede gjennom hull. Selv om instruksjonene
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 trinn
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Dette oppsettet er stort sett akademisk eller en base for testing av programvare/strømforsyning. Selv når PB5 er deaktivert som RESET, leser den ikke verdier nøyaktig ved bruk av analogRead: det viktigste bruksområdet for sensoravlesninger. Skal se nærmere på ATTINY84 -oppsettet