Spisu treści:
Wideo: IOT123 - I2C BRICK MASTER JIG: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Podczas opracowywania ASSIMILATE SENSORS and ACTORS mam pod ręką UNO do wysyłania adhoc poleceń I2C do opracowywanych prototypów. Jedną z zalet I2C BRICKS są znormalizowane pinouty. Zamiast używać za każdym razem przewodów płytki stykowej (patrz Fritzings), używana jest wytrzymała osłona lo-tech.
Krok 1: Materiały i narzędzia
- PCB 4cm x 6cm (1)
- Przewód przyłączeniowy (~6)
- Rezystory 4K7 (2)6
- Męski nagłówek (12P, 8P)
- Żeński nagłówek (9P lub 3P, 3P)
- Lut i żelazo (1)
Krok 2: Montaż
Jeśli użyjesz 2 żeńskich gniazd 3P zamiast 1 żeńskiego złącza 9P, ASSIMILATE SENSOR/ACTORS zmieści się na JIG bez ich demontażu.
Za pomocą okablowania zdejmij do 10 mm na końcach i pocynuj same końce.
- Na spodzie płytki PCB włóż męski nagłówek (1)(2) i przylutuj od góry.
- W górnej części PCB włóż żeński nagłówek (3) i przylutuj na dole.
- Na górze przewlecz czerwony przewód w RED1 i RED2.
- Na dole przewód przelotowy z RED1 do RED3.
- Na dole przewlecz przewód z RED2 na RED5 i przylutuj.
- Na górze przewlecz przewód z RED3 na RED4 i przylutuj.
- Na górze przewlecz czerwony przewód w RED6 i RED7.
- Na dole przewód przelotowy z RED6 do RED8.
- Na dole przewlecz przewód z RED7 na RED10 i przylutuj.
- Na górze przewlecz drut z RED8 na RED9 i przylutuj.
- Na górze przewlecz czarny przewód w CZARNY1 i CZARNY2.
- Na dole przewód przelotowy z BLACK1 na BLACK3.
- Na dole przewlecz przewód z BLACK2 na BLACK5 i przylutuj.
- Na górze przewód przewlekany z BLACK3 na BLACK4 i lut.
- Na górze przewlecz niebieski przewód na NIEBIESKI1 i NIEBIESKI2.
- Na dole przewód przelotowy z BLUE1 na BLUE3.
- Na dole przewlecz przewód z BLUE2 na BLUE5 i przylutuj.
- Na górze przewlecz z BLUE3 na BLUE4 i przylutuj.
- Na górze przełóż zielony przewód na ZIELONY1 i ZIELONY2.
- Na dole przewód przelotowy z ZIELONEGO1 na ZIELONY3.
- Na spodzie przewlecz przewód z ZIELONEGO na ZIELONY5 i przylutuj.
- Na górze przewlecz przewód z ZIELONEGO 3 na ZIELONY 4 i przylutuj.
- Na górze przewlecz rezystor 4K7 na SILVER3 i SILVER4.
- Na spodzie przewlecz przewód ze SILVER3 na ZIELONY5 i przylutuj.
- Na dole przewlecz przewód ze SILVER4 na RED10 i przylutuj.
- Na górze przewlecz rezystor 4K7 na SILVER1 i SILVER2.
- Na dole przewlecz przewód ze SILVER1 na NIEBIESKI5 i przylutuj.
- Na dole przewlecz przewód ze SILVER2 na RED10 i przylutuj.
Krok 3: Kod dla ONZ
Szkic tutaj jest szczątkowy. Pozwala na użycie wejścia konsoli, aby UNO wysyłało komunikaty I2C do I2C ATTINY85 BRICK.
Wszystkie instrukcje są drukowane na ekranie wraz z obsługiwanymi opcjami.
Polecenia adhoc I2C BRICK dla urządzeń podrzędnych z mastera UNO
#włączać |
stały bajt _liczba_znaków = 32; |
char _otrzymane_znaki[_liczba_znaków]; // tablica do przechowywania otrzymanych danych |
wartość logiczna _ma_nowe_dane = fałsz; |
voidsetup() { |
Serial.początek(9600); |
Serial.println(); |
Serial.println("ASYMILACJA AKTORA IOT/EDYTOR CZUJNIKA EEPROM"); |
Serial.println("zapewnij zaznaczenie nowej linii w oknie konsoli"); |
Serial.println(); |
Serial.println("ADRES 1 POTWIERDŹ POTWIERDZENIE METADANYCH NIE DOTYCZY (DLA M2M)"); |
Serial.println("POLECENIE AKTORA DLA ADRESU 2"); |
Serial.println(); |
Serial.println("ADRESY W BUS:"); |
scan_i2c_addresses(); |
Serial.println(); |
Serial.println(""); |
} |
voidscan_i2c_addresses(){ |
int liczba_urządzeń = 0; |
for (adres bajtu = 8; adres < 127; adres++) |
{ |
Wire.beginTransmisja(adres); |
błąd const byte = Wire.endTransmission(); |
jeśli (błąd == 0) |
{ |
Serial.println(adres); |
} |
} |
} |
voidloop() { |
recv_with_end_marker(); |
wyślij_do_i2c(); |
} |
voidrecv_with_end_marker() { |
bajt statyczny ndx = 0; |
char end_marker = '\n'; |
char rc; |
while (Serial.available() >0 && _has_new_data == false) { |
rc = Serial.odczyt(); |
if (rc != end_marker) { |
_otrzymane_znaki[ndx] = rc; |
ndx++; |
if (ndx >= _liczba_znaków) { |
ndx = _liczba_znaków - 1; |
} |
} |
w przeciwnym razie { |
_otrzymane_znaki[ndx] = '\0'; // zakończ ciąg |
ndx = 0; |
_ma_nowe_dane = prawda; |
} |
} |
} |
voidsend_to_i2c() { |
char param_buf[16]; |
const String odebrany_string = String(_otrzymane_znaki); |
jeśli (_has_new_data == prawda) { |
int idx1 = odebrany_ciąg.indexOf(''); |
Adres ciągu = odebrany_ciąg.substring(0, idx1); |
int adres_int = adres.toInt(); |
if (adres_int < 8 || adres_int >127){ |
Serial.println("NIEPRAWIDŁOWE WPROWADZENIE ADRESU:"); |
Serial.println(adres); |
powrót; |
} |
int idx2 = odebrany_ciąg.indexOf('', idx1+1); |
Kod ciągu; |
jeśli (idx2 == -1){ |
kod = odebrany_ciąg.podciąg(idx1+1); |
}w przeciwnym razie{ |
kod = odebrany_ciąg.podciąg(idx1+1, idx2+1); |
} |
int kod_int = kod.toInt(); |
if (kod_int < 0 || code_int >5){ |
Serial.println("WPROWADZONY NIEPRAWIDŁOWY KOD:"); |
Serial.println(kod); |
powrót; |
} |
bool has_parameter = idx2 > -1; |
parametr ciągu; |
jeśli (ma_parametr){ |
parametr = odebrany_ciąg.substring(idx2 + 1, idx2 + 17); // maks. 16 znaków |
if (parametr.długość() < 1){ |
Serial.println("MIN. DŁUGOŚĆ PARTAMENTU 1"); |
_ma_nowe_dane = fałsz; |
powrót; |
} |
}w przeciwnym razie{ |
jeśli (kod_int >1){ |
Serial.println("WYMAGANY PARAMETR!"); |
_ma_nowe_dane = fałsz; |
powrót; |
} |
} |
Serial.println(); |
Serial.print("input orig = "); |
Serial.println(otrzymany_ciąg); |
Serial.print("adres = "); |
Serial.println(adres); |
Serial.print("kod = "); |
Serial.println(kod); |
Serial.print("parametr = "); |
Serial.println(parametr); |
// WYŚLIJ PRZEZ I2C |
Wire.beginTransmission(adres_int); |
Wire.write(kod_int); |
jeśli (ma_parametr){ |
parametr.przycinanie(); |
strcpy(param_buf, parametr.c_str()); |
Wire.write(param_buf); |
} |
Wire.endTransmission(); |
Serial.println(); |
Serial.println("WYSŁANE PRZEZ I2C!"); |
Serial.println(); |
Serial.println(""); |
_ma_nowe_dane = fałsz; |
} |
} |
zobacz rawuno_i2c_command_input.ino hostowane z ❤ przez GitHub
Krok 4: Kolejne kroki
Z przedstawionych kompilacji jest wystarczająco dużo ruchomych części, abyś mógł zbudować własną sieć ASYMILATE IOT NETWORK.
Każda z indywidualnych funkcji węzłów (czujników i aktorów) jest kontrolowana w sposób zdecentralizowany, niezależnie od tego, czy jednostka główna MCU ma jakąkolwiek wiedzę na temat obsługiwanych funkcji.
Każda aplikacja łącząca się z brokerem MQTT może kontrolować/obserwować każdą funkcję węzła IOT. To M2M, aplikacje internetowe, IFTTT i tak dalej. Znacznie prostsze (lub bogatsze, jeśli chcesz) interfejsy do Twojego świata IOT.
Zalecana:
Kliknij Brick Switch dla Makey Makey: 4 kroki (ze zdjęciami)
Kliknij Brick Switch for Makey Makey: Ten wydrukowany w 3D przełącznik umożliwia użytkownikowi przekształcenie Makey Makey w „przesuwanie palcem”; dla „kliknięcia” w grach lub mogą to być strzałki w prawo/w lewo do przewijania prezentacji. Dodanie prawych i lewych uchwytów zaciskowych dla
Projekt sortera kolorów Arduino Brick: 5 kroków
Arduino Brick Color Sorter Project: W tym samouczku dotyczącym Arduino nauczymy się wykrywać kolory mojego klocka zabawkowego za pomocą Arduino i czujnika kolorów TCS3200. Aby uzyskać więcej informacji, przeczytaj poniższy samouczek, aby uzyskać więcej informacji.Materiały:Arduino Leonardo x 1TCS3200 x 1 Dużo kartonu180 Servo
IOT123 - ŁADOWARKA UDZIAŁ LEKARZA: 3 kroki
IOT123 - CHARGER DOCTOR BREAKOUT: Podczas debugowania wersji 0.4 KONTROLERA SOLAR TRACKER spędziłem dużo czasu podłączając multimetr do różnych obwodów przełącznika NPN. Multimetr nie miał połączeń przyjaznych dla płytki stykowej. Spojrzałem na kilka monitorów opartych na MCU, w tym
IOT123 - ATTINY85 ONBOARD PROGRAMOWANIE JIG: 3 kroki
IOT123 - ATTINY85 ONBOARD PROGRAMING JIG: W projektach BRICK wspomniałem, że otwory przelotowe przylegające do ATTINY85 zostały pozostawione niewykorzystane, aby umożliwić programatorowi pinów pogo, gdy DIP8 jest lutowany do płytki drukowanej. To jest ten programator pinów pogo. To naprawdę jest tylko przewód przejściowy do
IOT123 - ATTINY85 OPROGRAMOWANIE SERIAL JIG Montaż: 4 kroki
IOT123 - ATTINY85 SOFTWARE SERIAL JIG Montaż: Używałem ATTINY85 do łączenia czujników o małej mocy. Początkowo myślałem, że nie ma sposobu na debugowanie tych układów za pomocą konsoli i użyłem trochę ładnego „tam”; metody sprawdzania, co się dzieje w czasie wykonywania. Wtedy natknąłem się na SoftwareSeria