Мазмұны:

IOT123 - I2C 2CH РЕЛИ КІРІШ: 5 қадам (суреттермен)
IOT123 - I2C 2CH РЕЛИ КІРІШ: 5 қадам (суреттермен)

Бейне: IOT123 - I2C 2CH РЕЛИ КІРІШ: 5 қадам (суреттермен)

Бейне: IOT123 - I2C 2CH РЕЛИ КІРІШ: 5 қадам (суреттермен)
Бейне: IOT123 - ICOS10: STRUCTURE 2024, Маусым
Anonim
IOT123 - I2C 2CH РЕЛИ КІРПІШ
IOT123 - I2C 2CH РЕЛИ КІРПІШ
IOT123 - I2C 2CH РЕЛИ КІРПІШ
IOT123 - I2C 2CH РЕЛИ КІРПІШ
IOT123 - I2C 2CH РЕЛИ КІРПІШ
IOT123 - I2C 2CH РЕЛИ КІРПІШ
IOT123 - I2C 2CH РЕЛИ КІРПІШ
IOT123 - I2C 2CH РЕЛИ КІРПІШ

IOT123 BRICKS - бұл түйінге функционалдылықты қосу немесе киюге болатын басқа IOT123 кірпіштерімен біріктіруге болатын DIY модульдік қондырғылары. Олар дюймдік шаршыға, тесіктері арқылы өзара қосылған екі жақты протоборларға негізделген.

Бұл BRICKS саны сайтта бірнеше түйіндерде болады (Master MCUs - ESP8266 немесе ATTINY84). MCU сенсорлардың мақсаты немесе бағдарламалық қамтамасыз ету қажеттілігі туралы алдын ала білуді қажет етпейді. Ол I2C түйіндерін сканерлейді, содан кейін әрбір құлдан сипаттық демпингті (сенсорлық деректерді) сұрайды. Бұл BRICKs 5.0V, 3.3V және реттелетін басқа AUX желісін береді.

Бұл I2C 2CH RELAY BRICK I2C KY019 BRICK функциясын кеңейтеді және екі оқу/жазу қасиетіне ие:

2CH RELAYS [0] (ақиқат/жалған)

2CH RELAYS [1] (шын/жалған)

ATTINY85-ке іргелес орналасқан тесіктер DIP8 ПХД-ге дәнекерленген кезде, пинг-пин бағдарламашысын қосу үшін пайдаланылмай қалды. D1M WIFI BLOCK хабына қосылатын, мәндерді MQTT серверіне айдайтын шағын цилиндрлерге BRICKS ораудың тағы бір абстракциясы әзірленуде.

1 -қадам: материалдар мен құралдар

Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар

Материалдар мен ресурстардың толық тізімі бар.

  1. 2 арналы реле (1)
  2. ATTINY85 20PU (1)
  3. 1 дюймдік екі жақты протободы (1)
  4. Ерлер тақырыбы 90º (3P, 3P)
  5. Ерлер тақырыбы (2P, 2P)
  6. Секіргіш шунт (1)
  7. Қосылатын сым (~ 7)
  8. Дәнекер және темір (1)

2 -қадам: ATTINY85 дайындаңыз

ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз
ATTINY85 дайындаңыз

ЕСКЕРТПЕ: Crouton интеграциясын қолданғыңыз келсе, осы жерден кітапхананы пайдаланыңыз және орнатылған «attiny_2ch_relay» мысалын қолданыңыз.

Тақталар менеджерінен AttinyCore қажет. «EEPROM Retained», «8mHZ Internal» жүктеушісін жазыңыз (барлық конфигурация жоғарыда көрсетілген).

Код репозиторийін мына жерден табуға болады.

Кітапхананың индексін мына жерден табуға болады.

Мұнда «ZIP кітапханасын импорттау» бойынша нұсқаулар бар.

Кітапхана орнатылғаннан кейін «attiny_2ch_relay» мысалын ашуға болады.

Микробағдарламаны ATTINY85 жүйесіне жүктеу үшін мына нұсқаулардан толығырақ біле аласыз:

www.instructables.com/id/How-to-Program-A…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/Programming-the-…

Жалғастырмас бұрын нан тақтасы арқылы тест жасаған дұрыс.

Егер сізде ASSIMILATE SENSORS бар болса, SENSOR/MCU хост комбинациясында қосалқы мекенжайдың әр түрлі екеніне көз жеткізіңіз, яғни MCU/түйінде тек бір релелік актер болса, барлық реле актерлері бірдей мекенжайға ие бола алады.

