Mostrando postagens com marcador Automação. Mostrar todas as postagens
Mostrando postagens com marcador Automação. Mostrar todas as postagens

sexta-feira, 6 de setembro de 2019

Como Hackear Circuito Módulo Relé para funcionar com ESP8266 3.3V

Como Hackear Circuito Módulo Relé para funcionar com ESP8266 3.3V

Olá a Todos!!!

Fig. 1 - Módulo Relé alterado para trabalhar com ESP8266
No post de hoje, iremos fazer uma pequena alteração no circuito do módulo Relé que irá possibilita-lo a ser utilizado com o ESP8266 ou ESP32, pois os módulos de relé de 5 volts, não conseguem ser acionados por uma fonte de trigger de 3.3V, fazendo com que muitos se decepcionem depois que comprar sem saber que não vai funcionar, iremos fazer isso em um passo a passo de forma fácil e substituindo apenas um componente, o transistor PNP SMD 2TY por um transistor NPN de uso geral como os BCs, Cs, 2Ns e etc..

O Módulo

O módulo que temos é esse mostrado na figura 2 é um módulo de um só acionamento, ou seja, um relé independente, que é alimentado por 5V, então quando se utiliza um ESP8266 para acionamento de cargas com o módulo Relé, ele não responde, pois esse módulo so aciona o relé com uma tensão Trigger de 5V
Fig. 2 - Módulo Relé 1 canal 5V
Esse relé é ativado por um transistor PNP SMD 2TY que é o S8550, como podemos observa-lo na figura 3 logo abaixo, onde podemos ver a disposição dos componentes de perto.

Fig. 3 - Disposição dos componentes na placa do módulo original
Esse transistor tem uma tensão Vbe de 5 volts, e em série com a base ele tem um resistor de 1K limitador de corrente, como podemos observar no diagrama esquemático da  figura 4, mesmo se você colocar direto na porta do GPIO do ESP8266, "que não é recomendado" você não conseguirá ativar esse módulo, pois não terá corrente suficiente para ativar o Trigger do Módulo.
Fig. 4 - Diagrama Esquemático circuito original Módulo Relé

O Circuito Alterado

O que fizemos de primeiro foi, substituir o transistor por um transistor de uso comum, como os da linha BCs, Cs, 2Ns, e tantos outros que você pode escolher, o que é de fato importante é atentarmos a pinagem do transistor que você irá colocar na placa do módulo, nós escolhemos transistor NPN, por ser mais comum em nosso estoque e em placas de sucata, temos aos montes esses transistores de uso geral, podemos verificar na comparação entre os três módulos, o primeiro da esquerda é o original, sem alteração, o segundo está utilizando o transistor C945 e o terceiro da direita está utilizando o BC548, como podemos observar os transistores C945 e BC548 são diferenciado pela pinagem coletor e emissor, que são um inverso do outro, fazendo com que inverter-se-mos os lados dos transistores em cada módulo, a base de ambos é no pino central. ficando assim como ilustrado na figura 5 logo abaixo.
Fig. 5 - Os três módulos, da esquerda Original, do centro com C945 e da direita com BC548
Você pode colocar outro transistor do tipo PNP, e isso te daria até menos trabalho, pois não precisarias alterar praticamente nada no circuito. No nosso caso, com o transistor NPN, tivemos que inverter a alimentação do circuito, ou seja onde temos o Pino VCC, é agora GND, e onde temos o Pino GND, é agora VCC, e ainda tivemos que inverter o Diodo que é acoplado ao relé, e também inverter a polarização dos dois LEDs, como podemos ver no diagrama esquemático da  figura 6 logo abaixo.
Fig. 6 - Diagrama esquemático do circuito módulo relé alterado

O Funcionamento

O que diferencia o funcionamento do módulo com transistor PNP e transistor NPN em modos gerais, é  o acionamento da carga, ex.: O módulo normal "sem alteração" é ativado com pulso negativo, ou seja, ele fica ativo em quanto a porta GPIO estiver em Baixa "LOW", e ele desativa quando a porta GPIO estiver em Alta "HIGH". No nosso circuito o processo é inverso, o que denota, que ele trabalha de forma "normal", se a porta GPIO estiver em Alta, o relé será ativado e senão, o relé será desativado.

Convidamos você a assistir o nosso vídeo no nosso canal do youtube com esse tutorial passo a passo.

E por hoje é só, espero que tenham gostado!!!

Qualquer dúvida, digita nos comentários que logo estaremos respondendo.

Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!!

Forte abraço.

Deus vos Abençoe

Shalom



segunda-feira, 26 de agosto de 2019

Como Instalar a Biblioteca Blynk na IDE Arduíno

Como Instalar a Biblioteca Blynk na IDE Arduíno

Olá a Todos!!!

No post de hoje, nós iremos fazer um rápido passo a passo de como instalar a biblioteca do APP Blynk na IDE Arduíno.

Então vamos começar!!!

A biblioteca Blynk deve ser instalada manualmente, então vamos seguir esse passo a passo para não cometer nenhum erro.

1° Baixar

