Sterowanie ESP za pomocą aplikacji na Androida część 2

Ten artykuł zaprezentuje Ci w jaki sposób można za pomocą aplikacji na Androida przesłać zmienną z jakąś zawartością do ESP.


Lista potrzebnych elementów:

  • Płytka z ESP8266 (w przykładzie użyty WeMos D1 Mini)
  • Dowolne urządzenie z Androidem

 

Dzisiaj dołożymy kolejne elementy do naszej aplikacji oraz kodu które pozwolą nam na to żeby zdecydować po jakim czasie ma automatycznie zgasnąć nasza dioda.
A więc zacznijmy od dodania elementów „slider” oraz „button” oraz ustawia ich zgodnie z poniższymi zrzutami ekranu.

W ustawieniach „Slider1” należy zmienić MaxValue z 100 na 5000.

Następnie musimy przejść do edytora bloków i w nim połączyć odpowiednio funkcje zgodnie z załączonym poniżej zrzutem ekranu.

Następnie zmodyfikujemy kod z poprzedniej części tak aby była także możliwość zapalania diody na określony czas.

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
char* ssid = "Nazwa_sieci_WiFi";
const char* password = "Haslo_sieci_WiFi";
unsigned int i;
ESP8266WebServer server(80);

unsigned int exposure();
void handleRoot();
void handleNotFound();
int ZMIENNA, CZAS;
void setup(void) {
	Serial.begin(115200);
	pinMode(D4, OUTPUT);
	WiFi.begin(ssid, password);
	Serial.println("");
	while (WiFi.status() != WL_CONNECTED) {
		delay(500);
		Serial.print(".");
	}
	Serial.println("");
	Serial.print("Connected to ");
	Serial.println(ssid);
	Serial.print("IP address: ");
	Serial.println(WiFi.localIP());
	if (MDNS.begin("dslr")) {
		Serial.println("MDNS responder started");
	}

	server.on("/", handleRoot);

	server.begin();
	Serial.println("HTTP server started");
}
void loop(void) {
	server.handleClient();
}

boolean led = false;
void handleRoot() {
	if (server.arg("ZMIENNA") != NULL) {
		ZMIENNA = server.arg("ZMIENNA").toInt();
		Serial.println("Odebrano ZMIENNA:");
		Serial.println(ZMIENNA);
		if (led == true)
		{
			digitalWrite(D4, LOW);
			led = false;
		}
		else
		{
			digitalWrite(D4, HIGH);
			led = true;
		}
	}
	if (server.arg("CZAS") != NULL) {
		CZAS = server.arg("CZAS").toInt();
		Serial.println("Odebrano CZAS:");
		Serial.println(CZAS);
		digitalWrite(D4, LOW);
		delay(CZAS);
		digitalWrite(D4, HIGH);
	}
	server.send(200, "text/html", "Ok");
}

Jak widać w ten sposób możemy do ESP przesyłać w prosty sposób różne parametry.