Mostrando postagens com marcador ESPs. Mostrar todas as postagens
Mostrando postagens com marcador ESPs. Mostrar todas as postagens

sexta-feira, 18 de outubro de 2019

Como utilizar o Botão Flash do NodeMCU ESP8266

Como utilizar o Botão Flash do NodeMCU ESP8266 

Olá a Todos!!!


Fig. 1 - Utilizando Botão Flash com NodeMCU
Muitas vezes precisamos fazer testes, programando o NodeMCU quando a ótima ideia daquele projeto que veio de repente em nossas mentes, porém o trabalho que temos em estar colocando o NodeMCU em uma Protoboard, conectando os rabichos para as conexões com a chave tipo botão, ligar os rabichos para conectar o Led, e tudo para testar uma ideia que vem na cabeça, e muitas vezes deixamos para depois, daí, terminamos por esquecer aquela boa e repentina ideia que nos sobreveio... :( 

No Post de hoje, iremos aprender a fazer uma simples código no programa do NodeMCU ESP8266 utilizando a IDE Arduíno para podermos utilizar o botão que tem embarcado na placa do NodeMCU como mostrado na figura 1 acima.
Pois imagine você que para fazer um simples teste com um botão e um Led, precisaríamos de 4 rabichos uma protoboard um Led e uma chave, um pequeno teste necessitaria de 8 componentes, como mostrado na figura 2 abaixo.
Fig. 2 -  Utilizando o Botão Flash do NodeMCU ESP8266














A princípio o que precisamos saber é em qual porta está definida o botão Flash do NodeMCU, como fazemos com o led embarcado no módulo NodeMCU.
Seguindo o datasheet do próprio NodeMCU, vemos que a Botão Flash está conectado a GPIO0.
De posse desse conhecimento, podemos definir na sketch do programa a definição da porta D3, que é associado a GPIO0.
Como podemos ver no exemplo do código abaixo, definimos o BUTTON na porta D3, e da mesma forma, setamos o Led do próprio módulo NodeMCU, e chamamos de LedBoard, você pode utilizar qualquer tipo de nome para ele.

//------------------------------------------------------------------------------------
// Defining I/O Pins
//------------------------------------------------------------------------------------
#define       LedBoard   2                             // WIFI Module LED
#define       BUTTON     D3                            // NodeMCU Button


Logo abaixo temos o código completo, que é bastante simples só para seguirmos de exemplo, você pode acrescentar, alterar e utilizar em seu projeto sem problemas algum.


//==================================================================================//
// How to use NodeMCU ESP8266 Flash Button                                          //
// Created by: Engineer Jemerson Marques, On: 18.10.2019 - FVM Learning website     //
// Available at: https://www.fvml.com.br                                            //
//----------------------------------------------------------------------------------//

//------------------------------------------------------------------------------------
// Defining I/O Pins
//------------------------------------------------------------------------------------
#define       LedBoard   2                             // WIFI Module LED
#define       BUTTON     D3                            // NodeMCU Button

//====================================================================================
void setup() {
  Serial.begin(115200);                                // only for debug
  Serial.println("");                                  // only for debug
  pinMode(LedBoard, OUTPUT);                           // Initiate the Onboard Led Output
  pinMode(BUTTON, INPUT_PULLUP);                       // Initiate the ESP Pin: INPUT_PULLUP - Its mean that you no need put a resistor
  digitalWrite(LedBoard, HIGH);                        // Initiate the Onboard Off
  Serial.println("ESP Inicializado com sucesso");      // only for debug
}

void loop() {                 
  if(digitalRead(BUTTON) == LOW){
    digitalWrite(LedBoard, !digitalRead(LedBoard));
    delay(300);
    Serial.println("Botão Pressionado");
  }
}


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, 22 de setembro de 2019

Comunicação entre 2 ESPs8266 Ponto a Ponto - Peer-to-Peer - Sem Roteador

Comunicação entre 2 ESPs8266 Ponto a Ponto - Peer-to-Peer - Sem Roteador

Olá a Todos!!!

Baseado em um outro post que fizemos a comunicação direta Ponto a Ponto entre dois ESPs com a utilização de um roteador, que você também pode conferir nesse post do link abaixo:

Comunicação e Controle entre Dois ESPs8266 Ponto a Ponto - Peer-to-Peer

O que faremos hoje, é fazer essa mesma comunicação, no entanto não iremos fazer a utilização de um Roteador para executar essa comunicação, um dos ESPs irá ser uma AP Access Point no modo STA Station, quer será o Servidor e receberá a conexão do Client, que se conectará ao Station e irá comandar a Carga "LED" do Servidor, e o Servidor irá também comandar a Carga do Client, ou seja ambos acionarão as cargas um do outro independente de qualquer conexão, será uma conexão direta, Ponto a Ponto, Peer to Peer,  entre os dois ESP.

Fig. 1 - Comunicação entre 2 ESPs8266 Ponto a Ponto - Peer-to-Peer - Sem Roteador

FUNCIONAMENTO

A princípio o funcionamento básico da comunicação entre os dois ESPs, criamos um ESP como um AP "Ponto de Acesso" no modo Station, que será o Servidor, e outro ESP como uma  STA "Estação"que será o nosso Client. Em seguida, eles estabelecerão uma comunicação direta pois o nosso AP, fornece um IP Fixo para o Client STA se conectar.
Utilizamos o LED e o Botão Flash embarcado no próprio NodeMCU, isso ajuda a realizarmos testes sem ter que fazer alguma conexão com dispositivos externos, utilizamos os parâmetros de definição para setarmos essas portas tanto do LED embarcado, chamado no código de LedBoard, quanto o botão Flash, chamado de BUTTON,  como podemos ver abaixo.
#define       LedBoard  2                    // WIFI Module LED
#define       BUTTON    0                    // NodeMCU Flash-Button

Logo após no Void Setup, definimos os Pinos com a função pinMode para o led com OUTPUT e o botão definimos com a função INPUT_PULLUP, isso faz com que o ESP8266 utilize o resistor de Pull Up interno do próprio Microcontrolador, como podemos visualizarmos no código abaixo.
  pinMode(LedBoard, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);

Sendo assim, o Cliente envia um comando através da chave "Flash-Button" para o Servidor, e quando o Servidor receber esse comando através da própria conexão Wi-Fi que ele fornece, ele ligará a carga definida, "que utilizamos o LED embarcado como exemplo". Da mesma forma, o Servidor envia um comando para o Cliente, e quando o Cliente receber esse comando, ele ligará a carga definida no LED Embarcado, como definido no código.

Para podermos dar prosseguimento a esse projeto, pré-supomos que você já tenha instalado as bibliotecas na IDE do Arduíno, se não instalou, sugerimos a você que veja nosso outro Post:Instalando Biblioteca do Modulo ESP8266 na IDE Arduíno

Se você já instalou, vamos prosseguir...

Os Códigos

Logo abaixo temos os códigos tanto do Server, que é um AP - Access Point, e Station, quanto do outro ESP no modo STA - Station, ambos seguem os mesmos princípios,

Server_Comunic_ESP_P2P_No_Router

//==================================================================================//
// SERVER                                                                           //
// Communication Between 2 ESPs8266 Peer-to-Peer - No Router                        //
// Adapted by: Engineer Jemerson Marques, On: 21.09.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 <SPI.h>
#include <ESP8266WiFi.h>                     // The Basic Function Of The ESP NOD MCU


//------------------------------------------------------------------------------------
// WIFI Module Config
//------------------------------------------------------------------------------------
char ssid[] = "FVML";                        // SSID of your ESP Server
char pass[] = "fvml1234";                    // password of your ESP Server
WiFiServer server(80);

  IPAddress ip(192, 168, 10, 40);            // IP address of the server
  IPAddress gateway(192, 168, 10, 1);        // gateway of the server
  IPAddress subnet(255, 255, 255, 0);        // subnet mask of the server

//------------------------------------------------------------------------------------
// Defining I/O Pins
//------------------------------------------------------------------------------------
#define       LedBoard  2                    // WIFI Module LED
#define       BUTTON    0                    // NodeMCU Flash-Button

//====================================================================================
void setup() {
  Serial.begin(115200);                      // Only for debug
  
  WiFi.mode(WIFI_AP_STA);                    // Need both to serve the webpage and take commands via tcp

  WiFi.softAPConfig(ip, gateway, subnet);
  WiFi.softAP(ssid, pass);                   // Access point password and identification
  delay(500);
  Serial.print("AP IP address: ");
  Serial.println(ip);
  server.begin();                            // Starts the server

//------------------------------------------------------------------------------------
// Serial Network parameters - Only for debug
//------------------------------------------------------------------------------------  
  Serial.println("ESP Server Initialized - FVML");
  Serial.print("IP: ");       Serial.println(WiFi.softAPIP());
  Serial.print("SSID: ");     Serial.println(WiFi.SSID());
  Serial.print("Signal: ");   Serial.println(WiFi.RSSI());

  pinMode(LedBoard, OUTPUT);                // Initiate the Onboard Led Output
  pinMode(BUTTON, INPUT_PULLUP);            // Initiate the ESP Pin: INPUT_PULLUP - Its mean that you no need put a resistor
  digitalWrite(LedBoard, HIGH);             // Initiate the Onboard Led Off
}

void loop() {
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  String request = client.readStringUntil('\r');
  client.flush();

  if (request == "I am Transmitter") {
    digitalWrite(LedBoard, !digitalRead(LedBoard));
    Serial.print("Data Received: "); Serial.println(request);
    delay(200);
  }

  int reading = digitalRead(BUTTON);
  if (reading == LOW) {
    client.print("I am Receiver\r");
    delay(200);
  }
  client.println("Receiver\r");      // sends the answer to the client
  delay(100);
}
//============================================== www.fvml.com.br =============================================================

Client_Comunic_ESP_P2P_No_Router

//==================================================================================//
// CLIENT                                                                           //
// Communication Between 2 ESPs8266 Peer-to-Peer - No Router                        //
// Adapted by: Engineer Jemerson Marques, On: 21.09.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 <SPI.h>
#include <ESP8266WiFi.h>                             // The Basic Function Of The ESP NODEMCU

//------------------------------------------------------------------------------------
// Defining I/O Pins
//------------------------------------------------------------------------------------
#define       LedBoard   2                           // WIFI Module LED
#define       BUTTON     0                           // NodeMCU Button

//------------------------------------------------------------------------------------
// WIFI Authentication Variables
//------------------------------------------------------------------------------------
char ssid[] = "FVML";                                 // SSID of your ESP Server
char pass[] = "fvml1234";                             // password of your ESP SEVER
  
//------------------------------------------------------------------------------------
// WIFI Module Mode & IP
//------------------------------------------------------------------------------------
IPAddress server(192,168,10,40);                      // the fix IP address of the server
WiFiClient client;

//====================================================================================
void setup() {
  pinMode(LedBoard, OUTPUT);                           // Initiate the Onboard Led Output
  pinMode(BUTTON, INPUT_PULLUP);                       // Initiate the ESP Pin: INPUT_PULLUP - Its mean that you no need put a resistor
  digitalWrite(LedBoard, HIGH);                        // Initiate the Onboard Led Off
 
  Serial.begin(115200);                                // only for debug
  Serial.println("");
  Serial.print("Awaiting connection: ");
  WiFi.begin(ssid, pass);                              // connects to the WiFi router
  while (WiFi.status() != WL_CONNECTED) {
  Serial.print(".");
  digitalWrite(LedBoard, LOW);
  delay(250);
  digitalWrite(LedBoard, HIGH);
  delay(250);
  }
  digitalWrite(LedBoard, HIGH);
  
//------------------------------------------------------------------------------------
// Network parameters - Only for debug
//------------------------------------------------------------------------------------
  Serial.println("");
  Serial.println("ESP Client Connected - FVML");
  Serial.print("IP: ");       Serial.println(WiFi.softAPIP());
  Serial.print("SSID: ");     Serial.println(WiFi.SSID());
  Serial.print("Signal: ");   Serial.println(WiFi.RSSI());
}
//====================================================================================
void loop() {
 
  ContinuousConnection();
}
//====================================================================================

 void ContinuousConnection(){
  client.connect(server, 80);                          // Connection to the server
  ReadButton();                                        // Read Button from Transmitter
 }
//====================================================================================

void ReadButton() {
  int reading = digitalRead(BUTTON);                   // Read the Button State
  if (reading == LOW) {                                // If the button pressed
    client.print("I am Transmitter\r");                // Send messege "I am Transmitter" To Server
    delay(200);
   }else{
   ClientContinue(); 
  } 
}

//====================================================================================
void ClientContinue(){
  client.println("Transmmiter");                      // sends the message to the server
  String answer = client.readStringUntil('\r');       // receives the answer from the sever
  client.flush();
  
  if (answer == "I am Receiver") {                    // compares if the response of the receiver is equal to 'I am Receiver'
    digitalWrite(LedBoard, !digitalRead(LedBoard));   // if it changes the status of the LED
    Serial.println("Data Received: " + answer);
    delay(200);                                       // client will trigger the communication 200 milliseconds
  }
}
//============================================== www.fvml.com.br =============================================================

ARQUIVOS PARA BAIXAR:

Você também pode baixar os arquivos .ino do código de programa no link abaixo:
Link Direto: Arquivos para baixar


Você também pode assistir esse tutorial passo a passo no nosso canal do youtube




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


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