3 -қадам: схеманы жинаңыз

Циклды жинаңыз
Циклды жинаңыз
Циклды жинаңыз
Циклды жинаңыз
Циклды жинаңыз
Циклды жинаңыз
  1. Алдыңғы жағына ATTINY85 (1), 3P 90deg (2) (3), 3P (4) (5) ерлердің үстіңгі бөліктерін және артқы жағына дәнекерлеуді салыңыз.
  2. Артқы жағында САРЫ 1 -ден САРЫ2 -ге дейінгі сары сымды және дәнекерлеуді қадағалаңыз.
  3. Артқы жағында ORANGE1 -ден ORANGE2 -ге дейінгі қызғылт сары сымды және дәнекерлеуді қадағалаңыз.
  4. Артқы жағында көк сымды BLUE1 -ден BLUE2 -ге дейін және дәнекерлеңіз.
  5. Артқы жағында GREEN1 -ден GREEN2 -ге дейінгі жасыл сымды және дәнекерлеуді қадағалаңыз.
  6. Артқы жағында BLACK1 -ден BLACK2 -ге дейінгі қара сымды және дәнекерлеуді қадағалаңыз.
  7. Артқы жағында BLACK3 -тен BLACK4 -ке дейінгі қара сымды және дәнекерлеуді қадағалаңыз.
  8. Артқы жағында қызыл сымнан RED1 -ден RED2 -ге дейін және дәнекерлеңіз.
  9. Артқы жағында RED3 -тен RED4 -ке дейінгі жалаңаш сымды және дәнекерлеуді қадағалаңыз.
  10. Артқы жағында SILVER1 мен SILVER2 арасындағы жалаңаш сымды және дәнекерлеуді қадағалаңыз.
  11. 5V немесе 3V3 желісінде секіргішті қосыңыз.

Реле енді түйреуіштер арқылы ПХД -ға немесе сымдар арқылы, түйреуіш келісімінде көрсетілген нүктелерге қосылуы мүмкін.

4 -қадам: тестілеу

Сынақ
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ

Бұл BRICKS саны қоршаған ортада бірнеше түйіндерде (MCU - ESP8266 немесе ATTINY84) болады деп күтілуде. Бұл сынақ бірлігі: реле ашатын немесе жабатын ATTINY -ге UNO -дан I2C командаларын жібереді.

Біз бұрын Arduino үшін I2C SHIELD құрдық.

Егер сіз оны тақтаға алғыңыз келсе:

  1. БҰҰ -дағы 5.0В -ты BRICK -тегі VCC -ге қосыңыз.
  2. UNO -дағы GND -ді BRICK -тегі GND -ге қосыңыз.
  3. A5 -ті UNO -да SCL -ге BRICK -ке қосыңыз.
  4. A4 -ті БҰҰ -дағы SDA -ға BRICK -те қосыңыз.
  5. SDA-дан VCC-ге 4K7 тартылатын резисторды қосыңыз.
  6. SCL-ден VCC-ге 4K7 тартылатын резисторды қосыңыз.

Сынақтан өту

  1. БҰҰ -ды USB көмегімен Dev компьютеріне қосыңыз.
  2. БҰҰ -ға кодты жүктеңіз.
  3. Arduino консолін ашыңыз.
  4. 9600 baud таңдаңыз (БҰҰ -ны қайта іске қосыңыз және қажет болса консольді қайта ашыңыз).
  5. Құлдың мекенжайы консольге басып шығарылады.
  6. Қашан жіберу жолағына 2 0: 1 енгізіңіз (сондықтан 15 2 0: 1), және CH1 релесі қосылады.

  7. Қашан жіберу жолағына 2 0: 0 (сондықтан 15 2 0: 0) енгізіңіз, және CH1 релесі өшеді.
  8. Қашан жіберу жолағына 2 1: 1 енгізіңіз (сондықтан 15 2 1: 1), және CH2 релесі қосылады.
  9. Қашан жіберу жолағына 2 1: 0 (сондықтан 15 2 0: 0) енгізіңіз, және CH2 релесі өшеді.

I2C BRICK БҰҰ шеберінің құлдарға арналған арнайы командалары