É necessário baixar a biblioteca do Blynk no site do GitHub, link abaixo.
Link direto Github oficial do blink: Click Aqui: GitHub
Irá aparecer essa janela para você como ilustrada na figura 2 abaixo:
Figura 2
Escolha a opção que está grifado e com a seta vermelha "Blynk_Realease_v0.6.1.zip" e baixe, logo depois descompacte o mesmo para podermos instalar.

2° Instalação

Após descompactar o arquivo Blynk_Release_v0.6.1.zip. Você notará que o arquivo contém várias pastas e várias bibliotecas. 
OBS.: Muitas vezes fazemos instalações da plataforma IDE Arduíno, e ficam pastas das antigas instalações, para não cometer erros, aconselhamos você encontrar a localização da sua pasta de bibliotecas direto no software da IDE, então; 

Vá para o menu superior na IDE Arduíno:
Selecione: Arquivo Preferências

Figura 3

Logo depois você verá na caixa de diálogo na aba:
Configurações Local do Sketchbook:
Na caixa de diálogo, você encontrará o endereço da biblioteca da IDE Arduíno.
Copie esse endereço

Figura 4

Abra o Windows Explorer, ou o Meu Computador
Na barra de endereço Cole o endereço que você copiou na IDE Arduíno, e pressione a tecla Enter


Figura 5

Dentro da pasta que você baixou e descompactou, virá duas pastas: libraries tools
Copie a pasta libraries para a pasta biblioteca da IDE Arduíno
Ficará assim como ilustrada na figura 6
Figura 6
Depois vá na pasta que você baixou novamente e Copie a pasta tools e Cole para a pasta tools da sua IDE Arduíno, como ilustrado na figura 7 abaixo.


Figura 7

Toda a estrutura da suas pastas da suas bibliotecas deverão ficar assim, junto com suas outras bibliotecas (se você os tiver):

Meu Computador / Disco Local / Arquivos de Programa(x86) / bibliotecas / Blynk
Meu Computador / Disco Local / Arquivos de Programa(x86) / bibliotecas / BlynkESP8266_Lib

Meu Computador / Disco Local / Arquivos de Programa(x86) / tools / BlynkUpdater
Meu Computador / Disco Local / Arquivos de Programa(x86) / tools / BlynkUsbScript

Lembrando que:
A pasta bibliotecas devem ir para bibliotecas e a pasta tools devem ir para tools

Você também pode acompanhar esse passo a passo em nosso canal no YouTube, logo abaixo.





Qualquer dúvida, digita nos comentários que logos estaremos respondendo.

Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!!

Forte abraço.

Deus vos Abençoe

Shalom

quarta-feira, 21 de agosto de 2019

NodeMCU ESP8266 Pinout GPIO, Pinagem

Pinout ESP8266 NodeMCU

O NodeMCU ESP8266 é um módulo que contem 30 pinos de entrada e saída, que são os GPIOs, e são eles os responsáveis pela leitura de sensores de entrada e comandos de saída para módulos de cargas externas. Segue abaixo a figura ilustrativa dos Pinos GPIOs e todos as suas descrições.

É importante ficar atento que nem todos as GPIOs estão acessíveis nas placas de desenvolvimento, agora, independente da placa de desenvolvimento que você estiver utilizando todas as GPIOs  funcionam especificamente da mesma maneira.

Qualquer dúvida, digita nos comentários que logos estaremos respondendo.

Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!!

Forte abraço.

Deus vos Abençoe

Shalom

terça-feira, 20 de agosto de 2019

Alarme de Segurança com Sensor PIR e ESP8266 - Sensor de Movimento

Alarme de Segurança com Sensor PIR e ESP8266 - Sensor de Movimento

Olá a Todos!!!


A tecnologia tem avançado a passos largos todos os dias, e o mundo moderno trás consigo esses avanços, todos os dias deparamos sem perceber com; sistemas automáticos de iluminação, portas automáticas em lojas e shopping, alarmes contra roubo em casas e estabelecimentos comerciais, dispositivos de descarga em mictórios e luzes automáticas nos banheiros e etc... E o ponto central dessa tecnologia, está em um equipamento "Sensor" conhecido como Sensor PIR.
E no post de Hoje, vamos fazer um sensor PIR se comunicar com o NodeMCU ESP8266, e detectar a presença de alguém, e ativar um alarme sonoro utilizando um Buzzer. Você também pode acompanhar o passo a passo em nosso vídeo que está disponível no final desse Post.

Sensor PIR HCSR501

O sensor PIR - Pyroelectric ou Passive Infrared Sensor - Sensor Piroelétrico ou Passivo Infravermelho. Ele e quem detectar a presença de qualquer corpo que emita ondas de calor e ondas infravermelhas, ele detectará  instantaneamente a presença de um "intruso"  e irá notificar através de um alarme, que pode ser uma campainha ou um buzzer, uma luz e etc. 

Buzzer

Existe dois tipos de Buzzer, um é o buzzer passivo, que é bastante conhecido e utilizado em campainha de cartões de natais, twitters, feito de piezo elétrico, e os ativos que tem a diferença de ter um circuito ativo que gera um sinal em uma determinada frequência gerando o som contínuo.
Esse é o iremos utilizar em nosso projeto, o ativo que tem suas tensão de funcionamento entre 3 à 24V, o que se encaixa perfeitamente em nosso projeto.

Controlador NodeMCU ESP8266

O NodeMCU é uma plataforma de IoT de código aberto. Inclui firmware que é executado no SoC ESP8266 Wi-Fi da Espressif Systems e hardware baseado no módulo ESP-12. O termo "NodeMCU" por padrão refere-se ao firmware em vez dos kits de desenvolvimento.

Funcionamento

O que iremos fazer aqui é utilizar o NodeMCU como controlador que irá receber um sinal digital do Sensor PIR, e irá processar essa informação e determinar o tempo que irá manter o Buzzer ativo, que será determinado pelo usuário que irá programar. 
A montagem do circuito é bastante simples, não requer nenhum alto nível de conhecimento, pois o sensor tem apenas 3 pinos: VCC - OUT - GND.
No NodeMCU só vai receber o sinal na porta D0 e vai responder através da porta D4 de saída para ligar um Buzzer, que você pode utilizar com um módulo relê e ligar uma luz por exemplo, um alarme, um led e etc.

Diagrama do Circuito

Como podemos ver no diagrama esquemático do circuito na figura 2, não teremos dificuldades alguma para executar a montagem.
Fig. 2 - Digrama esquemático Alarme de Segurança com Sensor PIR e ESP8266 - Sensor de Movimento

Lista de Materiais

  1. ESP8266
  2. Detector HCSR501 PIR. 
  3. Buzzer ativo

O Código

Código foi inscrito na plataforma Arduíno, e você pode utilizá-lo e modificá-lo de acordo com suas necessidades. Aconselhamos a você baixar o arquivo .ino que estamos disponibilizando, pois quando copiamos e colamos, dependendo do seu navegador, algumas acentuações saem diferente do que foi programado, por esse motivo disponibilizamos o código fonte para baixar no link abaixo.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//=============================================================================================// // Edited and Adapted by: Engineer Jemerson Marques, On: 26.03.2019 - FVM Learning website // // Available at: https://www.fvml.com.br and on Youtube channel // // https://www.youtube.com/c/FVMLearning - I hope you have fun - Good luck!!! // //---------------------------------------------------------------------------------------------// #define Pin_Alarm D4 // Buzzer alarm connected to GPIO-14 or D5 of nodemcu #define PIR_Sensor D0 // PIR sensor output connected to GPIO-5 or D1 of nodemcu int Waiting_Time = 5000; // Time that your buzzer stay on in milliseconds, exemple; 10000 is 10 seconds void setup() { pinMode(PIR_Sensor, INPUT); // PIR sensor as input pinMode(Pin_Alarm, OUTPUT); // Buzzer alaram as output digitalWrite(Pin_Alarm, LOW); // Initially buzzer off } void loop(){ int state = digitalRead(PIR_Sensor); // Continuously check the state of PIR sensor delay(500); // Check state of PIR after every half second if(state == HIGH){ digitalWrite (Pin_Alarm, HIGH); // If intrusion detected ring the buzzer delay(Waiting_Time); // Ring buzzer for time the you put in integer WaitTimer in seconds } else { digitalWrite (Pin_Alarm, LOW); // No intrusion Buzzer off } } //======================================== www.fvml.com.br ==================================================

Convido você para assistir o passo a passo da montagem e fizemos também os testes com o circuito, segue abaixo o nosso vídeo:

ARQUIVOS PARA BAIXAR:

Você também pode baixar o arquivo .ino  e o diagrama esquemático no link abaixo:
Link Direto: Arquivos para baixar


E por hoje é só, espero que tenham gostado!!!

Qualquer dúvida, digita nos comentários que logos estaremos respondendo.

Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!!

Forte abraço.

Deus vos Abençoe

Shalom


domingo, 11 de agosto de 2019

Comunicação entre 4 ESP8266 com central ESP com Roteador

Comunicação entre 4 ESP8266 com central ESP com Roteador

Olá a Todos!!!

No Post de hoje, iremos fazer a comunicação entre 4 ESP8266, sendo um deles a Central que receberá os comandos de cada ESP, identificará e ligará a carga correspondente a cada ESP, que no nosso caso, estamos utilizando LEDs para exemplificar, e todos conectado em seu Modem Roteador Wireless.

Para a realização deste procedimento, é necessário você já ter as bibliotecas do ESP instalada na IDE Arduíno.

Se você ainda não instalou. Veja o nosso Post:

Para darmos início, precisamos fazer a montagem de acordo com o esquemático na imagem ilustrativa, tanto o esquemático do CLIENT como o esquemático do SERVER.

Diagrama esquemático do Client

Todos os Clients são ligados da mesma forma, então quantos Clients você colocar, só estará limitado pelo tipo de Roteador que você tiver, pois as conexões serão feitas através do roteador, e a identificação de cada Client, é feito alterando no código o nome: Cliente 01, Cliente 02, Cliente 03 e etc.. O diagrama esquemático está disposto na Figura 2 Abaixo.
Fig. 2 - Diagrama esquemático do Client

