Përmbajtje:
- Hapi 1: Materialet dhe Mjetet
- Hapi 2: Përgatitni ATTINY85
- Hapi 3: Montimi i Treguesve
- Hapi 4: Montimi i Qarkut Kryesor
- Hapi 5: Testimi
- Hapi 6: Hapat e ardhshëm
Video: TOTA IOT123 - I2C HEATBEAT: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:26
TULLA IOT123 janë njësi modulare DIY që mund të përzihen me Tulla të tjera IOT123, për të shtuar funksionalitetin në një nyje ose të veshshme. Ato bazohen në protoboards katrore të inçit, të dyanshëm me ndërlidhje përmes vrimave.
Një numër i këtyre Tullave pritet të jenë në nyje të shumta (Master MCUs - ESP8266 ose ATTINY84) në një sit. MCU nuk ka nevojë për njohuri paraprake për qëllimin e sensorëve ose nevojat e softuerit. Ai skanon për nyjet I2C pastaj kërkon një deponim të pronës (të dhëna të sensorit) nga secili skllav. Këto Tulla furnizojnë 5.0V, 3.3V dhe një linjë tjetër AUX e cila është e personalizueshme.
Kjo tullë I2C HEARTBEAT tregon nëse skllavi ATTINY është gjallë, gjithashtu trafiku I2C dhe ka një pronë:
STATUS ("GJALL")
PB1 (e bardhë) tregon shëndetin ATTINY.
PB3 (e verdhë) kalon me kërkesat I2C nga masteri.
PB4 (portokalli) kalon me marrjen I2C nga masteri.
Vrimat ngjitur me ATTINY85 janë lënë të papërdorura, për të mundësuar një programues pogo pin ndërsa DIP8 është ngjitur në PCB. Një abstraksion i mëtejshëm, paketimi i Tullave në cilindra të vegjël që futen në një shpërndarës D1M WIFI BLOCK, duke pompuar vlerat në një server MQTT, është duke u zhvilluar.
Hapi 1: Materialet dhe Mjetet
Ekziston një listë e plotë e Faturave të Materialeve dhe Burimeve.
- PCB letre (7 x 7 vrima)
- LEDS (e kuqe, jeshile, blu)
- Rezistentët (3 nga 1K)
- ATTINY85 20PU (1)
- Protoboard me 1 anë (1)
- Koka e meshkujve 90º (3P, 3P)
- Koka e burrave (2P, 2P)
- Jumper Shunt (1)
- Teli lidhës (7 ~)
- Ngjitës dhe hekur (1)
Hapi 2: Përgatitni ATTINY85
SHENIM: Nëse keni ndërmend të keni integrim në Crouton, ju lutemi përdorni bibliotekën nga këtu dhe përdorni shembullin e instaluar "attiny_heartbeat"
Nevojitet AttinyCore nga Menaxheri i Bordeve. Djeg bootloader "EEPROM Retained", "8mHZ Interior" (të gjitha konfigurimet e treguara më lart).
Depoja e kodeve mund të gjendet këtu.
Një ZIP i bibliotekës mund të gjendet këtu.
Udhëzimet për "Importimi i një biblioteke ZIP" këtu.
Pasi të jetë instaluar biblioteka, mund të hapni shembullin "attiny_heartbeat".
Për të ngarkuar firmuerin në ATTINY85, mund të gjeni më shumë detaje në këto udhëzime:
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-…
Më së miri për të provuar përmes bordit të bukës para se të vazhdoni.
Nëse keni Sensorë ASSIMILATE ekzistues, sigurohuni që adresa e skllavit të jetë e ndryshme në një kombinim SENSOR/MCU Host p.sh. të gjithë aktorët e Relay mund të kenë të njëjtën adresë për sa kohë që ju keni vetëm një aktor Relay në një MCU/nyje.
Hapi 3: Montimi i Treguesve
Treguesit kanë për qëllim të jenë plotësisht të personalizueshëm. Janë sinjalet e ngjarjeve nga qarku kryesor që shihen si Rrahjet e Zemrës. Për këtë ndërtim ne do të përdorim treguesit LED; Ndërtimi juaj mund të përdorë stafetë (po VCC është shpërthyer) ose një tregues tjetër vizual/të bazuar në sinjal. Vlerat e rezistencës do të varen nga preferencat personale se sa të ndritshme i dëshironi ato.
- Në krye, futni një LED blu në RED1 (+) dhe BLACK1 (G), dhe ngjiteni në fund.
- Në pjesën e poshtme, përkulni plumbin nga RED1 kështu që prek jastëkun e bakrit në SILVER8 dhe zbukuroni.
- Në pjesën e poshtme, shkurtoni plumbin nga BLACK1 mbi lidhësin.
- Në krye, futni një LED të gjelbër në RED2 (+) dhe BLACK2 (G), dhe ngjiteni në fund.
- Në pjesën e poshtme, përkulni plumbin nga RED2 kështu që prek jastëkun e bakrit në SILVER9 dhe zbukuroni.
- Në pjesën e poshtme, shkurtoni plumbin nga BLACK2 mbi lidhësin.
- Në krye, futni një LED të kuq në RED3 (+) dhe BLACK3 (G), dhe ngjiteni në fund.
- Në pjesën e poshtme, përkulni plumbin nga RED3 kështu që prek jastëkun e bakrit në SILVER10 dhe zbukuroni.
- Në pjesën e poshtme, shkurtoni plumbin nga BLACK3 mbi lidhësin.
- Në krye, futni një rezistencë 1K në vrimat SILVER1 dhe SILVER4.
- Në pjesën e poshtme, gjurmoni, shkurtoni dhe lidhni plumbin nga SILVER1 në BLACK1.
- Në krye, futni një rezistencë 1K në vrimat SILVER2 dhe SILVER4.
- Në pjesën e poshtme, gjurmoni, shkurtoni dhe lidhni plumbin nga SILVER2 në BLACK2.
- Në pjesën e sipërme, futni një rezistencë 1K në vrimat SILVER3 dhe SILVER4.
- Në pjesën e poshtme, gjurmoni, shkurtoni dhe lidhni plumbin nga SILVER3 në BLACK3.
- Në pjesën e poshtme, lidhni telat në SILVER4 dhe shkurtojini ato me një shtrirje prej rreth 5 mm.
- Në pjesën e poshtme, lidhni një tel të zi në SILVER4.
- Në pjesën e poshtme, lidhni një tel të bardhë në SILVER5, duke siguruar vazhdimësinë e kalimit nga RED1.
- Në pjesën e poshtme, lidhni një tel të verdhë në SILVER6, duke siguruar vazhdimësinë e kalimit nga RED2.
- Në pjesën e poshtme, lidhni një tel portokalli në SILVER7, duke siguruar vazhdimësinë e kalimit nga RED3.
Hapi 4: Montimi i Qarkut Kryesor
Kuvendi:
- Në pjesën e përparme, futni përbërësit ATTINY85 (1), titujt meshkuj 3P 90deg (2) (3), titujt meshkuj 3P (4) (5) dhe ngjitini në pjesën e pasme.
- Në pjesën e pasme, gjurmoni një tel të verdhë nga YELLOW1 në YELLOW2 dhe lidhni.
- Në pjesën e pasme, gjurmoni një tel portokalli nga ORANGE1 në ORANGE2 dhe lidhni.
- Në pjesën e pasme, gjurmoni një tel blu nga BLUE1 në BLUE2 dhe ngjiteni.
- Në pjesën e pasme, gjurmoni një tel të gjelbër nga GREEN1 në GREEN2 dhe lidhni.
- Në pjesën e pasme, gjurmoni një tel të bardhë nga WHITE1 në WHITE2 dhe ngjiteni.
- Në pjesën e pasme, gjurmoni një tel të zi nga BLACK1 në BLACK2 dhe ngjiteni.
- Në pjesën e pasme, gjurmoni një tel të zi nga BLACK3 në BLACK4 dhe ngjiteni.
- Në pjesën e pasme, gjurmoni një tel të kuq nga RED1 në RED2 dhe lidhni.
- Në pjesën e pasme, gjurmoni një tel të zhveshur nga RED3 në RED4 dhe lidhni.
- Në pjesën e pasme, gjurmoni një tel të zhveshur nga SILVER1 në SILVER2 dhe ngjiteni.
- Shtoni një bluzë në linjën 5V ose 3V3.
Nëse përdorni Treguesit e mësipërm (referojuni diagramit pinout):
- Në pjesën e pasme, lidhni tela të bardhë në PB1.
- Në pjesën e pasme, ngjitni tela të verdhë në PB3.
- Në pjesën e pasme, lidhni tela portokalli në PB4.
- Në pjesën e pasme, lidhni tela të zezë në GND.
Hapi 5: Testimi
Një numër i këtyre Tullave pritet të jenë në nyje të shumta (MCUs - ESP8266 ose ATTINY84) në një mjedis. Ky është një test njësie: dërgon komanda I2C nga UNO në ATTINY e cila ndryshon LED -in e Marrjes. LED ATTINY ALIVE mbetet i ndezur.
Ne kemi ndërtuar më parë një I2C SHIELD për Arduino.
Nëse dëshironi ta vendosni atë në vend:
- Lidhni 5.0V në UNO me një VCC në BRICK.
- Lidhni GND në UNO me GND në Tulla.
- Lidhni A5 në UNO me SCL në Tulla.
- Lidhni A4 në UNO me SDA në BRICK.
- Lidhni një rezistencë tërheqëse 4K7 nga SDA në VCC.
- Lidhni një rezistencë tërheqëse 4K7 nga SCL në VCC.
Drejtimi i testit
- Lidhni UNO -në tuaj me kompjuterin tuaj Dev me USB.
- Ngarko kodin në UNO.
- Hapni tastierën Arduino.
- Zgjidhni 9600 baud (rinisni UNO dhe rihapni tastierën nëse është e nevojshme).
- Adresa e skllavit do të printohet në tastierë.
- Kur, futni në kutinë e dërgimit 2 1 (pra 16 2 1), dhe LED -i i Marrjes ndizet.
- Kur, futni në kutinë e dërgimit 2 0 (pra 16 2 0), dhe LED -i i Marrjes fiket.
Komandat adhoc të I2C BRICK për skllevërit nga masteri i UNO
#përfshi |
const byte _num_chars = 32; |
char _marrë_chars [_num_chars]; // një grup për të ruajtur të dhënat e marra |
boolean _has_new_data = false; |
voidsetup () { |
Serial.filloj (9600); |
Serial.println (); |
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR"); |
Serial.println ("siguro që linja e re e zgjedhur në dritaren e tastierës"); |
Serial.println (); |
Serial.println ("ADRESA 1 KONFIRMIMI I PETRFSHIRJES SET METADATAVE N/A (P MR M2M)"); |
Serial.println ("ADRESA 2 KOMANDA E AKTORIT"); |
Serial.println (); |
Serial.println ("Adresat në autobus:"); |
scan_i2c_adresa (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_adresat () { |
int pajisja_numër = 0; |
për (adresa e bajtit = 8; adresa <127; adresa ++) |
{ |
Wire.beginTransmetimi (adresa); |
const byte error = Wire.endTransmission (); |
nëse (gabim == 0) |
{ |
Serial.println (adresa); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
bajt statik ndx = 0; |
fundi_shënues = '\ n'; |
char rc; |
ndërsa (Serial. i disponueshëm ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
nëse (rc! = shënuesi i fundit) { |
_marrë_chars [ndx] = rc; |
ndx ++; |
nëse (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
tjeter { |
_rriten_chars [ndx] = '\ 0'; // përfundoni vargun |
ndx = 0; |
_has_new_data = e vërtetë; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const Vija e pranuar_string = String (_cipat_ e marra); |
nëse (_has_new_data == vërtetë) { |
int idx1 = marrë_string.indexOf (''); |
Adresa e vargut = marrë_string.substring (0, idx1); |
int address_int = adresa.toInt (); |
nëse (adresa_int <8 || adresa_int> 127) { |
Serial.println ("HYRJA E ADRESS SV INVALIDIT:"); |
Serial.println (adresa); |
kthim; |
} |
int idx2 = marrë_string.indexOf ('', idx1+1); |
Kodi i vargut; |
nëse (idx2 == -1) { |
kodi = marrë_string.substring (idx1+1); |
} tjetër { |
kodi = marrë_string.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
nëse (code_int <0 || code_int> 5) { |
Serial.println ("HYRJA E KODIT TV INVALIDUAR:"); |
Serial.println (kodi); |
kthim; |
} |
bool has_parameter = idx2> -1; |
Parametri i vargut; |
nëse (ka_parametër) { |
parametër = marrë_string.substring (idx2 + 1, idx2 + 17); // 16 karaktere max |
if (parametri.length () <1) { |
Serial.println ("PARTAMETRI MIN. Gjatësia 1"); |
_has_new_data = false; |
kthim; |
} |
} tjetër { |
nëse (code_int> 1) { |
Serial.println ("PARAMETRI I KERKESUAR!"); |
_has_new_data = false; |
kthim; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (vargu i marrë); |
Serial.print ("adresa ="); |
Serial.println (adresa); |
Serial.print ("code ="); |
Serial.println (kodi); |
Serial.print ("parametri ="); |
Serial.println (parametri); |
// D SRGIMI VIA I2C |
Wire.beginTransmission (adresa_int); |
Wire.write (code_int); |
nëse (ka_parametër) { |
parametër.trim (); |
strcpy (param_buf, parametër.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("DENTRGUAR NGA I2C!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = false; |
} |
} |
shikoni rawuno_i2c_command_input.ino të pritur me ❤ nga GitHub
Hapi 6: Hapat e ardhshëm
Vazhdimi i aktorit ASSIMILATE: HEARTBEAT që përdor këtë tullë ka konfigurim automatik për Crouton përmes meta të dhënave të instaluara tashmë në ATTINY85 këtu. Paketa JSON e dërguar në Crouton dërgohet përmes firmuerit më të fundit për ICOS10. Ju mund të bëni një Proof-of-concept në një ESP8266 të zakonshëm, nëse ndërtimi është shumë për tani.
Skica UNO e përdorur në Testim ka një funksion për të ruajtur një adresë të re skllave në EEPROM në ATTINY85, nëse keni një përplasje në autobusin tuaj të synuar I2C.
Recommended:
IOT123 - D1M BLOCK - 2xAMUX Montimi: 7 hapa (me fotografi)
IOT123 - D1M BLOCK - 2xAMUX Kuvendi: BLACK -et D1M shtojnë kuti prekëse, etiketa, udhëzues polariteti dhe thyerje për Wemos D1 Mini SOC/Shields/Clones të njohura. Një nga çështjet me çipin ESP8266 është se ka vetëm një pin analog IO në dispozicion. Ky udhëzues tregon se si të montoni 2xA
IOT123 - D1M BLOCK - RFTXRX Montimi: 8 hapa
IOT123 - D1M BLOCK - RFTXRX Montimi: BLACK -et D1M shtojnë kuti prekëse, etiketa, udhëzues polariteti dhe thyerje për Wemos D1 Mini SOC/Shields/Clones të njohura. Transmetuesit/Marrësit RF lejojnë ESP8266 të hyjë në automatizimin ekzistues të shtëpisë/industrisë. Kjo shtresë siguron prishje për 433/
IOT123 - D1M BLOCK - GY521 Montimi: 8 Hapa
IOT123 - Blloku D1M - GY521 Asambleja: Bllokimet D1M shtojnë kuti prekëse, etiketa, udhëzues polariteti dhe thyerje për WEMOS D1 Mini SOC/Shields/Clones të njohura. Ky BLLOK D1M jep një lidhje të thjeshtë midis Wemos D1 Mini dhe modulit GY-521 (kunjat e Adresës dhe Ndërprerjes mund të lidhen
IOT123 - D1M BLOCK - ADXL345 Montimi: 8 hapa
IOT123 - D1M BLOCK - ADXL345 Asambleja: Bllokimet D1M shtojnë kuti prekëse, etiketa, udhëzues polariteti dhe thyerje për Wemos D1 Mini SOC/Shields/Clones të njohura. Ky BLLOK D1M jep një lidhje të thjeshtë midis Wemos D1 Mini dhe modulit të Përshpejtuesit ADXL345. Motivimi im fillestar për zhvillimin
TOTA IOT123 - LIR2032 BATTERY: 4 hapa
TOTA IOT123 - LIR2032 BATTERY: Tullat IOT123 janë njësi modulare DIY që mund të përzihen me Tulla të tjera IOT123, për të shtuar funksionalitetin në një nyje ose të veshshme. Ato bazohen në protoboardë katrorë me inç, të dyanshëm me vrima të ndërlidhura. Edhe pse udhëzimet