Pesquisar

AFSmartRadio Tranceiver 915Mhz Lora

AFSmartRadio Tranceiver 915Mhz Lora Módulo AFsmart Lora V1.0 montado Arduino Pro-Mini e Rádio Rf4463PRO A Internet das coisas (...

Controle saída Módulo AFSmart ESP8266 ESP-01


Controle saída Módulo AFSmart ESP8266 ESP-01


Exemplo de Aplicação Web com a placa Desenvolvimento AFSmart 1 Rele um pulsador ESP8266 ESP-01 desenvolvido pela AFEletrônica 


Módulo Desenvolvimento ESP8266 ESP-01

Especificações Módulo Desenvolvimento
Tensão de operação: 100~240Vac @ 50-60Hz
Contatos: NA, 1 NF e o Comum.
Corrente Contatos Rele: 28 VDC ~ 10A ou 125VAC ~ 10A.
Led’s indicadores: Alimentação/Rele acionado
Dimensões: 47,2mm x 47,7mm x 20mm

Este módulo possibilita conexão direta do Conversor USB-Serial ao módulo de Desenvolvimento, sem necessidade de conexão de jumpers. Conexões muito mais limpa e rápida para desenvolvimento de suas aplicações, isso usando os conversores fornecidos pela AFEletrônica, mas caso já possua um conversor, basta seguir a pinagem TX/RX/GND e conectar ao módulo..

Botão Reset e Program direto na placa, tudo o que você precisa em uma única placa para você pensar no desenvolvimento do software e não perder tempo com montagens e mau contatos.
Cuidado
Energia Elétrica pode matar, desligue a alimentação geral para manuseio, use os equipamentos de segurança individual



Proposta de Conexão de Carga ao módulo AFSmart 1Rele e 1 Pulsador



Instalando o Driver PL2303 caso adquirido junto com o produto AFSmart - procedimento para o driver em específico. Para demais driver realize a instalação conforme orientação do fabricante.
Abra propriedades de seu computador/Gerenciador de Dispositivos, para verificar se o mesmo não foi reconhecido automaticamente pelo Windows.




Importante.Caso tenha reconhecido automaticamente, procure enviar sua aplicação pela IDE do Arduino, se não houver sucesso no envio, o mesmo pode estar desatualizado, desinstale e instale a versão mais atual do driver. Sempre atente para a versão de seu Windows, 32 ou 64 bits, de forma a instalar do driver correto. Instale o driver sem a placa estar conectada ao computador, uma vez realizada a instalação do driver, caso necessário reinicie o computador, após conecte a placa para o reconhecimento automático da mesma. Escolhendo a Placa na IDE Escolha a placa ESP8266 conforme imagem abaixo.

Em porta escolha a serial que foi atribuída à placa. Caso apareça mais de uma COM em Porta, Vá até gerenciador de dispositivos do Windows, desconecte a placa, conecte novamente para verificar a serial a ser escolhida em Porta


Módulo desenvolvido e testado na  versão IDE Arduino 1.6.12, versões superiores não testado.

Se sua IDE não possuir a placa ESP8266, instale seguindo o seguinte procedimento:

  1. Em Arquivos\Preferências no em laranja adicione o seguinte caminho: http://arduino.esp8266.com/stable/package_esp8266com_index.json


1.1-    Em Ferramentas\BoadManager clique na opção em laranja:


1.2-    Vá até ao final, clique para realizar a instalação das placas ESP8266



Pronto sua IDE esta pronta para trabalhar com módulos ESP8266

Para enviar seu código para o módulo, a mesma deve estar alimentada, não basta somente conectar  à porta USB do computador.

Enviando sua aplicação ao módulo AFsmart ESP8266 ESP-01
1. Pressione e segure simultaneamente os botões RESET e PGM
2. Solte o Botão RESET mantendo PGM pressionado
3. Solte Botão PGM
4. ... Pronto envie sua aplicação, o módulo já esta no modo de receber sua aplicação.
5. Nota Atente à pinagem de seu conversor USB-Serial que pode ser diferente se não foi adquirido junto com o produto.


Pinout Módulo



PIN
Descrição
Função
Leitura/Escrita
1
TX
TX
Comunicação Serial
2
GND
GND
-
3
CH_PD
CHPD
-
4
GPIO_2
PULSADOR
Leitura Nível Baixo
5
RESET
RESET
-
6
GPI0_0
RELE
Aciona Nível Baixo
7
Vcc
Vcc
3V3
8
RX
RX
Comunicação Serial

Código exemplo controle Rele com o módulo AFSmart.

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


const char *ssid = "SSID da sua rede"; //  SSID da sua rede
const char *password = "senha da sua rede"; // senha da sua rede

IPAddress ip(192,168,1,33); // ip atribuido ao módulo
IPAddress gateway(192,168,1,1); // base ip da sua rede
IPAddress subnet(255,255,255,0);

WiFiServer server(80); // porta para entrada externa
const int rele1 = 0;
const int  pulsador = 2;
boolean estado_pulsador = HIGH;
String header;

const char* APssid = "AF ELETRONICA"; // para mudar o nome da placa na rede
const char* APpassword = "12345678"; // senha para conexão à placa

// the following variables are long's because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long lastDebounceTime = 0;  // the last time the output pin was toggled
long debounceDelay = 50;    // the debounce time; increase if the output flickers
int buttonState;             // the current reading from the input pin
int lastButtonState = LOW;   // the previous reading from the input pin


void setup ( void ) {

  pinMode ( rele1, OUTPUT );
  digitalWrite ( rele1, 1 );
  
  pinMode(pulsador,INPUT);

// Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("creating ");
  Serial.println(APssid);
  
  //WiFi.softAP(APssid);
  int channel = 2;
  WiFi.softAP(APssid, APpassword, channel);
  WiFi.begin(ssid, password);
  WiFi.config( ip,  gateway,  subnet);
  

  Serial.begin ( 115200 );
  delay(10);

  Serial.println();
  Serial.println();
  Serial.print("Conectando a...");
  Serial.println();
  Serial.println(ssid);
  
  
WiFi.begin ( ssid, password );
Serial.println ( "" );

// Wait for connection
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 500 );
Serial.print ( "." );
}