Diagrama Esquemático do Server

O server utiliza 5 Leds no total, 4 leds externos conectados nas GPIO D0, D2, D3, D5, e o led Onboard, na própria placa, o led na porta D0, identifica se algum cliente conectou, se houve conexão em algum cliente, ele acende e mantem-se ativado, os leds das portas D2, D3 e D5 são as portas GPIO que recebe o comando e ativa cada porta de acordo com os três clientes, o diagrama esquemático está disposto na Figura 03 logo abaixo.
Fig 03 - Diagrama esquemático do Servidor
Se você é acostumado a fazer projetos com o ESP8266, já deve ter notado que não estou utilizando resistores, porque não é necessita utilizar resistores para ligar as chaves Micro Switch, pois podemos setar as portas de entrada dos ESPs com o comando Pull_Up, e assim evitar a utilização de resistores, e nos leds também não é necessário, pois as portas dos ESPs vão de 0 à 3,3v, e a alimentação da maioria dos leds é muito próximo a isso.

Depois de montado, verifique todas as conexões, as "portas" GPIO de saída para os LEDs, verifique a polarização do LEDs, para não estar invertida, pois se tiver invertida o mesmo não irá acender, verifique as GPIOs de entrada das Micro Switch, que deve seguir como no esquemático, um lado da chave vai para a porta que você programou, no nosso caso a porta é a D0 do ESP.

Logo abaixo temos o código completo da Central, e do Cliente para você copiar. Sempre aconselhamos você baixar o arquivo .ino direto pois dependendo do navegador, ele pode modificar as pontuações e as acentuações dando erro no código, por esse motivo deixamos no link abaixo os arquivos disposto para você baixar, para você que deseja melhorar os conhecimentos, temos o vídeo no nosso canal, "Está no final da página" que explicamos o básico do código Client e do Server.

Código Fonte do Servidor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
75
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
96
97
98
99
90
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
//===========================================================================================// // SERVER // // Adapted by: Engineer Jemerson Marques, On July 29, 2019 - by Engineer Jemerson Marques // // Communication between 4 ESPs with ESP8266 central with Router // // The code was edited and adapted for this project. // // Available in FVM Learning website: https://www.fvml.com.br and on // // Youtube channel https://www.youtube.com/c/FVMLearning - I hope you have fun - Good luck // //-------------------------------------------------------------------------------------------// //-- Libraries Included -------------------------------------------------------------- #include <ESP8266WiFi.h> //------------------------------------------------------------------------------------ // Define I/O Pins #define LED0 2 // WIFI Module LED #define LED1 D0 // Connectivity With Client #define LED2 D2 // Connectivity With Client #1 #define LED3 D3 // Connectivity With Client #2 #define LED4 D5 // Connectivity With Client #3 #define MAXSC 4 // MAXIMUM NUMBER OF CLIENTS //------------------------------------------------------------------------------------ // WIFI Module Config //------------------------------------------------------------------------------------ char ssid[] = "FVML"; // SSID of your home WiFi char pass[] = "fvmlearning"; // password of your home WiFi String Message; // VARIABLE RECEIVE DATA FROM OTHER CLIENTS WiFiServer server(80); // THE SERVER AND THE PORT NUMBER WiFiClient Clients[MAXSC]; // THE SERVER CLIENTS (Devices) IPAddress ip(192, 168, 25, 240); // IP address of the server IPAddress gateway(192, 168, 25, 1); // gateway of your network IPAddress subnet(255, 255, 255, 0); // subnet mask of your network //==================================================================================== void setup() { // Setting The Serial Port Serial.begin(115200); // Computer Communication WiFi.config(ip, gateway, subnet); // forces to use the fix IP WiFi.begin(ssid, pass); // connects to the WiFi router while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } server.begin(); // Setting The Mode Of Pins pinMode(LED0, OUTPUT); // WIFI OnBoard LED Light pinMode(LED1, OUTPUT); // Indicator For Client Connectivity pinMode(LED2, OUTPUT); // Indicator For Client Connectivity pinMode(LED3, OUTPUT); // Indicator For Client Connectivity pinMode(LED4, OUTPUT); // Indicator For Client Connectivity } //==================================================================================== void loop() { AvailableClients(); // Checking For Available Clients AvailableMessage(); // Checking For Available Client Messages } //==================================================================================== void AvailableClients() { if (server.hasClient()) { // Read LED0 Switch To Low If High. if (digitalRead(LED0) == HIGH) digitalWrite(LED0, LOW); digitalWrite(LED1, HIGH); // Light Up LED1 for (uint8_t i = 0; i < MAXSC; i++) { if (!Clients[i] || !Clients[i].connected()) //find free/disconnected spot { if (Clients[i]) // Checks If Previously The Client Is Taken { Clients[i].stop(); } if (Clients[i] = server.available()) // Checks If Clients Connected To The Server { Serial.println("New Client: " + String(i + 1)); } continue; // Continue Scanning } } //no free/disconnected spot so reject WiFiClient Clients = server.available(); Clients.stop(); } else { digitalWrite(LED0, HIGH); // This LED Blinks If No Clients Where Available delay(250); digitalWrite(LED0, LOW); delay(250); } } //==================================================================================== void AvailableMessage() { for (uint8_t i = 0; i < MAXSC; i++) //check clients for data { if (Clients[i] && Clients[i].connected() && Clients[i].available()) { while (Clients[i].available()) { Message = Clients[i].readStringUntil('\r'); Clients[i].flush(); ClientNumber(); Serial.println("Client No " + String(i + 1) + " - " + Message); } } } } // ================================================================================= void ClientNumber() { if (Message == "<Cliente 01-1>") { // Check client number, 01 = client 1, and after trace, status 1 = on, 0 = off digitalWrite(LED2, HIGH); } else if (Message == "<Cliente 01-0>") { digitalWrite(LED2, LOW); } if (Message == "<Cliente 02-1>") { digitalWrite(LED3, HIGH); } else if (Message == "<Cliente 02-0>") { digitalWrite(LED3, LOW); } if (Message == "<Cliente 03-1>") { digitalWrite(LED4, HIGH); } else if (Message == "<Cliente 03-0>") { digitalWrite(LED4, LOW); } } //======================================== www.fvml.com.br ================================================