#қосу
const байт _num_chars = 32;
char _received_chars [_num_chars]; // алынған мәліметтерді сақтауға арналған массив
логикалық _has_new_data = жалған;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println («IOT ACTOR/SENSOR EEPROM EDITOR РЕДАКТОРЫН ҚҰРУ»);
Serial.println («консоль терезесінде жаңа жолды таңдауды қамтамасыз ету»);
Serial.println ();
Serial.println («АДРЕС 1 METADATA ҚАБЫЛДАУЫН ЖОҚ (M2M үшін) РАҚСАТТАҢЫЗ»);
Serial.println («АДРЕС 2 АКТОР ПАРДАМЕНТІ»);
Serial.println ();
Serial.println («АВТОБУСТАРДАҒЫ АДРЕСТЕР:»);
scan_i2c_addresses ();
Serial.println ();
Serial.println («»);
}
voidscan_i2c_addresses () {
int device_count = 0;
үшін (байт адрес = 8; адрес <127; адрес ++)
{
Wire.beginTransmission (мекенжай);
const байт қателігі = Wire.endTransmission ();
егер (қате == 0)
{
Serial.println (мекен -жайы);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
статикалық байт ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
егер (rc! = end_marker) {
_received_chars [ndx] = rc;
ndx ++;
егер (ndx> = _num_chars) {
ndx = _нөмір_шарлар - 1;
}
}
басқа {
_received_chars [ndx] = '\ 0'; // жолды тоқтатыңыз
ndx = 0;
_has_new_data = ақиқат;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const Жол қабылданды_жол = Жол (_қабылданған_шарлар);
егер (_has_new_data == ақиқат) {
int idx1 = алынды_string.indexOf ('');
Жол мекенжайы = алынды_string.substring (0, idx1);
int address_int = address.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println («ADRESS INPUT INVALID:»);
Serial.println (мекен -жайы);
қайтару;
}
int idx2 = алынды_string.indexOf ('', idx1+1);
Жол коды;
егер (idx2 == -1) {
код = алынған_стринг.substring (idx1+1);
} басқа {
код = алынған_стринг.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println («КОД КІРІСІ ЖАҚСЫ:»);
Serial.println (код);
қайтару;
}
bool has_parameter = idx2> -1;
Жол параметрі;
if (has_parameter) {
параметр = алынды_string.substring (idx2 + 1, idx2 + 17); // максимум 16 таңба
if (paramet.length () <1) {
Serial.println («PARTAMETER MIN. LENGTH 1»);
_has_new_data = жалған;
қайтару;
}
} басқа {
егер (code_int> 1) {
Serial.println («ПАРАМЕТР КЕРЕК!»);
_has_new_data = жалған;
қайтару;
}
}
Serial.println ();
Serial.print («кіріс ориг =»);
Serial.println (алынған_жол);
Serial.print («мекен -жай =»);
Serial.println (мекен -жайы);
Serial.print («код =»);
Serial.println (код);
Serial.print («параметр =»);
Serial.println (параметр);
// I2C арқылы жіберу
Wire.beginTrmission (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 («ЖІБЕРІЛДІ I2C!»);
Serial.println ();
Serial.println («»);
_has_new_data = жалған;
}
}

rawuno_i2c_command_input.ino -ды GitHub ❤ арқылы орналастыруды қараңыз

5 -қадам: Келесі қадамдар

Келесі қадамдар
Келесі қадамдар
Келесі қадамдар
Келесі қадамдар
Келесі қадамдар
Келесі қадамдар
Келесі қадамдар
Келесі қадамдар

Бұл кірпішті қолданатын ASSIMILATE ACTOR: 2CH RELAY келесі ATTINY85-те орнатылған метадеректер арқылы Crouton үшін автоматты конфигурацияға ие. Crouton -ға жіберілген JSON пакеті ICOS10 үшін соңғы микробағдарлама арқылы жіберіледі. Егер конструкция қазір тым көп болса, сіз қарапайым ESP8266-де тұжырымдаманы дәлелдей аласыз.

Тестілеуде қолданылатын UNO эскизінде ATTINY85 -те EEPROM жаңа құл мекенжайын сақтау функциясы бар, егер сіздің мақсатты I2C шинаңызда қақтығыс болса. Бірнеше схемалар қосылды, бірақ сіз қол жеткізгіңіз келетін нәрсеге байланысты төмендегі тізбекті қосудың әр түрлі әдістері бар, сондықтан мен мұны сізге қалдырамын:)

Ұсынылған: