Font Size

Fala galera, tudo beleza?

O post de hoje,  veio com intuito de exemplificar uma aplicação básica e simplória da IoT, partindo de um principio para automatizar sua casa, empresa, laboratório ou apenas por diversão mesmo.

Caso a seu modem, roteador apresente algum problema( travamento), o que nos garantiria que ele voltaria a funcionar sem aquele reset fundamental?

Com isso, através de componentes simples e baratos, que todo maker deve ter, automatizar o reset de seu modem/roteador para resolver aquele velho problema de travamento.

Vamos aos trabalhos!

Materiais Utilizados:

Montagem: 

  • Não podemos esquecer que, para o roteador iniciar ligado devemos conectar o pino NC(Normally Closed) – Normalmente Fechado , em tradução livre.

Para saber mais sobre o módulo relé, dê uma olhadinha nesse post aqui.

Código Comentado:

#include <ESP8266WiFi.h>


float id = 1; // Declaração de uma variavel de identificação
const char* ssid = "sua-rede"; // Nome e senha da sua rede wifi
const char* password = "sua-senha";
WiFiServer server(80);

IPAddress ip(192,168,x,x); //Configuração de IPFixo no seu dispositivo ESP8266
IPAddress gw(192,168,x,x);
IPAddress sub(255,255,xxx,x);
//IPAddress dns(123,456,xxx,x);

int rele = 2; //GPI02 // Declaração da porta digital do relé

void setup() {


Serial.begin(9600);
pinMode(rele, OUTPUT); // Declara o relé como uma saída
delay(10);
Serial.println();
Serial.println();
Serial.print("Conectando à");
Serial.println(ssid);

WiFi.begin(ssid, password);
WiFi.mode(WIFI_STA); // torna o ESP8266 apenas um ponto "Station"(Sem acesso à conexões)
WiFi.config(ip,gw,sub);
Serial.println(WiFi.localIP());

while (WiFi.status() != WL_CONNECTED) {
for(int i = 0 ; i<=20 ; i++);

delay(500);

Serial.println(".");

if(i>=20){
digitalWrite(rele, !digitalRead(rele)); // caso o laço, ultrapasse o limite de 20, entra na condição de resetar, através do "desarme" do relé(desligando o roteador)
delay(30000);
digitalWrite(rele, !digitalRead(rele)); // Aguarda 30s, e "arma" o relé, ligando o modem/roteador


}
}

Serial.println("");
Serial.println("WiFi conectado");

server.begin();
Serial.println("Server iniciou");
Serial.println(WiFi.localIP());
}

void loop() {
if (!client) {
return;
}

Serial.println("NOVO CLIENTE");
while(!client.available()){
for(int i = 0 ; i<10 ; i++);

delay(1500);

Serial.println(".");

if(i>=10){
digitalWrite(rele, !digitalRead(rele));
delay(30000);
digitalWrite(rele, !digitalRead(rele));

}
} 
String req = client.readStringUntil('\r'); 
Serial.println(req); 
//client.flush(); 
String buf = ""; 
buf += id; // envia o menor caracter possivel, para um webserver para fins de verificação de conexão.
client.print(buf); 
//client.flush(); 
Serial.println("Cliente desconectado"); 
delay(10000); //Espera 10s para que todo o ciclo se repita.
}

Conclusão:

Uma introdução básica à IoT, facilitando para quem deseja reiniciar o roteador, sem ter que colocar a mão rs.

É interessante sua aplicação, à modem WiFi/3G que necessitam ser reinciados, praticamente todos os modelos, à cada 24h.

O que acharam? Legal? Divertido? Um tédio?

Deixe seu comentário ai embaixo, seu joinha no nosso Facebook – e não perca o nosso próximo post.

CYA :D.

4.00 avg. rating (85% score) - 1 vote