Código Fonte do Client

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
75
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
96
97
98
99
90
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156

//===========================================================================================// // CLIENT // // Communication between 4 ESPs with ESP8266 central with Router // // Adapted by: Engineer Jemerson Marques, On July 29, 2019 - by Engineer Jemerson Marques // // The code was edited and adapted for this project. // // Available in FVM Learning website: https://www.fvml.com.br and on // // Youtube channel https://www.youtube.com/c/FVMLearning - I hope you have fun - Good luck // //-------------------------------------------------------------------------------------------// //------------------------------------------------------------------------------------ // Libraries Needed For This Project //------------------------------------------------------------------------------------ #include <ESP8266WiFi.h> // The Basic Function Of The ESP NOD MCU //------------------------------------------------------------------------------------ // Defining I/O Pins //------------------------------------------------------------------------------------ #define LED0 2 // WIFI Module LED #define LED1 D0 // Indicate Connectivity With Client #1 #define BUTTON D1 // Connectivity ReInitiate Button //------------------------------------------------------------------------------------ // WIFI Authentication Variables //------------------------------------------------------------------------------------ char ssid[] = "FVML"; // SSID of your home WiFi char pass[] = "fvmlearning"; // password of your home WiFi //------------------------------------------------------------------------------------ // WIFI Module Mode & IP //------------------------------------------------------------------------------------ IPAddress server(192, 168, 25, 240); // the fix IP address of the server WiFiClient client; //------------------------------------------------------------------------------------ // BUTTON Variables //------------------------------------------------------------------------------------ int ButtonState; int LastButtonState = LOW; int LastDebounceTime = 0; int DebounceDelay = 50; const String ClientType = "Cliente 01"; //------------------------------------------------------------------------------------ // LED Delay Variables //------------------------------------------------------------------------------------ int LEDState = LOW; unsigned long CurrMillis = 0; unsigned long PrevMillis = 0; unsigned long Interval = 1000; //==================================================================================== void setup() { // Setting The Serial Port ---------------------------------------------- Serial.begin(115200); // Computer Communication // Setting The Mode Of Pins --------------------------------------------- pinMode(LED0, OUTPUT); // WIFI OnBoard LED Light pinMode(LED1, OUTPUT); // Indicator For Client #1 Connectivity pinMode(BUTTON, INPUT_PULLUP); // Initiate Connectivity digitalWrite(LED0, HIGH); // Turn WiFi LED Off // Starting To Connect -------------------------------------------------- WiFi.begin(ssid, pass); // connects to the WiFi router if (WiFi.status() == WL_CONNECTED) { WiFi.disconnect(); WiFi.mode(WIFI_OFF); delay(50); } // Printing Message For User That Connetion Is On Process --------------- Serial.println("!--- Connecting To " + WiFi.SSID() + " ---!"); // WiFi Connectivity ---------------------------------------------------- CheckWiFiConnectivity(); // Checking For Connection // Stop Blinking To Indicate Connected ---------------------------------- digitalWrite(LED0, LOW); Serial.println("!-- Client Device Connected --!"); /*/ Printing IP Address -------------------------------------------------- Serial.println("Connected To : " + String(WiFi.SSID())); Serial.println("Signal Strenght : " + String(WiFi.RSSI()) + " dBm"); Serial.print ("Server IP Address : "); Serial.println(client); Serial.print ("Server Port Num : "); Serial.print ("Device MC Address : "); // Printing MAC Address Serial.println(String(WiFi.macAddress())); Serial.print ("Device IP Address : "); // Printing IP Address Serial.println(WiFi.localIP()); */ // Conecting The Device As A Client ------------------------------------- ESPRequest(); } //==================================================================================== void loop() { ReadButton(); } //==================================================================================== void ReadButton() // Reading The Button { int reading = digitalRead(BUTTON); if (reading != LastButtonState) // If It Doest Match The Previous State { LastDebounceTime = millis(); } if ((millis() - LastDebounceTime) > DebounceDelay) // To Iliminate Debounce { if (reading != ButtonState) { ButtonState = reading; if (ButtonState == LOW) { LEDState = !digitalRead(LED1); digitalWrite(LED1, LEDState); Serial.println ("<" + ClientType + "-" + LEDState + ">"); client.println ("<" + ClientType + "-" + LEDState + ">"); client.flush(); } } } LastButtonState = reading; // Last Button State Concidered } //==================================================================================== void CheckWiFiConnectivity() { Serial.print("Connecting"); while (WiFi.status() != WL_CONNECTED) { digitalWrite(LED0, !HIGH); delay(250); digitalWrite(LED0, !LOW); delay(250); Serial.print("."); } } void ESPRequest() { client.stop(); // First Make Sure You Got Disconnected // If Sucessfully Connected Send Connection Message if (client.connect(server, 80)); // Connection to the server { Serial.println ("<" + ClientType + "- CONNECTED>"); client.println ("<" + ClientType + "- CONNECTED>"); } } //=================================== www.fvml.com.br ===============================================

