Sadržaj:
Video: IOT123 - I2C OGLEDNIK OD ZIDA: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Tijekom razvoja ASISIMILAT SENSORS and ACTORS, držim UNO pri ruci za slanje adhoc I2C naredbi na prototipove u razvoju. Jedna od prednosti I2C CIGLA je standardizirani pinout. Umjesto da se svaki put koristi žica za matičnu ploču (vidi Fritzings), koristi se čvrsti lo-tech štit.
Korak 1: Materijali i alati
- 4 cm x 6 cm Uninersal PCB (1)
- Spojna žica (~ 6)
- 4K7 otpornici (2) 6
- Muški zaglavlje (12P, 8P)
- Žensko zaglavlje (9P ili 3P, 3P)
- Lemljenje i željezo (1)
Korak 2: Montaža
Ako koristite 2 off 3P ženska zaglavlja umjesto 1 off 9P ženskog zaglavlja, ASISIMILATNI SENZOR/GLUMCI će stati na JIG bez njihovog rastavljanja.
Ožičenjem skinite krajeve do 10 mm i pokrajte im krajeve.
- Na dnu tiskane ploče umetnite muško zaglavlje (1) (2) i lemite na vrhu.
- Na vrhu tiskane ploče umetnite ženski zaglavlje (3) i lemite na dno.
- Na vrhu provucite crvenu žicu u RED1 i RED2.
- Na dnu provucite žicu kroz RED1 u RED3.
- Na dnu provucite žicu kroz RED2 u RED5 i lemite.
- Na vrhu provucite žicu kroz RED3 u RED4 i lemite.
- Na vrhu provucite crvenu žicu u RED6 i RED7.
- Na dnu provucite žicu kroz RED6 u RED8.
- Na dnu provucite žicu kroz RED7 u RED10 i lemite.
- Na vrhu provucite žicu kroz RED8 u RED9 i lemite.
- Na vrhu provucite crnu žicu kroz BLACK1 i BLACK2.
- Na dnu, žica kroz rupu od BLACK1 u BLACK3.
- Na dnu provucite žicu kroz otvor iz BLACK2 u BLACK5 i lemite.
- Na vrhu provucite žicu kroz otvor iz BLACK3 u BLACK4 i lemite.
- Na vrhu provucite plavu žicu u PLAVU1 i PLAVU2.
- Na dnu provucite žicu kroz PLAVU1 u PLAVU3.
- Na dnu provucite žicu kroz PLAVU2 u PLAVU5 i lemite.
- Na vrhu, žica kroz rupu od PLAVE3 do PLAVE4, i lemite.
- Na vrhu provucite zelenu žicu u ZELENU1 i ZELENU2.
- Na dnu provucite žicu kroz ZELENU1 u ZELENU3.
- Na dnu provucite žicu kroz GREEN2 u GREEN5 i lemite.
- Na vrhu provucite žicu kroz ZELENU3 u ZELENU4 i lemite.
- Na vrhu provucite otpornik 4K7 u SILVER3 i SILVER4.
- Na dnu provucite žicu kroz SREBRNO3 u ZELENU5 i lemite.
- Na dnu provucite žicu kroz SREBRNO4 u CRVENU10 i lemite.
- Na vrhu provucite otpornik 4K7 u SILVER1 i SILVER2.
- Na dnu provucite žicu kroz SREBRU1 u PLAVU5 i lemite.
- Na dnu provucite žicu kroz SREBRNO2 u CRVENO10 i lemite.
Korak 3: Kôd za UNO
Skica je ovdje rudimentarna. Omogućuje vam korištenje unosa na konzoli kako bi UNO poslao I2C poruke I2C ATTINY85 CIKLI.
Sve upute ispisuju se na zaslonu s podržanim opcijama.
I2C BRICK adhoc naredbe za robove od UNO master -a
#uključi |
const bajt _broj_znakova = 32; |
char _primljeni_slovci [_broj_znakova]; // niz za spremanje primljenih podataka |
boolean _has_new_data = false; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("ASIMILIRAJ IOT ACTOR/SENSOR EEPROM EDITOR"); |
Serial.println ("osigurajte da je novi red izabran u prozoru konzole"); |
Serial.println (); |
Serial.println ("ADRESA 1 POTVRDI PRIJEM METADATA N/A (ZA M2M)"); |
Serial.println ("ZAPOVJEDA GLUMCA ADRESE 2"); |
Serial.println (); |
Serial.println ("ADRESE NA BUSU:"); |
scan_i2c_adrese (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int uređaj_broj = 0; |
for (adresa bajta = 8; adresa <127; adresa ++) |
{ |
Wire.beginTransmission (adresa); |
greška const bajta = Wire.endTransmission (); |
ako (pogreška == 0) |
{ |
Serial.println (adresa); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
statički bajt ndx = 0; |
char end_marker = '\ n'; |
char rc; |
while (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serijski.čitaj (); |
if (rc! = end_marker) { |
_primljeni_slovnici [ndx] = rc; |
ndx ++; |
if (ndx> = _broj_znakova) { |
ndx = _broj_znakova - 1; |
} |
} |
drugo { |
_received_chars [ndx] = '\ 0'; // završava niz |
ndx = 0; |
_has_new_data = true; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const niz primljen_string = niz (_primljeni_slovnici); |
if (_has_new_data == true) { |
int idx1 = primljeni_string.indexOf (''); |
Adresa niza = primljena_string.substring (0, idx1); |
int adresa_int = adresa.toInt (); |
if (adresa_int <8 || adresa_int> 127) { |
Serial.println ("INVALID ADDRESS INPUT:"); |
Serial.println (adresa); |
povratak; |
} |
int idx2 = primljeni_string.indexOf ('', idx1+1); |
Kod niza; |
if (idx2 == -1) { |
kod = primljeni_string.substring (idx1+1); |
}drugo{ |
kod = primljeni_string.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
if (code_int <0 || code_int> 5) {{100} {101} |
Serial.println ("INVALID CODE INPUT:"); |
Serial.println (kod); |
povratak; |
} |
bool has_parameter = idx2> -1; |
Parametar niza; |
if (ima_parametar) { |
parametar = primljeni_string.substring (idx2 + 1, idx2 + 17); // maksimalno 16 znakova |
if (parameter.length () <1) { |
Serial.println ("PARTAMETAR MIN. LENGTH 1"); |
_has_new_data = false; |
povratak; |
} |
}drugo{ |
if (code_int> 1) { |
Serial.println ("PARAMETAR POTREBAN!"); |
_has_new_data = false; |
povratak; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (primljeni_ string); |
Serial.print ("adresa ="); |
Serial.println (adresa); |
Serial.print ("code ="); |
Serial.println (kod); |
Serial.print ("parameter ="); |
Serial.println (parametar); |
// POŠALJI PREKO I2C |
Wire.beginTransmission (adresa_int); |
Wire.write (code_int); |
if (ima_parametar) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("Poslano putem I2C!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = false; |
} |
} |
pogledajte rawuno_i2c_command_input.ino hostirano sa ❤ od strane GitHub -a
Korak 4: Sljedeći koraci
Od predstavljenih gradnji postoji dovoljno pokretnih dijelova za izgradnju vlastite ASIMILIRANE IOT MREŽE.
Svakom od pojedinačnih funkcija čvorova (senzori i akteri) može se upravljati na decentraliziran način, ne ovisno o tome da li MCU master ima znanje o podržanim značajkama.
Svaka aplikacija koja se povezuje s posrednikom MQTT može kontrolirati/promatrati svaku značajku čvora IOT. To su M2M, web aplikacije, IFTTT i tako dalje. Mnogo jednostavnija (ili bogatija ako želite) sučelja za vaš IOT svijet.
Preporučeni:
Zaslon mjerača zida: 4 koraka (sa slikama)
Zaslon mjerača zida: Kupio sam jeftino mjerilo džepnih satova od eBaya misleći da će to biti zanimljiva novost. Ispostavilo se da mjerač koji sam kupio nije prikladan, ali do tada sam se obvezao proizvesti nešto što će objesiti na zid i biti
Sat koji pada sa zida kad ga pogledate: 4 koraka
Sat koji pada sa zida kad ga pogledate: Jeste li ikada poželjeli sat koji vam ne govori o vremenu. Ni ja, ali to dobivate kad me stavite u karantenu s nekoliko elektroničkih komponenti i internetom
IOT123 - D1M BLOK - 2xAMUX sklop: 7 koraka (sa slikama)
IOT123 - D1M BLOK - 2xAMUX sklop: D1M BLOKOVI dodaju taktilne futrole, naljepnice, vodiče za polaritet i proboje za popularne Wemos D1 Mini SOC/štitove/klonove. Jedan od problema s čipom ESP8266 je to što ima na raspolaganju samo jedan analogni IO pin. Ovo uputstvo pokazuje kako sastaviti 2xA
IOT123 - D1M BLOK - RFTXRX Sklop: 8 koraka
IOT123 - D1M BLOK - RFTXRX sklop: D1M BLOKOVI dodaju taktilne futrole, naljepnice, vodiče za polaritet i proboje za popularne Wemos D1 Mini SOC/štitove/klonove. RF odašiljači/prijamnici omogućuju ESP8266 pristup postojećoj kućnoj/industrijskoj automatizaciji. Ovo kućište omogućuje proboje za 433
Gornje dugme IRobot virtualnog zida: 6 koraka
Gornji gumb IRobot virtualnog zida: Pa me ljuti što velika tipka na vrhu iRobotovog virtualnog zida nije tipka za uključivanje. Izgleda da bi trebalo biti, ali jednostavno nije. Zato moram ući i dodati prekidač na vrh virtualnog zida