W tym artykule zajmiemy się obsługą dostępnego na platformie ADEAS APP widgetu przyciski. Widok ten umożliwia zero-jedynkowe sterowanie naszymi punktami pomiarowymi, które następnie możemy wykorzystać w wielu przykładach jak chociażby sterowanie napięciem danych czy kontrola warunków w naszym kodzie. W ramach tego artykułu wykorzystamy nasz widok do prostego programu w ramach którego będziemy naprzemiennie zapalać i gasić diody w zależności od aktualnego stanu przycisku. Dodatkowo widget ten zawiera funkcję zapamiętywania stanu przycisków więc nawet w przypadku odświeżenie strony, czy wyłączenia naszego widgetu, stany naszych punktów pomiarowych zostaną zapamiętane i odpowiednio dostosowane przy kolejnym uruchomieniu naszego urządzenia ADEAS UNO.
Stwórzmy wobec tego dla naszego urządzenia trzy nowe punkty pomiarowe o typie danych Boolean, który przechowuje wartości logiczne true i false oraz ustawmy wartość domyślną jako false. Nazwy punktów pomiarowych są dowolne, natomiast na potrzeby tego artykułu możemy je nazwać led_1, led_2 i led_3.
Jeżeli uda nam się poprawnie dodać wszystkie punkty pomiarowe, nasze tabela z punktami powinna się przedstawiać następująco:
Mając gotowe punkty pomiarowe możemy przejść do stworzenia naszego widgetu. Korzystając z istniejącego już lub gotowego dashboardu, stwórzmy nowy widget wybierając z listy opcję przyciski.
Klikając w przyciski edytuj, dodajmy punkty pomiarowe do naszego widgetu. W przypadku tego widoku w opcji dodawania punktów pomiarowych pojawia się nowa zakładka o nazwie Ikona przycisku. Daje ona nam możliwość wyboru jednej z wielu dostępnych ikon i pełni jedynie rolę dekoracyjną. Z racji, że w tym artykule jako praktyczny przykład wykorzystamy diody LED, dlatego najlepszą opcją będzie wybranie ikony o nazwie "Ligtbulb".
Gotowy do zapisu widget przedstawia się następująco:
Po poprawnej konfiguracji ujrzymy nasz widget z trzema przyciskami które po naciśnięciu zmieniają swój wygląd i na tym etapie stan naszych przycisków już jest zapamiętywany i nie zmieni się nawet po odświeżeniu strony.
Na tym etapie nasz widget jest już gotowy do użytku, więc pozostaje nam jedynie napisanie odpowiedniego kodu. Przejdźmy więc do naszego środowiska Arduino IDE. Stwórzmy nowy szkic i wgrajmy do niego poniższy kod:
#include <ADEAS.h>
#define LED_1 4
#define LED_2 5
#define LED_3 6
/**** SETUP ****/
void setup() {
ADEAS::setup("WIFI_SSID", "WIFI_PASS", "TOKEN");
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode(LED_3, OUTPUT);
}
/**** LOOP ****/
void loop() {
ADEAS::process();
if (API::getLastSet("led_1") == "1") {
digitalWrite(LED_1, HIGH);
} else {
digitalWrite(LED_1, LOW);
}
if (API::getLastSet("led_2") == "1")) {
digitalWrite(LED_2, HIGH);
} else {
digitalWrite(LED_2, LOW);
}
if (API::getLastSet("led_3") == "1") {
digitalWrite(LED_3, HIGH);
} else {
digitalWrite(LED_3, LOW);
}
}
Pamiętaj o uzupełnieniu funkcji ADEAS::SETUP o odpowiednie dane!
Przeanalizujmy sobie teraz nasz kod krok po kroku:
#define LED_1 4
#define LED_2 5
#define LED_3 6
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode(LED_3, OUTPUT);
Ustawienie stanu naszych pinów na wyjście.
if (Variables::get("led_1")) {
digitalWrite(LED_1, HIGH);
} else {
digitalWrite(LED_1, LOW);
}
if (Variables::get("led_2")) {
digitalWrite(LED_2, HIGH);
} else {
digitalWrite(LED_2, LOW);
}
if (Variables::get("led_3")) {
digitalWrite(LED_3, HIGH);
} else {
digitalWrite(LED_3, LOW);
}
Funkcja API::getLastSet("nazwa_zmiennej") zwraca nam aktualną wartość domyślną zmiennej podanej w argumencie. Wobec tego jeżeli przycisk jest wciśnięty to warunek zostanie spełniony i wykona się funkcja digitalWrite(LED_1, HIGH), która ustawi nam napięcie na diodzie w przeciwnym wypadku dioda zgaśnie.
Stwórzmy teraz nasz układ z wykorzystaniem 3 diód led o dowolnych kolorach. Schemat podłączenia prezentuje się następująco :
Jeżeli udało nam się poprawnie podłączyć nasz układ możemy wgrać program i zacząć korzystać z naszego widgetu przyciski.