ARQUIVOS PARA BAIXAR:

Você também pode baixar o arquivo .ino  e o diagrama esquemático no link abaixo:
Link Direto: Arquivos para baixar

Para quem deseja ver o projeto completo, a explicação do código tanto do Client como do Server e ainda ver o funcionamento em vídeo, acesse o nosso vídeo abaixo e tenha uma boa diversão.




E por hoje é só, espero que tenham gostado!!!

Qualquer dúvida, digita nos comentários que logos estaremos respondendo.

Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!!

Forte abraço.

Deus vos Abençoe

Shalom

quarta-feira, 7 de agosto de 2019

Como Instalar Sistema Elétrico dispositivos Relé WiFi Sonoff para Automação

Como Instalar Sistema Elétrico dispositivos Relé WiFi Sonoff para Automação

Olá a todos!!!

No post de hoje, iremos fazer um passo a passo de Como Instalar o Sistema Elétrico do dispositivos Relé WiFi Sonoff para Automação, e mostraremos quais os dispositivos são compatíveis com o APP da E-WeLink, que é o APP que controla esses dispositivos, esse passo a passo também poderá ser aplicados para outros modelos de dispositivos Sonoff. Se você não sabe, ou deseja conhecer mais detalhes sobre o Sonoff, dê uma olhada no nosso POST:


Então vamos a instalação.

A instalação elétrica das ligações do dispositivo Sonoff são bastantes simples, porém, tenha muita precaução. 

Preste muita atenção: 
L N = Load and Neutral. 

Para nós:"Brasil"
F N = Fase e Neutro
Os cabos L, N de Entrada de energia "que vem da sua rede" devem se conectar com o lado “INPUT”.
Os cabos L, N de Saída de energia "que alimentará os seus eletro-eletrônicos" devem se conectar com o lado "OUTPUT".
Lembre-se de NÃO confundir as instruções!

Para evitar qualquer problema de segurança, por favor, siga as instruções conexão da fiação elétrica como segue na figura 1 abaixo:
Fig. 1 - Ligações Elétrica Dispositivo Sonoff
Não existe polaridade para as ligações pois elas são do tipo AC "Alternada".  Porém para se fazer uma ligação SEGURA, é aconselhável que você conecte os terminais da sua rede elétrica da maneira que está apresentado na figura 1.

Rele WIFI Sonoff só desliga uma linha dos dois fios, o "L" que é o fase, ou seja a outra linha fica ligado direto, então se você inverter, quem será desligado será o NEUTRO e não o FASE. 

O aplicativo: E-WeLink

O APP E-WeLink tecnicamente suporta todos os produtos ITEAD Smart Home e além dos produtos Itead ele suporta vários outros produtos de fabricantes diferentes, listamos abaixo alguns dos principais produtos Itead:
  • Interruptor Inteligente WI-FI
  • Interruptor Inteligente RF
  • Dispositivo Sonoff TH
  • Dispositivo Sonoff SV
  • Lâmpada  Inteligente Slampher
  • Tomada  Inteligente
  • Interruptor Medidor De Energia e Tensão
  • Ventilador Inteligente
  • Led dimerizado, etc.
Listamos abaixo algumas das principais funções de comandos suporta  pelo APP E-WeLink são várias as funções, porém listamos as principais e as mais corriqueiras:
  • Ligar / desligar remotamente
  • Status de tomadas remota
  • Dimerização
  • Status de rastreamento
  • Tempo e horários
  • Compartilhamento de dispositivos 
  • Gerenciamento de agrupamentos 
  • Cenas inteligente. 

INSTALAÇÃO DO APP E-WeLink

  1. Vá ao Goggle Play no seu Smartphone, baixe o APP do eWeLink, se você não encontrar, deixamos a opção para baixar Clicando AQUI. Você também tem a opção de utilizar o QR CODE apontando o seu Smartphone, para o QR CODE na caixa do Sonoff para fazer o download do eWeLink.
  2. Instale o aplicativo em seu Smartphone "Passos padrões como qualquer outro APP"
  3. Registre uma nova conta. Você precisará digitar seu número de telefone e senha (pelo menos 8 caracteres). Insira a confirmação por SMS código para registrar. 
  4. Entre com sua conta.
