Innehållsförteckning:
- Steg 1: Material och verktyg
- Steg 2: Förbered ATTINY85
- Steg 3: Montera kretsen
- Steg 4: Testning
- Steg 5: Nästa steg
Video: IOT123 - I2C KY019 BRICK: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
IOT123 BRICKS är DIY modulära enheter som kan mosas ihop med andra IOT123 BRICKS, för att lägga till funktionalitet till en nod eller bärbar. De är baserade på tums fyrkantiga, dubbelsidiga protoboards med sammankopplade genomgående hål.
Ett antal av dessa BRICKS förväntas finnas på flera noder (Master MCU: er - ESP8266 eller ATTINY84) på en webbplats. MCU behöver ingen förkunskap om sensorernas syfte eller programvarubehov. Den söker efter I2C -noder och begär sedan en egendomsdump (sensordata) från varje slav. Dessa BRICK levererar 5.0V, 3.3V och en annan AUX -linje som kan anpassas.
Denna I2C KY019 BRICK är den första av AKTÖRERNA och har en läs-/skrivegenskap:
Switch (true/false)
Sensorstenarna av Keyes -typen tas ut först eftersom de kommer med vitaminer (extra komponenter behövs) och är relativt billiga (jag köpte 37 för 10AUD). Andra kort/kretsar kommer att introduceras för I2C BRICKS.
De genomgående hålen intill ATTINY85 har lämnats oanvända för att möjliggöra en pogo-stiftprogrammerare medan DIP8 löds till kretskortet. En ytterligare abstraktion, förpackning av BRICKS i små cylindrar som ansluts till ett D1M WIFI BLOCK -nav, som pumpar värdena till en MQTT -server, utvecklas.
Steg 1: Material och verktyg
Det finns en fullständig lista över material och inköpslista.
- KY-019 Relä (1)
- ATTINY85 20PU (1)
- 1 "dubbelsidig protoboard (1)
- Manlig header 90º (3P, 3P)
- Anslutningstråd (~ 7)
- Löd och järn (1)
Steg 2: Förbered ATTINY85
OBS: Om du tänker ha Crouton -integration, använd biblioteket härifrån och använd exemplet installerat "attiny_ky019".
AttinyCore från styrelsechefen behövs. Bränn bootloader "EEPROM Behållen", "8mHZ Internal" (all konfiguration visas ovan).
Kodförvaret hittar du här.
En ZIP av biblioteket hittar du här.
Instruktioner för "Importera ett ZIP -bibliotek" här.
När biblioteket är installerat kan du öppna exemplet "attiny_ky019".
För att ladda upp firmware till ATTINY85 kan du hitta mer information i dessa 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…
Bäst att testa via brödbräda innan du fortsätter.
Om du har befintliga ASSIMILATE SENSORS, se till att slavadressen är annorlunda på en SENSOR/MCU -värdkombination, dvs alla reläaktörer kan ha samma adress så länge du bara har en reläaktör på en MCU/nod.
Steg 3: Montera kretsen
- På framsidan sätter du in komponenterna ATTINY85 (1), 3P 90deg hanrubriker (2) (3) och löds av på baksidan.
- På baksidan, spåra en gul tråd från GUL1 till GUL 2 och löd.
- På baksidan, spåra en blå tråd från BLUE1 till BLUE2 och löd.
- På baksidan, spåra en grön tråd från GREEN1 till GREEN2 och löd.
- På baksidan, spåra en svart tråd från BLACK1 till BLACK2 och löd.
- På baksidan, spåra en svart tråd från BLACK3 till BLACK4 och löd.
- På baksidan, spåra en röd tråd från RED1 till RED2 och löd.
- På baksidan, spåra en röd tråd från RED3 till RED4 och löd.
Reläet kan nu anslutas direkt via sina stift till kretskortet eller via ledningar, till de punkter som visas i stiftkontraktet.
Steg 4: Testning
Ett antal av dessa BRICKS förväntas finnas på flera noder (MCU: er - ESP8266 eller ATTINY84) i en miljö. Detta är ett enhetstest: skickar I2C -kommandon från UNO till ATTINY som öppnar eller stänger reläet.
Vi har tidigare byggt ett I2C SHIELD för Arduino.
Om du vill panera det istället:
- Anslut 5.0V på UNO till en VCC på BRICK.
- Anslut GND på UNO till GND på BRICK.
- Anslut A5 på UNO till SCL på BRICK.
- Anslut A4 på UNO till SDA på BRICK.
- Anslut ett upptagningsmotstånd 4K7 från SDA till VCC.
- Anslut ett 4K7 uppdragningsmotstånd från SCL till VCC.
Kör testet
- Anslut din UNO till din Dev PC med USB.
- Ladda upp koden till UNO.
- Öppna Arduino -konsolen. Välj 9600 baud (starta om UNO och öppna konsolen igen om du måste).
- Slavens adress skrivs ut till konsolen.
- När, skriv in i sändningsrutan 2 1 (alltså 12 2 1), och reläet slås på.
- När, skriv in i sändningsrutan 2 0 (alltså 12 2 0), och reläet stängs av.
I2C BRICK adhoc -kommandon för slavar från UNO master
#omfatta |
const byte _num_chars = 32; |
char _received_chars [_num_chars]; // en array för att lagra mottagen data |
booleska _has_new_data = false; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR"); |
Serial.println ("se till att ny rad har valts i konsolfönstret"); |
Serial.println (); |
Serial.println ("ADRESS 1 CONFIRM METADATA RECEIPT N/A (FOR M2M)"); |
Serial.println ("ADRESS 2 ACTOR COMMAND"); |
Serial.println (); |
Serial.println ("ADRESSES ON BUS:"); |
scan_i2c_addresses (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
för (byte -adress = 8; adress <127; adress ++) |
{ |
Wire.beginTransmission (adress); |
const byte error = Wire.endTransmission (); |
om (fel == 0) |
{ |
Serial.println (adress); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
statisk byte ndx = 0; |
char end_marker = '\ n'; |
röding; |
medan (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
if (rc! = end_marker) { |
_received_chars [ndx] = rc; |
ndx ++; |
if (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
annat { |
_received_chars [ndx] = '\ 0'; // avsluta strängen |
ndx = 0; |
_has_new_data = true; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String received_string = String (_received_chars); |
om (_has_new_data == true) { |
int idx1 = received_string.indexOf (''); |
String address = received_string.substring (0, idx1); |
int address_int = address.toInt (); |
if (address_int <8 || address_int> 127) { |
Serial.println ("OGILTIG ADRESSINGÅNG:"); |
Serial.println (adress); |
lämna tillbaka; |
} |
int idx2 = received_string.indexOf ('', idx1+1); |
Strängkod; |
om (idx2 == -1) { |
kod = mottagen_sträng.substräng (idx1+1); |
}annan{ |
kod = mottagen_sträng.substräng (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
if (code_int <0 || code_int> 5) { |
Serial.println ("INGÅNG KODINGÅNG:"); |
Serial.println (kod); |
lämna tillbaka; |
} |
bool has_parameter = idx2> -1; |
Strängparameter; |
if (has_parameter) { |
parameter = received_string.substring (idx2 + 1, idx2 + 17); // 16 tecken max |
if (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. LÄNGD 1"); |
_has_new_data = false; |
lämna tillbaka; |
} |
}annan{ |
om (code_int> 1) { |
Serial.println ("PARAMETER KRÄVS!"); |
_has_new_data = false; |
lämna tillbaka; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (mottagen_sträng); |
Serial.print ("address ="); |
Serial.println (adress); |
Serial.print ("kod ="); |
Serial.println (kod); |
Serial.print ("parameter ="); |
Serial.println (parameter); |
// SKICKA VIA I2C |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
if (has_parameter) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("SKICKAD VIA I2C!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = false; |
} |
} |
visa rawuno_i2c_command_input.ino värd med ❤ av GitHub
Steg 5: Nästa steg
Uppföljningen ASSIMILATE ACTOR: KY019 som använder denna tegel har automatisk konfiguration för Crouton via metadata som redan är installerad i ATTINY85 här. JSON -paketet som skickas till Crouton skickas via den senaste firmware för ICOS10. Du kan göra ett Proof-of-concept på en vanlig ESP8266, om bygget är för mycket för nu.
UNO -skissen som används i testning har en funktion för att spara en ny slavadress till EEPROM på ATTINY85, om du har en kollision på din mål -I2C -buss.
Några scheman har lagts till, men det finns olika sätt att koppla nedströms -kretsen beroende på vad du vill uppnå, så jag lämnar det åt dig:)
Rekommenderad:
Klicka på Brick Switch för Makey Makey: 4 steg (med bilder)
Klicka på Brick Switch för Makey Makey: Denna 3D -tryckta switch gör det möjligt för användaren att göra en Makey Makey till en " finger slide " för ett " klick " i spel eller kan vara höger/vänster pilar för att bläddra igenom presentationer. Tillägget av höger och vänster terminalfäste för
Arduino Brick Color Sorter Project: 5 steg
Arduino Brick Color Sorter Project: I denna Arduino -handledning lär vi oss hur jag upptäcker färger på min leksakssten med hjälp av Arduino och TCS3200 Color Sensor. Du kan läsa den skriftliga handledningen nedan för mer information.Material: Arduino Leonardo x 1TCS3200 x 1Många kartong180 Servo
IOT123 - ASSIMILATE ACTOR: KY019: 4 Steg
IOT123 - ASSIMILATE ACTOR: KY019: Den är med 5V TIL -styrsignal som kan styra DC / AC -signalen. Denna konstruktion är baserad på I2C KY019 BRICK. Om du behöver 2 kanaler rekommenderar jag att du byter ut den här skådespelaren mot 2CH RELAY BRICK. ASSIMILERA AKTÖRER/SENSORER är miljöaktörer/sensorer
IOT123 - 3.3V POWER BRICK: 4 steg
IOT123 - 3.3V POWER BRICK: IOT123 BRICKS är DIY modulära enheter som kan mosas ihop med andra IOT123 BRICKS, för att lägga till funktionalitet till en nod eller bärbar. De är baserade på de tums fyrkantiga, dubbelsidiga protoborden med sammankopplade genomgående hål. Trots att instruktionen
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 Steg
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Denna installation är till stor del akademisk eller en bas för testning av programvara/strömförsörjning. Även när PB5 är inaktiverad som RESET läser den inte värden exakt med analogRead: det huvudsakliga användningsfallet för sensoravläsningar. Ska titta på ATTINY84 -inställningen