Satura rādītājs:
- 1. darbība: materiāli un instrumenti
- 2. darbība: sagatavojiet ATTINY85
- 3. solis: indikatoru salikšana
- 4. solis: galvenās ķēdes montāža
- 5. darbība: pārbaude
- 6. darbība. Nākamās darbības
Video: IOT123 - I2C HEARTBEAT BRICK: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
IOT123 BRICKS ir DIY modulāras vienības, kuras var sajaukt ar citiem IOT123 BRICKS, lai mezglam pievienotu funkcionalitāti vai valkājamu. To pamatā ir kvadrātveida kvadrātveida, divpusēji protoboards ar savstarpēji savienotiem caurumiem.
Paredzams, ka vairāki no šiem ķieģeļiem atradīsies vairākos vietnes mezglos (galvenie MCU - ESP8266 vai ATTINY84). MCU nav vajadzīgas priekšzināšanas par sensoru mērķi vai programmatūras vajadzībām. Tā skenē I2C mezglus un pēc tam pieprasa īpašuma izgāztuvi (sensora datus) no katra verga. Šie BRICK piegādā 5.0V, 3.3V un citu pielāgojamu AUX līniju.
Šis I2C HEARTBEAT BRICK norāda, vai ATTINY vergs ir dzīvs, kā arī I2C trafiks un vai tam ir viens īpašums:
STATUSS ("DZĪVS")
PB1 (balts) norāda uz ATTINY veselību.
PB3 (dzeltens) pārslēdzas ar kapteiņa I2C pieprasījumiem.
PB4 (oranžs) pārslēdzas ar I2C saņemšanu no meistara.
Caurumi, kas atrodas blakus ATTINY85, ir palikuši neizmantoti, lai iespējotu pogo tapu programmētāju, kamēr DIP8 ir pielodēts pie PCB. Tiek izstrādāta turpmāka abstrakcija - BRICKS iesaiņošana mazos cilindros, kas pievienojami D1M WIFI BLOCK centrmezglam, pārsūtot vērtības uz MQTT serveri.
1. darbība: materiāli un instrumenti
Ir pilns materiālu un avotu saraksts.
- Papīra PCB (7 x 7 caurumi)
- LED (sarkans, zaļš, zils)
- Rezistori (3 off 1K)
- ATTINY85 20PU (1)
- 1 "divpusējs protoboards (1)
- Galvene vīriešiem 90º (3P, 3P)
- Galvene vīriešiem (2P, 2P)
- Džempera šunts (1)
- Savienojuma vads (~ 7)
- Lodmetāls un dzelzs (1)
2. darbība: sagatavojiet ATTINY85
PIEZĪME. Ja plānojat integrēt Crouton, lūdzu, izmantojiet bibliotēku no šejienes un izmantojiet instalēto piemēru "attiny_heartbeat"
Ir nepieciešams AttinyCore no valdes pārvaldnieka. Ierakstiet sāknēšanas ielādētāju "EEPROM Retained", "8mHZ Internal" (visa konfigurācija parādīta iepriekš).
Kodu krātuvi var atrast šeit.
Bibliotēkas pasta adresi var atrast šeit.
Norādījumi par ZIP bibliotēkas importēšanu šeit.
Kad bibliotēka ir instalēta, varat atvērt piemēru "attiny_heartbeat".
Lai augšupielādētu programmaparatūru ATTINY85, sīkāku informāciju var atrast šajās instrukcijās:
www.instructables.com/id/Programming-the-….
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
Pirms turpināt, vislabāk ir pārbaudīt, izmantojot maizes dēli.
Ja jums jau ir ASSIMILATE SENSORS, pārliecinieties, vai SENSOR/MCU Host kombinācijā ir atšķirīga vergu adrese, piem. visiem Relay dalībniekiem var būt viena adrese, ja vien MCU/mezglā ir tikai viens Relay aktieris.
3. solis: indikatoru salikšana
Rādītāji ir pilnībā pielāgojami. Tieši notikumu signāli no galvenās ķēdes tiek uzskatīti par sirdspukstiem. Šai būvei mēs izmantosim LED indikatorus; jūsu būvē var izmantot relejus (jā, VCC ir sadalīts) vai citu vizuālu/signālu indikatoru. Rezistora vērtības būs atkarīgas no personīgās izvēles, cik gaišas tās vēlaties.
- Augšpusē ievietojiet zilu gaismas diodi RED1 (+) un BLACK1 (G) un lodējiet apakšā.
- Apakšā salieciet vadu no RED1 tā, lai tas pieskaras SILVER8 vara spilventiņam un sagrieziet to.
- Apakšā sagrieziet vadu no BLACK1 virs lodēšanas.
- Augšpusē ievietojiet zaļo gaismas diodi RED2 (+) un BLACK2 (G) un lodējiet apakšā.
- Apakšā salieciet vadu no RED2 tā, lai tas pieskartos SILVER9 vara spilventiņam un sagrieztu.
- Apakšā sagrieziet vadu no BLACK2 virs lodēšanas.
- Augšpusē ievietojiet sarkanu gaismas diodi RED3 (+) un BLACK3 (G) un lodējiet apakšā.
- Apakšā salieciet vadu no RED3 tā, lai tas pieskaras SILVER10 vara spilventiņam un sagrieziet to.
- Apakšā sagrieziet vadu no BLACK3 virs lodēšanas.
- Augšpusē ievietojiet 1K rezistoru caurumos SILVER1 un SILVER4.
- Apakšā izsekojiet, sagrieziet un lodējiet svinu no SILVER1 uz BLACK1.
- Augšpusē ievietojiet 1K rezistoru caurumos SILVER2 un SILVER4.
- Apakšā izsekojiet, sagrieziet un lodējiet svinu no SILVER2 uz BLACK2.
- Augšpusē ievietojiet 1K rezistoru caurumos SILVER3 un SILVER4.
- Apakšā izsekojiet, sagrieziet un lodējiet svinu no SILVER3 uz BLACK3.
- Apakšā pielodējiet vadus uz SILVER4 un sagrieziet apmēram 5 mm garumā.
- Apakšā lodējiet melnu vadu uz SILVER4.
- Apakšā lodējiet baltu vadu SILVER5, nodrošinot nepārtrauktību no RED1.
- Apakšā lodējiet dzelteno vadu SILVER6, nodrošinot nepārtrauktību, lai vadītu no RED2.
- Apakšā lodējiet oranžu vadu SILVER7, nodrošinot nepārtrauktību, lai vadītu no RED3.
4. solis: galvenās ķēdes montāža
Montāža:
- Priekšpusē ievietojiet detaļas ATTINY85 (1), 3P 90 grādu vāciņus (2) (3), 3P vīriešu galviņas (4) (5) un lodējiet aizmugurē.
- Aizmugurē izsekojiet dzelteno vadu no YELLOW1 līdz YELLOW2 un lodējiet.
- Aizmugurē izsekojiet oranžu vadu no ORANGE1 līdz ORANGE2 un lodējiet.
- Aizmugurē izsekojiet zilu vadu no BLUE1 līdz BLUE2 un lodējiet.
- Aizmugurē izsekojiet zaļo vadu no GREEN1 līdz GREEN2 un lodējiet.
- Aizmugurē izsekojiet baltu vadu no WHITE1 līdz WHITE2 un lodējiet.
- Aizmugurē izsekojiet melnu vadu no BLACK1 līdz BLACK2 un lodējiet.
- Aizmugurē izsekojiet melnu vadu no BLACK3 līdz BLACK4 un lodējiet.
- Aizmugurē izsekojiet sarkanu vadu no RED1 līdz RED2 un lodējiet.
- Aizmugurē izsekojiet tukšu vadu no RED3 līdz RED4 un lodējiet.
- Aizmugurē izsekojiet tukšu vadu no SILVER1 līdz SILVER2 un lodēt.
- Pievienojiet džemperi 5V vai 3V3 līnijai.
Ja izmantojat iepriekš minētos indikatorus (skatiet pinout diagrammu):
- Aizmugurē lodējiet balto vadu PB1.
- Aizmugurē lodējiet dzelteno vadu PB3.
- Aizmugurē lodējiet oranžo vadu PB4.
- Aizmugurē pielodējiet melno vadu GND.
5. darbība: pārbaude
Paredzams, ka vairāki no šiem ķieģeļiem vidē atradīsies vairākos mezglos (MCU - ESP8266 vai ATTINY84). Šis ir vienības tests: nosūta I2C komandas no UNO uz ATTINY, kas pārslēdz uztveršanas gaismas diodi. Gaismas diode ATTINY ALIVE paliek iedegta.
Mēs iepriekš esam izveidojuši I2C SHIELD Arduino.
Tā vietā, ja vēlaties to pārklāt ar maizi:
- Pievienojiet 5.0V uz UNO ar BRCK VCC.
- Savienojiet GND uz UNO ar GND uz BRICK.
- Savienojiet A5 uz UNO ar SCL uz BRICK.
- Savienojiet A4 uz UNO ar SDA uz BRICK.
- Pievienojiet 4K7 pievilkšanas rezistoru no SDA uz VCC.
- Pievienojiet 4K7 pievilkšanas rezistoru no SCL uz VCC.
Testa izpilde
- Savienojiet UNO ar savu Dev datoru, izmantojot USB.
- Augšupielādējiet kodu UNO.
- Atveriet Arduino konsoli.
- Izvēlieties 9600 baudus (restartējiet UNO un, ja nepieciešams, atveriet konsoli).
- Verga adrese tiks izdrukāta uz konsoles.
- Kad ievadiet sūtīšanas lodziņu 2 1 (tātad 16 2 1), un saņemšanas gaismas diode iedegas.
- Kad, ievadiet sūtīšanas lodziņu 2 0 (tātad 16 2 0), un saņemšanas gaismas diode nodziest.
I2C BRICK adhoc komandas vergiem no UNO master
#iekļaut |
const baits _num_chars = 32; |
char _saņēmu_čalas [_num_chars]; // masīvs saņemto datu glabāšanai |
Būla _has_new_data = nepatiess; |
voidsetup () { |
Sērijas sākums (9600); |
Sērijas.println (); |
Serial.println ("ASIMILĒT IOT AKTORU/SENSOR EEPROM EDITOR"); |
Serial.println ("nodrošināt jaunas līnijas izvēli konsoles logā"); |
Sērijas.println (); |
Serial.println ("ADRESE 1 APSTIPRINĀT METADATU SAŅEMŠANU N/A (M2M)"); |
Serial.println ("ADRESE 2 AKTORA KOMANDA"); |
Sērijas.println (); |
Serial.println ("ADRESES UZ BUS:"); |
scan_i2c_addresses (); |
Sērijas.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
par (baitu adrese = 8; adrese <127; adrese ++) |
{ |
Wire.beginTransmission (adrese); |
const baitu kļūda = Wire.endTransmission (); |
ja (kļūda == 0) |
{ |
Serial.println (adrese); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
statiskais baits ndx = 0; |
char end_marker = '\ n'; |
char rc; |
kamēr (Serial.available ()> 0 && _has_new_data == false) { |
rc = Sērijas.lasījums (); |
ja (rc! = end_marker) { |
_saņemti_ieraksti [ndx] = rc; |
ndx ++; |
ja (ndx> = _num_chars) { |
ndx = _skaits_skaits - 1; |
} |
} |
cits { |
_received_chars [ndx] = '\ 0'; // izbeigt virkni |
ndx = 0; |
_has_new_data = taisnība; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const Virkne saņemta_virkne = String (_received_chars); |
ja (_ has_new_data == true) { |
int idx1 = saņēmis_string.indexOf (''); |
Virknes adrese = saņemta_string.substring (0, idx1); |
int address_int = address.toInt (); |
ja (adrese_int <8 || adreses_int> 127) { |
Serial.println ("INVALID ADDRESS INPUT:"); |
Serial.println (adrese); |
atgriešanās; |
} |
int idx2 = saņēmis_string.indexOf ('', idx1+1); |
Virknes kods; |
ja (idx2 == -1) { |
kods = saņemta_string.substring (idx1+1); |
} vēl { |
kods = saņemta_string.substring (idx1+1, idx2+1); |
} |
int kods_int = kods.toInt (); |
ja (kods_int <0 || kods_int> 5) { |
Serial.println ("INVALID CODE INPUT:"); |
Serial.println (kods); |
atgriešanās; |
} |
bool has_parameter = idx2> -1; |
String parametrs; |
if (has_parameter) { |
parametrs = saņemta_string.substring (idx2 + 1, idx2 + 17); // maks. 16 rakstzīmes |
ja (parametrs.garums () <1) { |
Serial.println ("PARTAMETER MIN. LENGTH 1"); |
_has_new_data = nepatiess; |
atgriešanās; |
} |
} vēl { |
ja (kods_int> 1) { |
Serial.println ("OBLIGĀTS PARAMETRS!"); |
_has_new_data = nepatiess; |
atgriešanās; |
} |
} |
Sērijas.println (); |
Serial.print ("ievades orig ="); |
Sērijas.println (saņemta_virkne); |
Serial.print ("adrese ="); |
Serial.println (adrese); |
Serial.print ("kods ="); |
Serial.println (kods); |
Serial.print ("parametrs ="); |
Serial.println (parametrs); |
// SŪTĪT I2C |
Wire.beginTransmission (address_int); |
Wire.write (kods_int); |
if (has_parameter) { |
parametrs.trim (); |
strcpy (param_buf, parametrs.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Sērijas.println (); |
Serial.println ("SŪTĪTS I2C!"); |
Sērijas.println (); |
Serial.println (""); |
_has_new_data = nepatiess; |
} |
} |
apskatīt rawuno_i2c_command_input.ino, kuru mitina GitHub ar ❤
6. darbība. Nākamās darbības
Sekojošais ASIMILĀTĀS AKTORS: HEARTBEAT, kas izmanto šo ķieģeļu, ir automātiski konfigurēts Crouton, izmantojot metadatus, kas jau ir instalēti šeit ATTINY85. Uz Crouton nosūtītā JSON pakete tiek nosūtīta, izmantojot jaunāko ICOS10 programmaparatūru. Jūs varat izveidot koncepcijas pierādījumu ar parastu ESP8266, ja pagaidām būvējums ir par daudz.
Testēšanā izmantotajai UNO skicei ir funkcija saglabāt jaunu vergu adresi EEPROM uz ATTINY85, ja jūsu mērķa I2C kopne saduras.
Ieteicams:
IOT123 - D1M BLOCK - 2xAMUX montāža: 7 soļi (ar attēliem)
IOT123 - D1M BLOCK - 2xAMUX montāža: D1M BLOCKS pievieno taustāmus futrāļus, etiķetes, polaritātes vadotnes un izlaušanos populārajiem Wemos D1 Mini SOC/vairogiem/kloniem. Viena no ESP8266 mikroshēmas problēmām ir tā, ka tai ir pieejama tikai viena analogā IO tapa. Šī pamācība parāda, kā salikt 2xA
IOT123 - D1M BLOCK - RFTXRX Montāža: 8 soļi
IOT123 - D1M BLOCK - RFTXRX montāža: D1M BLOCKS pievieno taustāmus futrāļus, etiķetes, polaritātes vadotnes un izlaušanos populārajiem Wemos D1 Mini SOC/vairogiem/kloniem. RF raidītāji/uztvērēji ļauj ESP8266 piekļūt esošajai mājas/rūpniecības automatizācijai. Šis korpuss nodrošina izlaušanos 433
IOT123 - LIR2032 BATTERY BRICK: 4 soļi
IOT123 - LIR2032 BATTERY BRICK: IOT123 BRICKS ir DIY modulāras vienības, kuras var sajaukt ar citiem IOT123 BRICKS, lai mezglam pievienotu funkcionalitāti vai valkājamu. Tie ir balstīti uz collu kvadrātveida, divpusējiem protoboriem ar savstarpēji savienotiem caurumiem. Lai gan instrukcija
IOT123 - 3.3V POWER BRICK: 4 soļi
IOT123 - 3.3V POWER BRICK: IOT123 BRICKS ir DIY modulāras vienības, kuras var sajaukt ar citiem IOT123 BRICKS, lai mezglam pievienotu funkcionalitāti vai valkājamu. Tie ir balstīti uz collu kvadrātveida, divpusējiem protoboriem ar savstarpēji savienotiem caurumiem. Lai gan instrukcija
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 soļi
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Šī iestatīšana lielā mērā ir akadēmiska vai programmatūras/barošanas avota testēšanas bāze. Pat tad, ja PB5 ir atspējots kā RESET, tas precīzi neizlasa vērtības, izmantojot analogRead: sensoru rādījumu galvenais lietojums. Izpētīs ATTINY84 iestatījumus