E pronto já pode ir se divertindo com esse maravilhoso mundo da automação!!!

E por hoje é só, espero que tenham gostado!!!

Qualquer dúvida, digita nos comentários que logos estaremos respondendo.

Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!! isso nos ajuda bastante.

Forte abraço.

Deus vos Abençoe

Shalom

sexta-feira, 19 de julho de 2019

Web Server com ESP8266 - Controlando Dispositivos Remotamente

Web Server com ESP8266 - Controlando Dispositivos Remotamente

Olá a todos!!!


No post de hoje, iremos criar um simples Servidor Web que irá hospedar uma página da web e controlar qualquer dispositivo remotamente de qualquer lugar do mundo. Iremos utilizar o módulo NodeMCU, que é nada menos que o ESP8266, com alguns recursos de comunicação via USB, o que facilita a nossa montagem, você pode utilizar qualquer tipo de ESP8266, o Wemos, 12E, ESP01, qualquer um funcionará. Saiba mais sobre os módulos ESP e suas características no link abaixo.

Conhecendo ESP8266, Especificações e comparações com ESP32 e Arduino

Iremos também utilizar a  IDE Arduíno para realizarmos a programação, e utilizaremos o ESP no modo AP - Access Point e o modo STA - Station.
Se você não instalou as bibliotecas na IDE Arduíno, você pode dar uma olhada no passo a passo que temos em nosso post, clicando no link abaixo.

Instalando Biblioteca do Modulo ESP8266 na IDE Arduíno

Com esse projeto, podermos controlar uma carga, como por exemplo, motores, ventiladores, luz, Ar-condicionado, ou qualquer outro tipo de carga que você desejar, utilizando apenas um módulo simples de Relay, para exemplificar utilizaremos um LED na saída, e o NODEMCU - ESP8266, que será programado como um Servidor Web. Iremos acessar o conteúdo em uma página WEB de um navegador qualquer, pois o software é inscrito em HTML, e hospedada no Servidor ESP, ele será a interface de controle que iremos programar na IDE Arduíno.

O design

O design elaborado é bastante simples, porém depende do quanto você é conhecedor da linguagem HTML, pois a parte de gráfica é feita utilizando a HTML e CSS, se você tem afinidade com essa linguagens, podes elaborar um design mais sofisticado, porém, para nossa ilustração, fizemos esse design básico, como mostrado nas figuras abaixo. O dispositivo inicializa com os botões no modo Desligado Figura 3, então quando pressionamos qualquer tecla, ele muda seu estado de Desligado para Ligado e o Status na parte superior dos botões mudam de OFF para ON confirmando que o dispositivo que você colocou na porta D0 ou D1 foi ativado, e vice-versa.

Fig. 2 - Botão 01 Ligado
Fig. 3 - Botões Desligados
Fig. 4 - Botões Ligados



















O que é Web-server e como ele funciona?

Um Servidor Web é o local onde são armazenadas as páginas da Web, e através de um programa que utiliza protocolo HTTP (Hypertext Transfer Protocol) para processá-los e entregá-los aos clientes da Web, em resposta às suas solicitações, essas solicitações podem advim de um navegador em nosso Computador, Tablet, Smartphone, ou qualquer outro tipo de navegação, a comunicação inicia-se através de uma solicitação de uma determinada página da Web usando a solicitação HTTP GET e o Servidor responde com o conteúdo dessa página da web. 

O Código Web Server

Logo abaixo temos o código escrito na IDE Arduíno. Nós aconselhamos a você baixar no link direto que estamos disponibilizando logo abaixo do código, porém, depois de baixar, você deve substituir o SSID que é o nome da sua rede, e o PASSWORD, que é a senha da sua rede. Se precisar, podes mudar as portas de saída dos LEDs, que no nosso caso, estamos utilizando as portas D0 e D1 para os LED1 e LED2.

//==================================================================================//
// Adapted by: Engineer Jemerson Marques, On: 14.07.2019 - FVM Learning website     //
// Available at: https://www.fvml.com.br and on Youtube channel                     //
// https://www.youtube.com/c/FVMLearning - I hope you have fun - Good luck          //
//----------------------------------------------------------------------------------//

//------------------------------------------------------------------------------------
// Libraries Needed For This Project
//------------------------------------------------------------------------------------
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

//------------------------------------------------------------------------------------
// WIFI Module Config, SSID and PASSWORD
//------------------------------------------------------------------------------------

//WiFiServer server(80);

IPAddress ip(192, 168, 25, 240);           // IP address of the server
IPAddress gateway(192, 168, 25, 1);        // gateway of your network
IPAddress subnet(255, 255, 255, 0);        // subnet mask of your network

const char* ssid = "your ssid";            // Enter SSID here
const char* password = "your password";    // Enter Password here

ESP8266WebServer server(80);

