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ídas Módulo AFSmart ESP8266 ESP-01 dois Reles

Controle Saídas Módulo AFSmart ESP8266 ESP-01 dois Reles


Exemplo de Aplicação Web com a placa Desenvolvimento AFSmart 2 Reles dois pulsadores 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: 50mm x 50mm x 20mm

O 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.




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 2Reles e 2 Pulsadores



Jamais conectar tenção AC nos pulsadores

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.0 - Em: Arquivos\Preferências no em laranja adicione o seguinte caminho:


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



1.2 -  Siga 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 sua aplicação 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 ESP-01



 /*
 * Aplicação adaptada para módulo desenvolvimento AFSmart INT-021605
 */

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

const char *ssid = "SSID"; //  SSID da sua rede
const char *password = "PASS_SSID"; // 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); 

/*converte os pinos Tx&Rx em entrada
 De forma a usar os pinos TX e RX como entrada para os pulsadores, 
 Deve habilitar o " #define habilita_pulsadores true" de forma a fazer com que estes pinos virem duas entradas.
 Atente que após isso realizado estes dois pinos IO1 e IO3 perdem a função de Serial Tx/Rx no entando em nada interfere no modo de atualização do módulo
 O que fazemos é tão  somente usar dois pinos que estavam perdidos como duas I/O
 Caso precise fazer algum Debug em sua aplicação, basta definir " habilita_pulsadores" como false - e após seus debug's mude novamente para true de forma a converte-los
 novamente para o modo I/O entrada
 */

#define habilita_pulsadores true
WiFiServer server(80); // porta para entrada externa
const int rele1 = 0;
const int rele2 = 2;
const int  pulsador = 1; //  usa o pino TX em entrada pulsador
const int  pulsador2 = 3;  // usa o pino RX em entrada pulsador
boolean estado_pulsador = HIGH;
boolean estado_pulsador2 = HIGH;
String header;

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

// 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 buttonState2;           // the current reading from the input pin
int lastButtonState = LOW;  // the previous reading from the input pin
int lastButtonState2 = LOW; // the previous reading from the input pin


void setup ( void ) {

pinMode ( rele1, OUTPUT );
  digitalWrite ( rele1, 1 );
  
  pinMode ( rele2, OUTPUT );
  digitalWrite ( rele2, 1 );

  // 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() );

  
  if(habilita_pulsadores)
  {
      delay(500);
      pinMode(pulsador,INPUT);
      pinMode(pulsador2,INPUT);
  }
  

}

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

    int estado_pulsador= digitalRead(pulsador);
    int estado_pulsador2 = digitalRead(pulsador2);


// If the switch changed, due to noise or pressing:
  if ((estado_pulsador != lastButtonState)|| (estado_pulsador2 != lastButtonState2)) {
    // 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:
    //Serial.println(buttonState);
    // if the button state has changed:
    if (estado_pulsador != buttonState) {
      buttonState = estado_pulsador;
   
        if (buttonState == LOW) {
        digitalWrite(rele1,!digitalRead(rele1));
      }
    }

     if (estado_pulsador2 != buttonState2) {
      buttonState2 = estado_pulsador2;
        if (buttonState2 == LOW) {
        digitalWrite(rele2,!digitalRead(rele2));
      }
    }
    
  }
   lastButtonState = estado_pulsador;
   lastButtonState2 = estado_pulsador2;



 // 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("");
            
            /*
            if(estado_rele1 == 0)
            client.println("Rele 1 esta ligado");
            else if(estado_rele1 == 1)
            client.println("Rele 1 esta Desligado");
            */
                
                
                 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-colord:#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 if (header.indexOf("Rele2_on") != -1)
                    digitalWrite(rele2, 0);
                  else if (header.indexOf("Rele2_off") != -1)
                    digitalWrite(rele2, 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.");

  }
                   
                 
  }











Rede LoRa: o que é? quais são as aplicações?