Serial.println ( "" );
Serial.print ( "Connected a " );
  Serial.println();
Serial.println ( ssid );

  server.begin();
  Serial.print ( "Server Inicializado" );
  Serial.println();
Serial.print ( "IP address: " );
Serial.println ( WiFi.localIP() );

  

}

void loop ( void ) {
   int estado_pulsador= digitalRead(pulsador);
   //String buf = "";
    int estado_rele1 = digitalRead(rele1);
   // Serial.println(estado_rele1);


    // If the switch changed, due to noise or pressing:
   if (estado_pulsador != lastButtonState) {
    // reset the debouncing timer
    lastDebounceTime = millis();
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {
    // whatever the reading is at, it's been there for longer
    // than the debounce delay, so take it as the actual current state:

    // if the button state has changed:
    if (estado_pulsador != buttonState) {
      buttonState = estado_pulsador;

      // only toggle the LED if the new button state is HIGH
      if (buttonState == LOW) {
        digitalWrite(rele1,!digitalRead(rele1));
      }
    }
  }

  lastButtonState = estado_pulsador;

 // Listenning for new clients
  WiFiClient client = server.available();


  if (client) {
    Serial.println("Novo Cliente");
       
    // bolean to locate when the http request ends
    boolean blank_line = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        header += c;
      // String req = client.readStringUntil('\r');
      // Serial.print(req);
  
        if (c == '\n' && blank_line) {
              // Serial.print(header);
          
                    client.println("HTTP/1.1 200 OK");
            client.println("Content-Type: text/html");
            client.println("Connection: close");
            //client.println("Refresh: 10");  // refresh the page automatically every 10 sec
            client.println();
            client.println("<!DOCTYPE HTML>");
            client.println("<html>");

            client.println("");
            
               
                
                 String buf = "";
                
                  
                  //buf += "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\n";
                
                    buf += "<head>\r\n";
                    buf += "   <title>esp8266 webserver</title>\r\n";
                    buf += "</head>\r\n";
                    buf += "<body>\r\n";
                    buf += "<h1><a href=\"http://www.afeletronica.com.br/wireless-ct-8f6da\"><span style=\"color:#000000;\">ESP8266</span></a></h1>\r\n";
                
                  
                  buf += "<h3> ESP8266 Web Server by AFELetronica</h3>";
                  buf += "<p>RELE1 <a href=\"?function=Rele1_on\"><button>ON</button></a> <a href=\"?function=Rele1_off\"><button>OFF</button></a></p>";
                 // buf += "<p>RELE2 <a href=\"?function=Rele2_on\"><button>ON</button></a> <a href=\"?function=Rele2_off\"><button>OFF</button></a></p>";
                  buf += "<h4>AFELetronica</h4>";
                  buf += "</html>\n";
                  
                 //  client.println ("<button style=\"width:300px;height:40px;color:green;background-color:#87CEFB\"");
                 client.print(buf);
                
               // buf +=("<button style=\"width:300px;height:40px;color:green;background-color:#87CEFB\"");
                // client.println("<button style=\"width:120px;height:40px;color:green;background-color:#87CEFB\"");
           
                  //client.flush();

                  if (header.indexOf("Rele1_on") != -1){
                    digitalWrite(rele1, 0);
                     }
                     
                  else if (header.indexOf("Rele1_off") != -1){
                    digitalWrite(rele1, 1);
                     }

                  else {
                    Serial.println("invalid request");
                  //  client.stop();
                  }
                 // Serial.println("Client disonnected");
            
        header = "";
        break;
        }
        if (c == '\n') {
          // when starts reading a new line
          blank_line = true;
        }
        else if (c != '\r') {
          // when finds a character on the current line
          blank_line = false;
        }
      }
    }  
    // closing the client connection
    delay(1);
    client.stop();
    Serial.println("Client disconnected.");

  }
                   
                 
  }