//------------------------------------------------------------------------------------
// Defining I/O Pins
//------------------------------------------------------------------------------------
#define   LED1      D0        // LED 1
#define   LED2      D1        // LED 2
bool      LED1_State = LOW;
bool      LED2_State = LOW;

//=====================================================================================
void setup() {
  Serial.begin(115200);
  delay(100);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);

  Serial.println("Connecting to ");
  Serial.println(ssid);

  //connect to your local wi-fi network
  WiFi.config(ip, gateway, subnet);       // forces to use the fix IP
  WiFi.begin(ssid, password);

  //check wi-fi is connected to wi-fi network
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected..!");
  Serial.print("Got IP: ");  Serial.println(WiFi.localIP());

  server.on("/", handle_OnConnect);
  server.on("/led1on", handle_led1on);
  server.on("/led1off", handle_led1off);
  server.on("/led2on", handle_led2on);
  server.on("/led2off", handle_led2off);
  server.onNotFound(handle_NotFound);

  server.begin();
  Serial.println("HTTP server started");
}

//=====================================================================================================
void loop() {
  server.handleClient();
  if (LED1_State)
  {
    digitalWrite(LED1, HIGH);
  }
  else
  {
    digitalWrite(LED1, LOW);
  }

  if (LED2_State)
  {
    digitalWrite(LED2, HIGH);
  }
  else
  {
    digitalWrite(LED2, LOW);
  }
}

//===================================================================================================
void handle_OnConnect() {
  LED1_State = LOW;
  LED2_State = LOW;
  Serial.println("GPIO16 Status: OFF | GPIO5 Status: OFF");
  server.send(200, "text/html", SendHTML(LED1_State, LED2_State));
}

void handle_led1on() {
  LED1_State = HIGH;
  Serial.println("GPIO7 Status: ON");
  server.send(200, "text/html", SendHTML(true, LED2_State));
}

void handle_led1off() {
  LED1_State = LOW;
  Serial.println("GPIO7 Status: OFF");
  server.send(200, "text/html", SendHTML(false, LED2_State));
}

void handle_led2on() {
  LED2_State = HIGH;
  Serial.println("GPIO6 Status: ON");
  server.send(200, "text/html", SendHTML(LED1_State, true));
}

void handle_led2off() {
  LED2_State = LOW;
  Serial.println("GPIO6 Status: OFF");
  server.send(200, "text/html", SendHTML(LED1_State, false));
}

void handle_NotFound() {
  server.send(404, "text/plain", "Not found");
}

//===========================================================================================================
String SendHTML(uint8_t led1stat, uint8_t led2stat) {
  String fvml = "<!DOCTYPE html> <html>"
                "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">"
                "<title>LED Control</title>"
                "<style>html { font-family:  Helvetica; display: inline-block; margin: 0px auto; text-align: center;}"
                "body{background: linear-gradient(to bottom, #000066 0%, #000099 100%); margin-top: 50px;} h1 {color: #00cc00;margin: 50px auto 30px;}"
                "h3 {color: #00cc00;margin-bottom: 50px;}h4 {color: #ffd699;margin: 50px auto 30px;}"
                ".button {display: block;width: 110px;background-color: #1abc9c;border: none;color: white;padding:"
                "13px 30px;text-decoration: none;font-size: 25px;margin: 0px auto 35px;cursor: pointer;border-radius: 4px;}"
                ".button-on {background-color: #9494b8;}"
                ".button-on:active {background-color: #ff471a;}"
                ".button-off {background-color: #0066ff;}"
                ".button-off:active {background-color: #2c3e50;}"
                "p {font-size: 14px;color: #888;margin-bottom: 10px;}"
                "</style>"
                "</head>"
                "<body>"
                "<h1>CONTROLE DE DISPOSITIVOS REMOTO</h1>"
                "<h3>FVM Learning</h3>\n";

  if (led1stat) {
    fvml += "<p>Dispositivo 1 Status: ON</p><a class=\"button button-off\" href=\"/led1off\">Ligado</a>\n";
  } else {
    fvml += "<p>Dispositivo 1 Status: OFF</p><a class=\"button button-on\" href=\"/led1on\">Desligado</a>\n";
  }

  if (led2stat) {
    fvml += "<p>Dispositivo 2 Status: ON</p><a class=\"button button-off\" href=\"/led2off\">Ligado</a>\n";
  } else {
    fvml += "<p>Dispositivo 2 Status: OFF</p><a class=\"button button-on\" href=\"/led2on\">Desligado</a>\n";
  }
    fvml += "<h4><em>By: Eng. Jemerson Marques</em></h4>\n"
            " <p style='color:green;'> To more about this, visit us - <a href='https://www.fvml.com.br'style='color:green'>FVM Learning</a>.</p>\n"
            "</body>\n"
            "</html>\n";
  return fvml;
}


ARQUIVOS PARA BAIXAR:

Você também pode baixar os arquivos .ino  e o diagrama esquemático no link abaixo:
Link Direto: Arquivos para baixar

E por hoje é só, espero que tenham gostado!!!

Qualquer dúvida, digita nos comentários que logos estaremos respondendo.

Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!!

Forte abraço.

Deus vos Abençoe

Shalom