Hardver
Ez egy egyszerű soros konzol, amely adatmegjelenítésre és adatbevitelre
használható. Egyszerre három (különböző) soros interfészt tud kezelni:
3.3V TTL-t egykártyás számítógépekhez és mikrokontrollerekhez,
hagyományos RS-232-t és USB-n keresztüli soros portot.
tápfeszültség: | 5 V |
áramfelvétel: | kb. 30 mA |
mechanikai méretek: | 100x60x50 mm |
szigetelési osztály: | 0. osztály |
IP védettség: | IP 00 |
készülékház anyaga: | termoplaszt (PC), csak fedlap |
kijelző méret: | 20x4 katakter |
karakterkészlet: | ASCII 32-127 |
kapcsolat: | 3.3V TTL, RS-232 and USB soros |
vételi puffer mérete: | 255 byte |
Ez egy Raspberry Pi Pico alapú eszköz. A kijelző 20x4 karakteres
folyadékkristályos kijelző, amely a nagyobb méretű virtuális képernyő
20x4 méretű területét jeleníti meg. Ez a terület gombokkal mozgatható.
A virtuális képernyő alapértelmezett mérete 80x25 karakter, ez az érték
a programban állítható be.
Az áramkör három soros porttal rendelkezik, beállítástól függően
mindhárom használható adat- és rendszerüzenet átvitelre, vagy mindkettőre
egyszerre. A #0 soros port USB-porton keresztüli, az 1-es egy 3,3V-os
TTL-port, a #2-es egy hagyományos RS-232-es soros port. Serial #1
csatlakoztatható egy 5 V-os TTL soros porthoz külső szintváltó
áramkörrel. Alapértelmezett port sebességek: 115200, 9600 és 9600
bit/s, ezek az értékek a programban állíthatók be.
A konzol négy üzemmóddal rendelkezik, az első három csak megjelenítésre
használható, ezek előre programozottak, a negyedik az egyedi
megoldásoknak van fenntartva. A módok közötti jumperekkel
választhatunk. Ebben az alkalmazásban csak a MODE #3 használható.
Látogassa meg az eredeti oldalt
a többi üzemmóddal kapcsolatos információkért.
Működési módok:
MODE #3/0 | csak olvasható
mód, nincs kurzor, 20x4 méretű megjelenített terület,
a megjelenített lapok között a nyomógombokkal lapozhatunk,
a PB4 gombbal válthatunk alüzemmódot. |
MODE #3/1 | csak olvasható
mód, nincs kurzor, 20x4 méretű megjelenített terület,
a megjelenített lapok között a nyomógombokkal lapozhatunk,
a PB4 gombbal válthatunk alüzemmódot. |
MODE #3/2 | csak olvasható
mód, nincs kurzor, 20x4 méretű megjelenített terület 80x25
* méretű virtuális képernyőn, a megjelenített terület
vízszintesen és függőlegesen mozgatható a nyomógombokkal,
a PB4 gombbal válthatunk alüzemmódot, a PB5 gombbal állíthatjuk
meg a sorok automatikus görgetését. |
*: A virtuális képernyő mérete a programban beállítható.
Gombok funkciója:
gomb |
MODE #3/0 |
MODE #3/1 |
MODE #3/2 |
PB0 |
|
|
← |
PB1 |
|
|
→ |
PB2 |
Pg Up |
Pg Up |
↑ |
PB3 |
Pg Dn |
Pg Dn |
↓ |
PB4 |
alüzemmód váltása |
alüzemmód váltása |
alüzemmód váltása |
PB5 |
|
|
naplógörgetés tiltása |
Oldalak
Szoftver
Az eszközt működtető program az Arduino IDE fejlesztőrendszeren
készült. Ezt az alkalmazást először fel kell készíteni a Raspberry Pi
Pico-val való együttműködésre, amelyhez a leírás megtalálható az interneten:
(például itt).
Beállítás
A program telepítése előtt be kell állítania ezeket a fordítási direktívákat:
#define LCD_8BIT // enable 8 bit mode of the LCD
#define COM_USB // enable Serial #0 port
#define COM_TTL // enable Serial #1 port
#define COM_RS232C // enable Serial #2 port
// #define COM_USB_MESSAGES // enable console messages on Serial #0 port
// #define COM_TTL_MESSAGES // enable console messages on Serial #1 port
// #define COM_RS232C_MESSAGES // enable console messages on Serial #2 port
és állandókat:
const int lcd_bloffinterval = 60000; // LCD backlight off time
const byte lcd_xsize = 20; // horizontal size of display
const byte lcd_ysize = 4; //vertical size of display
const byte virtscreenxsize = 80; // horizontal size of virtual screen
const byte virtscreenysize = 25; // vertical size of virtual screen
const int com_speed[3] = {115200, 9600, 9600}; // speed of the USB serial port
Hogyan működik?
Indításkor a program inicializálja a soros portokat, és ha a konzol
üzenetek engedélyezve vannak, állapotüzenetet küld. Ezt követően
beállítja a GPIO portokat, törli a virtuális képernyőt és inicializálja
a kijelzőt. Beállítja saját működési módját a jumpereknek megfelelően
(JP2-3). A kijelzőn rövid információk jelennek meg a készülékről.
A program ezután folyamatosan figyeli az összes soros portot, a gombok
állapotát és az üzemmódválasztó jumperek állapotát. Ha az egyik porton
adat érkezik, a szoftver eldönti annak típusát. Ha ez egy egyszerű
szöveges naplófájl rekord, akkor azt tárolja a virtuális képernyőn
tárolja. Ha ez egy bináris csatornaadat, akkor azt a állapot és
felülírás tárolóban tárolja.
MODE #3/0-ban a szoftver a tárolt állapotadatokból, MODE #3/1-ben
a tárolt felülírási adatokból létrehozza az aktuális oldalt. MODE
#3/2-ben az LCD-kijelző a virtuális képernyő egy részét ablakként
jeleníti meg. Ez az „ablak” a gombokkal mozgatható. A virtuális
képernyő mérete és az „ablak” mozgatásának lehetősége a kiválasztott
módtól függ.
A program 60 másodpercnyi inaktivitás után kikapcsolja a
háttérvilágítást, majd visszakapcsolja, ha adat érkezik vagy egy gombot
megnyomnak.
A vezérlőkről bejövő adat
Bejövő (bináris) adat Mode #3-ban (CH #0)
byte |
funkció |
érték |
0: |
'C' |
0x43 |
|
|
|
1: |
'H' |
0x48 |
|
|
|
2: |
csatornamszám |
0x00 |
|
|
|
3: |
túláramvédelem hiba |
0x00: zárva |
0x01: nyitva |
|
|
4: |
vízszivattyú nyomáshiba (nincs víz) |
0x00: jó |
0x01: rossz |
|
|
|
5: |
vízszivattyú nyomáshiba (dugulás) |
0x00: jó |
0x01: rossz |
|
|
|
6: |
külső hőmérséklet °C-ban |
0x00-0x80 |
|
|
|
7: |
szivattyú és az első szelep állapota |
0x00: kikapcsolva |
0x01: bekapcsolva |
0x02: mindig kikapcsolva |
0x03: mindig bekapcsolva |
8: |
szivattyú és a második szelep állapota |
0x00: kikapcsolva |
0x01: bekapcsolva |
0x02: mindig kikapcsolva |
0x03: mindig bekapcsolva |
9: |
status of water pump and tube #3 |
szivattyú és a harmadik szelep állapota |
0x00: kikapcsolva |
0x01: bekapcsolva |
0x02: mindig kikapcsolva |
0x03: mindig bekapcsolva |
A: |
nem használt |
0x00 |
|
|
|
B: |
nem használt |
0x00 |
|
|
|
C: |
nem használt |
0x00 |
|
|
|
Bejövő (bináris) adat Mode #3-ban (CH #1-8)
byte |
funkció |
érték |
0: |
'C' |
0x43 |
|
|
|
1: |
'H' |
0x48 |
|
|
|
2: |
csatornaszám |
0x01-0x08 |
|
|
|
3: |
hőmérséklet °C-ban |
0x00-0x80 |
|
|
|
4: |
relatív páratartalom |
0x00-0x80 |
|
|
|
5: |
relatív nemkívánt gáz koncentráció |
0x00-0x80 |
|
|
|
6: |
működési mód |
0x00: átszövetés |
0x01: gomba |
0x7F: kikapcsolt csatorna |
|
7: |
kézi üzemmód |
0x00: automata |
0x01: kézi |
|
|
8: |
túláramvédelem hiba |
0x00: zárva |
0x01: nyitva |
|
|
9: |
ajtó állapota (riasztó) |
0x00: zárva |
0x01: nyitva |
|
|
A: |
világítás kimenet állapota |
0x00: kikapcsolva |
0x01: bekapcsolva |
0x02: mindig kikapcsolva |
0x03: mindig bekapcsolva |
B: |
ventilátor kimenet állapota |
0x00: kikapcsolva |
0x01: bekapcsolva |
0x02: mindig kikapcsolva |
0x03: mindig bekapcsolva |
C: |
fűtés kimenet állapota |
0x00: kikapcsolva |
0x01: bekapcsolva |
0x02: mindig kikapcsolva |
0x03: mindig bekapcsolva |
Bejövő (szöveges) naplóbejegyzés Mode #3-ban
Példa sorok:
"221213 114421 I Configuration is loaded."
"221213 114427 W CH2: MM6D is not accessible."
"221213 114427 E ERROR #18: There is not enabled channel!"
dátum (yymmdd) |
idő (hhmmss) |
szint |
rövid magyarázat |
221213 |
114421 |
I |
Configuration is loaded. |
221213 |
114427 |
W |
CH2: MM6D is not accessible. |
221213 |
114427 |
E |
ERROR #18: There is not enabled channel! |
Kezelőszervek és csatlakozók
1: | F1 biztosíték - tápfeszültség |
2: | J1 csatlakozó - tápfeszültség bemenet |
3: | J2 csatlakozó - TTL soros port |
4: | J3 csatlakozó - RS-232 soros port |
5: | J4 csatlakozó - nyomógombok |
6: | JP1 jumper - RESET |
7: | JP2-3 jumperek - üzemmódválasztó |
8: | USB csatlakozó |
Kapcsolási rajz
Polikarbonát fedlap
Letölthető anyagok
Működtető program