Arduino Introdução

Arduino Introdução

Tutorial básico do Arduino. É uma introdução à respeito da placa Arduino. Como começar iniciar com Arduino

  • Introdução:

É uma plataforma de prototipagem eletrônica de hardware livre e placa única, desenvolvida com um microcontrolador Atmel, com suporte à entradas/saídas, possui linguagem de programação padrão, a qual tem origem em Wiring, e é essencialmente C/C++.

Ideal para desenvolvimentos embarcados, computação, robótica, automação e outras aplicações baseadas em eletrônica.
  • Software Requerido:

O Arduino pode ser rodado nos seguintes sistemas operacionais:
Windows
Linux
Mac OS
  • Instalação do Driver

Vale lembrar que para a placa ser reconhecida pelo sistema operacional, ser faz necessário a instalação do driver de comunicação, pois as placas se comunicam com o computador através de uma porta serial virtual, para instalação verifique qual o driver de sua placa. Após a instalação do driver anote qual porta serial foi definida para sua placa, é esta porta que será utilizada para comunicação entre computador e Arduino.

  • Introdução ao software Arduino:

Compreensão Geral

O código escrito na IDE Arduino é conhecido como SKETCH .
A compilação do código é conhecida como VERIFY/VERIFICAR .
A transferência do código do pc para a placa Arduino é conhecida como UPLOAD/CARREGAR .
Pressionando diretamente o botão UPLOAD/CARREGAR do software Arduino, o software primeiro verificará o código à procura de possíveis e erros, estando tudo correto, transferirá esse código para a placa do Arduino.

  • Após a instalação do driver da placa abra o software Arduino. Ira ser apresentado uma janela semelhante à:




Conhecendo os Botões do Software:



Antes de salvar o projeto, o nome do projeto é exibido como sketch_data . O projeto é salvo na pasta padrão Meus Documentos/Arduino ou local similar para Mac OS e Linux. A extensão do arquivo Arduino é NomeDoArquivo.ino. Por padrão, ele cria uma pasta e, nessa pasta, cria um arquivo com a extensão mencionada. Nota-se que o nome da pasta e o arquivo contendo devem ser os mesmos (se necessário mudar o nome do projeto, mude o nome de ambos).



  • Seleção da placa: 
Selecione a placa Arduino que você possui na lista disponível.



  •  Seleção da Porta: 

O número da porta que você anotou deve ser selecionado aqui ( a placa deve estar conectado ao computador). Atente que na parte inferior direita da IDE você possui as informações de qual placa foi selecionada, bem como qual porta COM.

  • Compreensões gerais para programação:


Agora mãos à obra você já consegue escrever e compilar seu primeiro código. Após escrito, salve-o e pressione o botão UPLOAD, para envio à sua placa.

Realizando leitura com sensor AP3216 com Arduino


O sensor AP3216C é um módulo integrado que possui:
Sensor de Luz Ambiente
Sensor de Proximidade
Led IR

Encapsulado em um único componente. Sua aplicação é bastante vasta, é usado em telefones celulares, para medir a luz ambiente e ajustar o brilho da tela, ou para detectar quando você segura o telefone no ouvido e desativa a tela sensível ao toque.

A folha de dados para o AP3216C pode ser encontrada aqui: 

Possui comunicação I2c, podendo ser facilmente conectado ao Arduino ou qualquer processador de sua preferência.

Este é um exemplo usando-se do Arduino UNO, aceita os seguintes comandos e envia os mesmos à porta Serial.


Material necessário:
1 Resistor 330 Ohm


Os comandos aceitos, são como se segue:
write 0x00 0x01\n - gravará o valor 0x01 no registrador 0x00
read 0x0C\n - Le o valor que se encontra no registrador 0x0C
SensorLuzAmbienteOn\n - começará a transmitir o valor do sensor de luz ambiente na serial
SensorPresencaOn\n - começará a transmitir o valor do Sensor de Proximidade na serial
Off\n - irá parar de transmitir os dados do Sensor de Luz Ambiente como do Sensor Presença


Comando write 0x00 0x01\n - ira gravar o valor 01 no endereço 0x00 do sensor




read 0x0C\n -Retorno  o valor que se encontra no registrador 0x0C



SensorLuzAmbienteOn\n - começará a transmitir o valor do sensor de luz ambiente na serial, estes valores irão variar de acordo com a presença de mais ou menos luz


SensorPresencaOn\n - começará a transmitir o valor do Sensor de Proximidade na serial, este valor irá variar conforme se aproxima um objeto do sensor, o sensor de presença começa a apresentar variações em suas medidas com um obstáculo em torno de 5 à 7 cm aproximadamente, quanto mais próximo do sensor maior esta variação.


Imagem da montagem:


conexão:
Arduino UNO      AP3216
SCL  ------------    SCL                   
SDA ------------    SDA
GND ------------   GND 
3V3  ------------    VCC   
                             VLED ---[ 330 Ohm  ]--- VCC