Spis treści
- Opis
- Projekt GUI
3. Schemat obwodu
- Code
- Wideo
Opis
W tym projekcie zaprojektujemy zegar i system automatyki, za pomocą którego będziemy mogli włączać lub wyłączać oświetlenie w domu, a także zegar, który pokaże godzinę i datę.
Do tego używamy Wyświetlacz TFT (STONE-HMI), ten wyświetlacz ma oprogramowanie, które jest oprogramowaniem GUI, z tą pomocą zaprojektujemy interfejs, który będzie zawierał zarówno zegar sekcji, jak i automatykę. Pobierz oprogramowanie GUI kliknij tutaj
Projektowanie części zegara :-
Najpierw zaprojektujmy część zegara, najpierw musimy dodać wszystkie obrazy, które są podane w folderze kliknij tutaj.
Jak widać po lewej stronie, wszystkie obrazy zostały dodane w sekcji pliku obrazu. Teraz kliknij obraz „14”, a zobaczysz ten interfejs, jak widać na obrazku. Teraz wybierz „RTC” z konfiguracji dotykowej, aby ustawić czas i datę i wykonaj całą konfigurację dla tego najpierw dodaj obraz „na stronie” jako obraz numer 6, który będzie używany w momencie ustawiania. Teraz przejdź do obrazu numer 6 i dodaj wszystkie przyciski i ich wartości kluczy. być w tym formacie.
Dla „1” — 0031
Dla „2” — 0031
Dla „3” — 0031
Dla „4” — 0031
Dla „5” — 0031
Dla „6” — 0031
Dla „7” — 0031
Dla „8” — 0031
Dla „9” — 0031
Dla „0” — 0030
Dla „OK” – 00F1
Następnie dodaj efekt przycisku jako obrazek nimber-7 dla wszystkich przycisków, dzięki czemu w tej części zostanie wykonane ustawienie zegara. Przejdźmy dalej, aby stworzyć wskazówki zegara.
Podobnie dodaj zegar wybierania od góry i dodaj wszystkie ,godziny,minuty i sekundy dla tego najpierw musimy zrobićikony dla tych wskazówek, więc w tym celu przejdź do generatora ikon i wybierz te obrazy, znajdziesz nowy folder w sekcji z „pliku ikon” stąd musisz wybrać wszystkie ikony zgodnie z wymaganiami wskazówek. Następnie wybierz wszystkie ikony zgodnie z wymaganiami wskazówek zegara i nie zapomnij wybrać środka każdej wskazówki zegara, za pomocą tej procedury zostanie to zrobione teraz musimy przejść do części automatyzacji i do tego dodaliśmy symbol automatyzacji, jak widać na powyższym obrazku, dla tego przycisku wyboru i umieścić ten przycisk w obszarze tej ikony automatu, a następnie wybierz ' przełącznik strony' jako obraz-1, ponieważ jest to obraz do automatyzacji, po czym wybierz obraz-1 do dalszego projektowania.
Projektowanie części automatyki :-
Zaprojektujmy do tego część automatyzacji, wymagaliśmy od Arduino wysłania określonej wartości klucza przez adres, tutaj używamy „0001” dla wszystkich wartości klucza. Dla przycisku Fan (ON) wysyłamy wartość klucza „0001”, a dla Fan (OFF ) wysyłamy wartość klucza '0002', podobnie wysyłamy dla wszystkich poszczególnych wartości dla wszystkich urządzeń. Tutaj dodaliśmy również przycisk do przełączania na GUI zegara, który pomoże przejść z tego interfejsu do interfejsu zegara.
Do przełączania stron używamy 'przycisku', który znajduje się po lewej stronie u góry, a do przycisku automatyzacji używamy funkcji 'powrót naciśnięcia wartości klawisza', która ma dwa parametry, pierwszy to wartość adresu, a drugi to wartość klucza, jak wspomnieliśmy powyżej, jesteśmy przy użyciu różnych wartości klucza dla każdego przycisku automatyzacji.
Schemat obwodu
Jak widać w połączeniu, są trzy diody LED light-1, light-2, a dla Fan tutaj używamy tylko diod LED, ale można do nich podłączyć rzeczywiste urządzenia. Light-1 łączy się z pinem -D6 Arduino, light- 2 połącz się z pinem D7 Arduino, podobny wentylator połącz z D5 z Arduino. I wykonaj połączenie dla Rx i Tx zgodnie ze schematem obwodu. Tutaj połączyliśmy Tx z pinem-2 i Rx z pinem-3 Arduino jako na kod Arduino. Przejdźmy dalej, jak to działa z kodem.
Istnieją różne rodzaje komunikacji szeregowej. Kiedy używasz płytki Arduino w projekcie, możesz wybrać standardowe piny szeregowe jako serial oprogramowania Arduino Rx Tx, z UART wewnątrz płyty Arduino, więc nazywa się to Serial TTL. W takim przypadku korzystamy z biblioteki sprzętowej serial.h, ale niektóre dodatkowe piny mogą działać jako Rx lub Tx. Na przykład piny komunikacyjne SPI mogą działać jako MISO, MOSI i Select (SC), ale są to również piny, które mogą działać jako wejście cyfrowe lub wyjście cyfrowe, a jeśli zajdzie taka potrzeba, możesz użyć tych pinów jako Rx, Tx za pomocą oprogramowania szeregowego .h Biblioteka.
Przejdźmy dalej, aby dowiedzieć się, jak działa kod.
Kod :-
#włączać //programowa biblioteka szeregowa
OprogramowanieSerial max232(2,3);
dane znakowe;
ciąg znaków;
int f = 5; // Pin dla Fana
int l1 = 6; // Pin dla światła-1
int l2 = 7; // Pin dla światła-2
void setup ()
{
Serial.begin(115200); //Tutaj szybkość transmisji wynosi 115200
max232.początek (115200);
pinMode(f, WYJŚCIE);
digitalWrite(f, NISKI);
pinMode(l1, WYJŚCIE);
digitalWrite(l1, NISKI);
pinMode(l2, WYJŚCIE);
digitalWrite(l2, NISKI);
}
void loop ()
{
jeśli (max232.available()>0)
{
dane = max232.odczyt();
mystring = mystring + bajt(dane) ;
opóźnienie (10);
}
else if (mystring.endsWith(“101”)) //warunek WŁĄCZENIA WENTYLATORA
{
mystring = „”;
digitalWrite(f,WYSOKI);
}
else if (mystring.endsWith(“102”)) //warunek WYŁĄCZENIA WENTYLATORA
{
mystring = „”;
digitalWrite(f,NISKI);
}
else if (mystring.endsWith(“103”)) //warunek dla Light-1 ON
{
mystring = „”;
digitalWrite(l1,WYSOKI);
}
else if (mystring.endsWith(“104”)) //warunek dla Light-1 OFF
{
mystring = „”;
zapis cyfrowy(l1,LOW);
}
else if (mystring.endsWith(“105”)) //warunek dla Light-2 ON
{
mystring = „”;
digitalWrite(l2,WYSOKI);
}
else if (mystring.endsWith(“106”)) //warunek dla Light-2 OFF
{
mystring = „”;
zapis cyfrowy(l2,LOW);
}
else if (mystring.endsWith(“107”)) //warunek dla WŁĄCZENIA wszystkich urządzeń
{
mystring = „”;
digitalWrite(l1,WYSOKI);
digitalWrite(l2,WYSOKI);
digitalWrite(f,WYSOKI);
}
else if (mystring.endsWith(“108”)) //warunek dla WYŁĄCZENIA wszystkich urządzeń
{
mystring = „”;
zapis cyfrowy(l1,LOW);
zapis cyfrowy(l2,LOW);
digitalWrite(f,NISKI);
}
}
Pracujący :-
Jak omówiliśmy, używamy biblioteki oprogramowania szeregowego do przeniesienia wartości klucza na adres, w tym celu dodaliśmy w tym kodzie daje to interfejs do podłączenia wyświetlacza Arduino i STON-HMI. Następnie zadeklarujemy wszystkie piny wyjściowe, których używamy dla diod LED i wentylatora, dla tych urządzeń zadeklarowaliśmy te piny jako WYJŚCIE, a następnie ustawiliśmy szybkość transmisji dla biblioteki oprogramowania-serial. wszystko to zostało zrobione w części konfiguracji void, teraz przejdźmy do warunku dla używanych urządzeń, ta część jest dodawana w pętli void, ponieważ będzie to powtarzać się wiele razy, gdy naciśniemy na wyświetlaczu.
W sekcji void loop znajdują się cztery warunki dla urządzeń. Pierwszy warunek dotyczy włączenia i wyłączenia wentylatora, tutaj wysyłamy wartość klucza „0001” dla warunku włączenia i „0002” dla warunku wyłączenia przez adres „0001” ten adres jest to samo dla wszystkich urządzeń.Dla drugiego urządzenia, które jest dla światła-1, wysyłamy „0003” dla stanu włączenia i „0004” dla stanu wyłączenia, podobnie dla światła-2 „0005” dla stanu włączenia i „0006” dla stanu wyłączenia, więc w ten sposób warunki te działają dla pojedynczego urządzenia.
Jest jeszcze jeden warunek, aby wyłączyć lub włączyć wszystkie urządzenia jednocześnie, w tym celu używamy „0007” dla WŁĄCZENIA i „0008” dla WYŁĄCZENIA.
Wyjście wideo:-
To jest wideo wyjściowe tego projektu w tym filmie, pokazujące najpierw konfigurację zegara i działa automatyzacja, jak widać na filmie.
To jest wyjściowe wideo, które możesz pobrać, klikając ten film. Dodaliśmy wszystkie dane z tym związane, jeśli masz jakiekolwiek wątpliwości dotyczące projektowania GUI, możesz pobrać plik projektu i otworzyć go bezpośrednio, w tym przypadku nie musisz zaprojektuj dowolny GUI, otrzymasz projekt, który zbudowaliśmy. Ale jeśli chcesz zaprojektować inny GUI, musisz wykonać wszystkie kroki.
Code
//Więcej informacji na temat tego projektu można znaleźć na stronie:- www.electrocircuit.net //
#zawierać
OprogramowanieSerial max232(2,3);
dane znakowe;
ciąg znaków;
intf = 5;
int l1 = 6;
int l2 = 7;
void setup ()
{
Serial.begin (115200);
max232.początek (115200);
pinMode(f, WYJŚCIE); /////////CZERWONY////////
digitalWrite(f, NISKI);
pinMode(l1, WYJŚCIE); ////////ZIELONY///////
digitalWrite(l1, NISKI);
pinMode(l2, WYJŚCIE); ///////NIEBIESKI/////////
digitalWrite(l2, NISKI);
}
void loop ()
{
jeśli (max232.available()>0)
{
dane = max232.odczyt();
mystring = mystring + bajt(dane) ;
opóźnienie (10);
}
else if (mystring.endsWith(„101”))
{
mystring = „”;
digitalWrite(f,WYSOKI);
}
else if (mystring.endsWith(„102”))
{
mystring = „”;
digitalWrite(f,NISKI);
}
else if (mystring.endsWith(„103”))
{
mystring = „”;
digitalWrite(l1,WYSOKI);
}
else if (mystring.endsWith(„104”))
{
mystring = „”;
zapis cyfrowy(l1,LOW);
}
else if (mystring.endsWith(„105”))
{
mystring = „”;
digitalWrite(l2,WYSOKI);
}
else if (mystring.endsWith(„106”))
{
mystring = „”;
zapis cyfrowy(l2,LOW);
}
else if (mystring.endsWith(„107”))
{
mystring = „”;
digitalWrite(l1,WYSOKI);
digitalWrite(l2,WYSOKI);
digitalWrite(f,WYSOKI);
}
else if (mystring.endsWith(„108”))
{
mystring = „”;
zapis cyfrowy(l1,LOW);
zapis cyfrowy(l2,LOW);
digitalWrite(f,NISKI);
}
}
Źródło: Plato Data Intelligence