Мазмұны:
- 1 -қадам: материалдар мен құралдар
- 2 -қадам: ATTINY85 дайындаңыз
- 3 -қадам: схеманы жинаңыз
- 4 -қадам: тестілеу
- 5 -қадам: Келесі қадамдар
Бейне: IOT123 - I2C 2CH РЕЛИ КІРІШ: 5 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
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 -қадам: материалдар мен құралдар
Материалдар мен ресурстардың толық тізімі бар.
- 2 арналы реле (1)
- ATTINY85 20PU (1)
- 1 дюймдік екі жақты протободы (1)
- Ерлер тақырыбы 90º (3P, 3P)
- Ерлер тақырыбы (2P, 2P)
- Секіргіш шунт (1)
- Қосылатын сым (~ 7)
- Дәнекер және темір (1)
2 -қадам: 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 -қадам: схеманы жинаңыз
- Алдыңғы жағына ATTINY85 (1), 3P 90deg (2) (3), 3P (4) (5) ерлердің үстіңгі бөліктерін және артқы жағына дәнекерлеуді салыңыз.
- Артқы жағында САРЫ 1 -ден САРЫ2 -ге дейінгі сары сымды және дәнекерлеуді қадағалаңыз.
- Артқы жағында ORANGE1 -ден ORANGE2 -ге дейінгі қызғылт сары сымды және дәнекерлеуді қадағалаңыз.
- Артқы жағында көк сымды BLUE1 -ден BLUE2 -ге дейін және дәнекерлеңіз.
- Артқы жағында GREEN1 -ден GREEN2 -ге дейінгі жасыл сымды және дәнекерлеуді қадағалаңыз.
- Артқы жағында BLACK1 -ден BLACK2 -ге дейінгі қара сымды және дәнекерлеуді қадағалаңыз.
- Артқы жағында BLACK3 -тен BLACK4 -ке дейінгі қара сымды және дәнекерлеуді қадағалаңыз.
- Артқы жағында қызыл сымнан RED1 -ден RED2 -ге дейін және дәнекерлеңіз.
- Артқы жағында RED3 -тен RED4 -ке дейінгі жалаңаш сымды және дәнекерлеуді қадағалаңыз.
- Артқы жағында SILVER1 мен SILVER2 арасындағы жалаңаш сымды және дәнекерлеуді қадағалаңыз.
- 5V немесе 3V3 желісінде секіргішті қосыңыз.
Реле енді түйреуіштер арқылы ПХД -ға немесе сымдар арқылы, түйреуіш келісімінде көрсетілген нүктелерге қосылуы мүмкін.
4 -қадам: тестілеу
Бұл BRICKS саны қоршаған ортада бірнеше түйіндерде (MCU - ESP8266 немесе ATTINY84) болады деп күтілуде. Бұл сынақ бірлігі: реле ашатын немесе жабатын ATTINY -ге UNO -дан I2C командаларын жібереді.
Біз бұрын Arduino үшін I2C SHIELD құрдық.
Егер сіз оны тақтаға алғыңыз келсе:
- БҰҰ -дағы 5.0В -ты BRICK -тегі VCC -ге қосыңыз.
- UNO -дағы GND -ді BRICK -тегі GND -ге қосыңыз.
- A5 -ті UNO -да SCL -ге BRICK -ке қосыңыз.
- A4 -ті БҰҰ -дағы SDA -ға BRICK -те қосыңыз.
- SDA-дан VCC-ге 4K7 тартылатын резисторды қосыңыз.
- SCL-ден VCC-ге 4K7 тартылатын резисторды қосыңыз.
Сынақтан өту
- БҰҰ -ды USB көмегімен Dev компьютеріне қосыңыз.
- БҰҰ -ға кодты жүктеңіз.
- Arduino консолін ашыңыз.
- 9600 baud таңдаңыз (БҰҰ -ны қайта іске қосыңыз және қажет болса консольді қайта ашыңыз).
- Құлдың мекенжайы консольге басып шығарылады.
-
Қашан жіберу жолағына 2 0: 1 енгізіңіз (сондықтан 15 2 0: 1), және CH1 релесі қосылады.
- Қашан жіберу жолағына 2 0: 0 (сондықтан 15 2 0: 0) енгізіңіз, және CH1 релесі өшеді.
- Қашан жіберу жолағына 2 1: 1 енгізіңіз (сондықтан 15 2 1: 1), және CH2 релесі қосылады.
- Қашан жіберу жолағына 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 шинаңызда қақтығыс болса. Бірнеше схемалар қосылды, бірақ сіз қол жеткізгіңіз келетін нәрсеге байланысты төмендегі тізбекті қосудың әр түрлі әдістері бар, сондықтан мен мұны сізге қалдырамын:)
Ұсынылған:
IOT123 - D1M BLOCK - 2xAMUX құрастыру: 7 қадам (суреттермен)
IOT123 - D1M BLOCK - 2xAMUX құрастыру: D1M BLOCKS әйгілі Wemos D1 Mini SOC/Shields/Clones үшін тактильді корпустарды, жапсырмаларды, полярлық бағыттаушылар мен үзіліс қосады. ESP8266 чипіне қатысты мәселелердің бірі - бұл тек бір ғана аналогтық IO түйреуішінің болуы. Бұл нұсқаулық 2xA жинауды көрсетеді
IOT123 - D1M BLOCK - ACAM2 камера құрастыруы: 8 қадам (суреттермен)
IOT123 - D1M BLOCK - ACAM2 камера жинағы: D1M BLOCKS әйгілі Wemos D1 Mini SOC/Shields/Clones үшін тактильді корпустарды, жапсырмаларды, полярлық бағыттаушылар мен үзіліс қосады. ArduCam 2MP камерасы ESP8266 чипімен (D1M BLOCKS негізделген) кескінді/бейнені икемді түсіруге мүмкіндік береді. Бұл нұсқаулық
IOT123 - SOLAR TRACKER - көлбеу/табақ, панельді жақтау, LDR MOUNTS RIG: 9 қадам (суреттермен)
IOT123 - SOLAR Tracker - TILT/PANEL, PANEL FRAME, LDR MOUNTS RIG: Қос осьті күн іздеушілерге арналған DIY конструкцияларының көпшілігі «сол жерде»; олар 9G Micro Servo-ға негізделген, олар шынымен де бірнеше күн батареяларын, микроконтроллерді, батареяны және корпусты итеруге мүмкіндік бермейді. Сіз дизайн жасай аласыз
IOT123 - D1M BLOCK - ADS1115 құрастыру: 7 қадам (суреттермен)
IOT123 - D1M BLOCK - ADS1115 құрастыру: D1M BLOCKS әйгілі Wemos D1 Mini SOC/Shields/Clones үшін тактильді корпустарды, жапсырмаларды, полярлық бағыттаушылар мен үзіліс қосады. ESP8266 чипіне қатысты мәселелердің бірі - бұл тек бір ғана аналогтық IO түйреуішінің болуы. Бұл нұсқаулық ADS -ті қалай жинау керектігін көрсетеді
IOT123 - SOLAR 18650 зарядтауды бақылаушы: 5 қадам (суреттермен)
IOT123 - SOLAR 18650 зарядтауды бақылаушы: 18650 батареясын күн батареяларынан зарядтайды (3 -ке дейін) және 2 ажыратқыш қосқышты ажыратады (қосқышы бар). Бастапқыда SOLAR TRACKER (қондырғы мен контроллер) үшін жасалған, ол өте жалпы болып табылады және алдағы велосипедтік дулыға күн панелінде қолданылады