Obertura de porta des de telèfon mòbil

Publicat per Albert el

Un projecte força senzill d’implementar però de molta utilitat és la opció de controlar l’obertura d’una porta, en aquest cas d’un pàrking mitjançant un telefon mòbil.

El podem implementar com a sistema principal o bé com a reserva del comandament habitual, és gens intrusiu, tenim les 2 opcions alhora.

A més, si la instal·lació que tenim ja té un pulsador que habitualment es monta en les portes de pàrking, per la part interior, per obrir la porta, ens facilita encara més la feina, doncs no caldrà que anem a actuar al motor de la porta sinó que aprofitarem aquest pulsador per incorporar el nostre sistema.

Material necessari:

Les plaques com la mini D1, basades en el chip ESP8266, han suposat una autèntica revolució en l’escena “maker”, ja que ens permet disposar de Wifi, ja sigui com a client o com a servidor, d’una forma senzilla i barata.

La instal.lació és ben senzilla :

Només hem de connectar la placa del esp8266 al relé, i aquest al circuit del pulsador o motor de la porta.

En aquest projecte, configurarem el Wifi del mini D1 com a servidor, és a dir, no el connectem a internet ( que també seria una bona opció, si volem controlar la porta desde qualsevol lloc)

La placa ens crea un mini-servidor web, on caldrà que ens connectem després de configurar la xarxa i password. Aquest ens presenta una web on podem posar-hi el botó que cridarà l’acció del relé.

Des del telèfon, connectem a la xarxa wifi que hem configurat i en el navegador web anem a http://192.168.4.1

/* Create a WiFi access point and provide a web server on it. */

#include <ESP8266WiFi.h>
#include <WiFiClient.h> 
#include <ESP8266WebServer.h>

int porta = D1;// PIN Relé porta

/* Set these to your desired credentials. */
const char *ssid = "XARXA";
const char *password = "password";

ESP8266WebServer server(80);

/* Just a little test message.  Go to http://192.168.4.1 in a web browser
 * connected to this access point to see it.
 */
//Our HTML webpage contents in program memory
const char MAIN_page[] PROGMEM = R"=====(
<!DOCTYPE html>
<html>
<body>
<center>
<h1>CONTROL PORTA GARATGE</h1><br>
<form>
<input style="width: 300px; padding: 20px; cursor: pointer; box-shadow: 6px 6px 5px; #999; -webkit-box-shadow: 6px 6px 5px #999; -moz-box-shadow: 6px 6px 5px #999; font-weight: bold; background: #ffff00; color: #000; border-radius: 10px; border: 1px solid #999; font-size: 150%;" type="button" value="PORTA" onclick="window.location.href='ledOn'" />
</form>
</center>
</body>
</html>
)=====";

void handleRoot() {
 Serial.println("You called root page");
 String s = MAIN_page; //Read HTML contents
 server.send(200, "text/html", s); //Send web page
}

void handleLEDon() { 
 digitalWrite(LED_BUILTIN,LOW); //LED is connected in reverse
 digitalWrite(porta,HIGH); //reverse
 delay(800);
 digitalWrite(LED_BUILTIN,HIGH); //LED is connected in reverse
 digitalWrite(porta,LOW); //
 server.send(200, "text/html", "<BR><BR><BR><h1>ACCES CORRECTE!<BR> COMPTE, PORTA <BR>EN MOVIMENT !</H1> "); 
 WiFi.disconnect();
 }

void setup() {
  delay(1000);
  Serial.begin(115200);
  Serial.println();
  Serial.print("Configuring access point...");
  WiFi.softAP(ssid, password);

  IPAddress myIP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(myIP);
  server.on("/", handleRoot);
  server.on("/ledOn", handleLEDon); //as Per  <a href="ledOn">, Subroutine to be called
  server.begin();
  Serial.println("HTTP server started");
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(porta, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH);
  digitalWrite(porta, LOW);
}

void loop() {
  server.handleClient();
}

Ben senzill i d’una utilitat extraordinària


0 comentaris

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *