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
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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 KY019 BRICK er den første af AKTØRENE og har en læse/skrive egenskab:
Skift (sand/falsk)
Keyes -type sensorsten bliver abstraheret først, da de kommer med vitaminer (ekstra komponenter kræves) inkluderet og er relativt billige (jeg købte 37 for 10AUD). Andre tavler/kredsløb vil blive introduceret til I2C BRICKS.
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.
- KY-019 Relæ (1)
- ATTINY85 20PU (1)
- 1 "Dobbeltsidet protoboard (1)
- Mandskærebord 90º (3P, 3P)
- 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_ky019".
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_ky019".
For at uploade firmwaren til ATTINY85 finder du muligvis flere detaljer i disse instruktioner:
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…
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) 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 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 skal du spore en rød ledning fra RED3 til RED4 og lodde.
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æet.
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 1 (altså 12 2 1), og relæet tændes.
- Når, indtast i afsendelsesboksen 2 0 (altså 12 2 0), og 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: KY019, 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
Arduino Brick Color Sorter Project: 5 trin
Arduino Brick Color Sorter Project: I denne Arduino Tutorial vil vi lære at opdage farver på min legetøjssten ved hjælp af Arduino og TCS3200 farvesensor. Du kan læse den skrevne tutorial herunder for flere detaljer.Materialer: Arduino Leonardo x 1TCS3200 x 1Masser af pap180 Servo
IOT123 - ASSIMILATE ACTOR: KY019: 4 trin
IOT123 - ASSIMILATE ACTOR: KY019: Det er med 5V TIL -styresignal, der kan styre DC / AC -signalet. Denne build er baseret på I2C KY019 BRICK. Hvis du har brug for 2 kanaler, anbefaler jeg, at du skifter denne skuespiller ud med 2CH RELAY BRICK. ASSIMILATE ACTORS/SENSORS er miljøaktører/senso
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