Dok smo se bavili prijašnjim Kincony kontrolerima, pokušavajući ih primjeniti u pametnim projektima, Kincony također nije gubio vrijeme i objavio je još nekoliko kontrolera koji će na naše zadovoljstvo naći primjenu u mnogobrojnim projektima prikupljanja i obrade podataka. Ovaj put je to kontroler Kincony KC868-AI prvenstveno namjenjen za organiziranje prikupljanja podataka iz mnogobrojnih ulaza (48 digitalnih ulaza), plus komunikacijski moduli koji su dodani na ploču kontrolera. Prijemnik infracrvenih signala (IR) i radio modul na frekvenciji 433 MHz. Pokazalo se da je to poput univerzalnih (Wi-Fi, Ethernet) pametnih (ESP32) metoda za prikupljanje informacija s nekog objekta i njihovo prenošenje za daljnju obradu u neki drugi sustav. Pa, prisutnost RS485 i I2C sučelja i konektora s 4 slobodna GPIO-a omogućuje vam da spojite dodatnu opremu na KC868-AI, na primjer, relejnu jedinicu i učinite ovaj kontroler punopravnim upravljačkim elementom vašeg sustava automatizacije. U sljedećim koracima, pokušat ćemo detaljnije razumjeti KC868-AI, pa čak se malo pozabaviti programiranjem.
❯ Kincony KC868-AI
Kao i uvijek, počet ćemo s navođenjem komponenti i podsustava instaliranih na ploči Kincony KC868-AI:
-
- Mikrokontroler ESP-WROOM-32E
- 48 digitalnih optoizoliranih ulaza (“suhi kontakt”)
- 4-pinski KCOM konektor za digitalne ulaze
- RS232 sučelje (2 konektora)
- RS485 sučelje
- Konektor modula prijamnika od 433 MHz
- IR prijemnik
- I2C konektor
- Konektor s 4 slobodna GPIO-a
- Ethernet LAN8270A
- USB programski poveznik
- Gumbi za vraćanje i preuzimanje
- Napajanje 12(24) V DC
Dakle, ulazi su:
- 48 digitalnih ulaza (“suhi kontakt”)
- IR prijemnik
- Konektor modula prijamnika od 433 MHz
Sučelja:
- RS232 sučelje (2 konektora)
- RS485 sučelje
- I2C konektor
- Konektor s 4 slobodna GPIO-a
Međukontrolerske komunikacije:
- Wi-Fi (ESP32)
- Ethernet LAN8270A
Iz svega navedenog nazire se izvrsna fleksibilna platforma za stvaranje vlastitih rješenja za automatizaciju – KC868-AI se može koristiti kao uređaj za prikupljanje ulaznih podataka, koji se zatim mogu prenijeti u zajednički sustav ili kao zasebni univerzalni kontroler za upravljanje nekim objektom (povezivanjem aktuatora, prekidača,…). Kod ovog kontrolera također možete primjrtiti potpunu odsutnost analognih ulaza. Na ploči se nalazi konektor sa slobodnim GPIO 34, 35, 36, 39 i možete pokušati spojiti neke analogne senzore na njih, ali za to ćete morati uložiti dodatne napore. To je posebno čudno što u imenu KC868-AI kontrolera, se nagovještava AI – Analogni Ulazi, ali sam kontroler ne sadrži niti jedan analogni ulaz. Možda je Kincony aludirao na “Umjetnu inteligenciju” od “AI”?
❯ Izgled i dizajn
Za usporedbu, ovdje je fotografija KC868-AI pored “osnovnog” modela KC868-A4 cijele obitelji kontrolera KC868. Ovdje se nema što komentirati, sve je vidljivo “golim okom”, jedino što bih želio napomenuti je da su za ogromne kontrolere Kinconyja potrebni odgovarajući ormari – u onome što se na našem prostoru obično naziva “Razvodni ormar”. Kincony KC868-AI će zahtjevati ili jedan veći takav ormar u kojeg će se uklopiti sa ostalim modulima automatike, ili ga izdvojiti u poseban ormar a sklopove automatike smjestiti u izdvojeni ormar. Od traga je smješten nosač na DIN tračnice. Prisutne su rupe za montažu na bilo koju prikladnu površinu (bez DIN-tračnica).
❯ Strujni krugovi
U ovom članku prekinut ćemo tradiciju detaljnog opisa svih podsustava kontrolera uvođenjem odgovarajućih shema. Kincony u svojim proizvodima koristi tipična rješenja krugova i nema potrebe u ponavljanju njihovog opisa od članka do članka. U ovom pregledu navest će se i analizirati samo neke fragmente podsklopova karakteristične za dotični model KC868-AI. Sve je u duhu Kinconyja. Pozornost je na vertikalnim USB i Ethernet konektorima i zasebnim modulom KCOM. Također treba napomenuti da je (uz našu pomoć) Kincony počeo instalirati konektor na ploču za povezivanje bez lemljenja bežičnog modula od 433 MHz i GPIO ESP32 na zasebni konektor.
❯ Digitalni ulazi
Ploča ima 48 digitalnih opto-izoliranih “suhih kontaktnih” ulaza na Opto couplerima EL357, raspoređenih u 6 konektora sa po 8ulaza. Kako bi osigurao njihov rad u suradnji s ESP32, KC868-AI koristi digitalne I/O ekstendere s I2C sučeljem na 6 PCF8574P čipova. Radi jasnoće i kako se shema ne bi zatrpala, prikazan je samo jedan od šest blokova optocouplera (ostali su mu potpuno jednaki). Ekstenderi priključka na PCF8574P prikazuju svih 6. Važno je napomenuti oznaku SDA2 / SCL2 iako se na ploči koristi samo jedno I2C sučelje. Štoviše, oznaka SCL2 napisana je pogreškom (SDL2).
❯ I2C konektori
Na ploči se nalazi vrlo koristan I2C konektor za spajanje raznih dodatnih komponenti. Može se spojiti, na primjer, zaslon, dodatni senzori i drugi elementi. Dijagram kruga kontakata I2C:
❯ Slobodni GPIO
Još jedan koristan dodatak je 4 slobodna za korištenje GPIO-a na zasebnom priključku. Mogu spojiti različitu opremu ili organizirati analogne ulaze (koji su potpuno odsutni na ploči). Shematski dijagram konektora s GPIO-om (34, 35, 36, 39):
❯ Shema vanjskih veza
Malo izmijenjena izvorna shema konektora i vanjskih veza kontrolera KC868-AI. Dva RS232 konektora zapravo su jedno sučelje koje je u dva konektora.
❯ Raspored pinova
Pinout koji pokazuje što je i kako povezano s ESP32 mikrokontrolerom na ploči KC868-AI. Čini se da GPIO2 i GPIO12 nisu nigdje povezani i nisu ni na koji način uključeni (također je mogaobiti izlaz na konektor sa slobodnim GPIO-om).
❯ Programiranje
Pokušajmo sada programirati KC868-AI koristeći Arduino IDE. U primjeru vidjeti kako se mogu dobivati podaci iz njegovih digitalnih ulaza. Da bismo to učinili, trebat će nam knjižnica PCF8574_library.
/*
Primjer KC868-AI DI
*/
#include “Arduino.h”
#include “PCF8574.h”
#define SDA 4
#define SCL 5
PCF8574 pcf_1(0x24, SDA, SCL);
PCF8574 pcf_2(0x25, SDA, SCL);
PCF8574 pcf_3(0x21, SDA, SCL);
PCF8574 pcf_4(0x22, SDA, SCL);
PCF8574 pcf_5(0x26, SDA, SCL);
PCF8574 pcf_6(0x23, SDA, SCL);
null setup() {
Serijski početak(115200);
Serial.println();
Serial.println(F(“KC868-AI DI primjer starta…”));
for (bajt i = 0; i < 8; i++) {pcf_1.pinMode(i, INPUT);}
for (bajt i = 0; i < 8; i++) {pcf_2.pinMode(i, INPUT);}
for (bajt i = 0; i < 8; i++) {pcf_3.pinMode(i, INPUT);}
for (bajt i = 0; i < 8; i++) {pcf_4.pinMode(i, INPUT);}
for (bajt i = 0; i < 8; i++) {pcf_5.pinMode(i, INPUT);}
for (bajt i = 0; i < 8; i++) {pcf_6.pinMode(i, INPUT);}
Serial.print(“Init pcf 1…” ); if (pcf_1.begin()){Serial.println(“OK”);} else {Serial.println(“Err”);}
Serial.print(“Init pcf 2…” ); if (pcf_2.begin()){Serial.println(“OK”);} else {Serial.println(“Err”);}
Serial.print(“Init pcf 3…” ); if (pcf_3.begin()){Serial.println(“OK”);} else {Serial.println(“Err”);}
Serial.print(“Init pcf 4…” ); if (pcf_4.begin()){Serial.println(“OK”);} else {Serial.println(“Err”);}
Serial.print(“Init pcf 5…” ); if (pcf_5.begin()){Serial.println(“OK”);} else {Serial.println(“Err”);}
Serial.print(“Init pcf 6…” ); if (pcf_6.begin()){Serial.println(“OK”);} else {Serial.println(“Err”);}
kašnjenje(1000);
}
void loop() {
Serial.println();
for (bajt i = 0; i < 8; i++) {Serial.print(pcf_1.digitalRead(i));} Serial.print(‘ ‘);
for (bajt i = 0; i < 8; i++) {Serial.print(pcf_2.digitalRead(i));} Serial.print(‘ ‘);
for (bajt i = 0; i < 8; i++) {Serial.print(pcf_3.digitalRead(i));} Serial.print(‘ ‘);
for (bajt i = 0; i < 8; i++) {Serial.print(pcf_4.digitalRead(i));} Serial.print(‘ ‘);
for (bajt i = 0; i < 8; i++) {Serial.print(pcf_5.digitalRead(i));} Serial.print(‘ ‘);
for (bajt i = 0; i < 8; i++) {Serial.print(pcf_6.digitalRead(i));} Serial.print(‘ ‘);
kašnjenje(300);
}
Budući da su na ploči KC868-AI I2C pinovi sučelja spojene na nestandardni GPIO4 i 5, moramo uzeti u obzir ovu točku u kodu i izričito ih navesti. Odmah navedite adrese (0x24, 0x25, 0x21, 0x22, 0x26, 0x23) EKSTENDERA PRIKLJUČKA PCF8574P na I2C sabirnici. Zašto adrese nisu u redoslijedu? Očito, kako se ne bismo opustili i programiranje nam se ne čini tako lakim zadatkom.
#define SDA 4
#define SCL 5
PCF8574 pcf_1(0x24, SDA, SCL);
PCF8574 pcf_2(0x25, SDA, SCL);
PCF8574 pcf_3(0x21, SDA, SCL);
PCF8574 pcf_4(0x22, SDA, SCL);
PCF8574 pcf_5(0x26, SDA, SCL);
PCF8574 pcf_6(0x23, SDA, SCL);
Sada je sve jasno: linije proširenja tretiramo kao ulaze i u petlji ispisujemo matricu svih 48 digitalnih ulaza KC868-AI (obratite pozornost na nulu u prvom položaju svake linije – to je prvi ulaz zatvoren za KCOM).
❯ Zaključak
Kincony je izdao još jedan izvrstan kontroler za DIY pa i industrijsku automatizaciju – sve je jednostavno i razumljivo za programiranje – ako se vaš zadatak uklapa u njegove karakteristike, možete ga sigurno koristiti za provedbu svog projekta.