Se é amante de tudo que é relacionado a IoT, possivelmente já deve ter ouvido falar sobre rede LoRa, certo?
É mais uma das mais populares dentre as redes de conectividade, é uma tecnologia de radiofrequência que cumpre com as expectativas de empresas que necessitam de um sinal em locais com baixa penetração de RF buscando praticidade no dia a dia.
O baixo consumo de energia e a possibilidade de atuar em grandes distâncias 5 Km nas áreas urbanas e até 15 Km nas áreas rurais, desta forma dão uma cara atrativa à rede, no entanto, apesar de ser bastante usado, antes de instalar o protocolo é preciso saber que o investimento não é dos mais baixos.
Umas vez que se faz necessário antenas de transmissão espalhadas pelo ambiente, além da estrutura completa de IoT. Sem contar que a LoRa só se comunica com dispositivos LoRa e não suporta conexões com sistemas que trabalham com outros portocolos WiFi, ZigBee e Bluetooth Low Energy (BLE).
Mesmo assim, o custo benefício vale a pena para negócios que se identificam com a rede e a instalação, apesar de um tanto cara, não é difícil de ser realizada.
Confira onde usar LoRa!
Aplicações da rede LoRa
Flexível, esse protocolo atende  muito  bem locais bastante povoados, como áreas rurais, cujo sinal de celular não tem alcance.
Mas, sua capacidade de transmitir informações é relativamente baixa, fazendo com que sua melhor performance é melhor aproveitada em aplicações que utilizam poucos dispositivos IoT em concentração, bem com baixa taxa de transmissão de informações.
Mesmo assim, ela se torna muito útil na agricultura, em ambientes hospitalares, cidades inteligentes e porque não logística de negócios, que necessitam automatizar processos que não dependam do recebimento – ou tratamento – de dados em frequência de tempo curta (ou em tempo real).
As frequências de transmissões possuem uma relação diretamente inversa entre distância e capacidade de transmissão. Assim, quanto mais longe uma radiofrequência alcança, menos sua capacidade de transmissão de dados.
Se sua empresa precisa de uma solução de baixa dependência de provedores e que tenha ótimo alcance, mas que não dependa de um volume de informações relevante, exemplo  envio de informações de temperatura de 200 dispositivos a cada 15 minutos, vale a pena investir no Lora sem maiores problemas.
Com isso a AFEletronica desenvolveu o equipamento para realização de um concentrador Lora utilizando-se de um Raspberry pi 3
 
O LoRa Shield é baseado no chip Semtech SX1276, destinado a aplicações de redes de sensores sem fio profissionais, como sistemas de irrigação, medição inteligente, cidades inteligentes, detecção de smartphones, automação predial e etc...
 
Características:
Módulo LoRa1276
Chip: SX1276
Frequência Central de operação: 915MHz
Sensibilidade: -139dBM (máximo)
Tensão de Alimentação do Shield: 9 ~ 12Vdc @ 1A
Corrente de consumo Lora 1276: 10,8mA (RX - recepção) e 120mA (TX - transmissão)
Potência máxima: 20dBM
Modo de modulação: LoRa, FSK, GFSK e OOK
Taxa de transferência: 0,018 à 37,5 Kbps (LoRa)
Interface de comunicação: SPI
Temperatura de trabalho: -40 à +85°C
Dimensões: 65 x 56 x 20 mm (sem antena)
Conector Antena tipo SMA




CLP AFSmart PIC16F877A

Precisando de um controlador lógico programável? O AFSmart PIC16F877a é uma opção, um produto desenvolvido pela AFEletronica no Brasil, a proposta entregar um produto de custo reduzido, mas com qualidade, o produto.

Os CLP’s são ferramentas muito úteis, por apresentar versatilidade na aplicação de sistemas de acionamentos e controle, utilizado em grande escala no ambiente industrial, mas também em geral são equipamentos eletrônicos utilizados em sistemas de automação flexível. O CLP AFSmart permite desenvolver e alterar facilmente a lógica para acionamento das saídas em função de suas entradas, assim, com o CLP AFSmart é possível associar diversos sinais de entrada para controlar diversos atuadores ligados em suas saídas.
O CLP AFSmart é projetado para substituir antigos quadros de comando de relés, possibilitando flexibilidade para possíveis mudanças na lógica de controle. O CLP AFSmart trabalha manipulando saídas conforme o estado de suas entradas, o usuário elabora um programa, normalmente por software que dá os resultados desejados. Praticamente qualquer aplicação que utiliza algum tipo de controle pode usar um CLP.
Exemplos:
  • Estações de bombeamento de fluidos;
  • Transportadores de cargas;
  • Máquinas de lavar veículos;
  • Sistemas de empacotamento;
  • Automação predial;
  • Sistema de alarme com monitoramento remoto.
A estrutura do CLP AFSmart pode ser dividida em três partes: entrada, processamento e saída, ao qual, os sinais de entrada e saída dos CLPs AFSmart em geral podem ser digitais ou analógicos. O CLP é basicamente um pequeno computador dedicado, onde se encontra uma unidade central de processamento na estrutura física, memória do tipo ROM para armazenamento do FIRMWARE, memória RAM para armazenamento de dados e programas do usuário, e dispositivos de entrada e saída para a comunicação com o exterior. A linguagem de programação do CLP AFSmart PIC16F877a é similar à linguagem de diagramas lógicos de acionamento desenvolvido por eletrotécnicos e profissionais da área de controle, cuja, linguagem é denominado linguagem de contatos ou simplesmente LADDER. No entanto o CLP AFSmart também pode ser programado em linguagem C.