FVM Learning

Nosso maior compromisso é compartilhar conhecimentos, somos simples mas não simplórios, astuto mas não pacóvio, nos posicionamos empenhados em mostrar o caminho para desmistificação do opróbrio em legítima defesa do conhecimento compartilhado. Eng. Jemerson Marques.
Mostrando postagens com marcador Internet das Coisas. Mostrar todas as postagens
Mostrando postagens com marcador Internet das Coisas. Mostrar todas as postagens

sábado, 27 de novembro de 2021

Como Fazer "Crimpar" Cabo de Rede RJ45 - Padrões T586A e T586B - Direto ou Crossover

Fig. 1 - Como Fazer "Crimpar" Cabo de Rede RJ45 - Padrões T586A e T586B - Direto ou Crossover

Olá a Todos!

Os cabos de Rede geralmente tem custos um pouco elevados e os comprimentos pré-fabricados nem sempre são do comprimento de que precisamos. 

Fazer ou Crimpar o seus próprios cabos Ethernet não é difícil, e as ferramentas necessárias, dependendo do modelo, pode ser mais benéficos comprá-las montar os seus próprios cabos de Rede com tamanhos e padrões de sua preferência, de que comprar os cabos pré-fabricados.

Esse é um guia rápido de como Fazer seu próprio Cabo de Rede Ethernet com conectores RJ45 seguindo padrão EIA/TIA de forma rápida e prática, para quem deseja saber mais sobre os Padrões EIA/TIA click no link abaixo.
  • Padrão de Cores Cabo de Rede RJ45 - T568A e T568B - Padrão EIA/TIA
Os Cabos de Rede são peças fundamentais na transmissão de informações entre periféricos de conexões. 

Para se conseguir transmitir essas informações, em sua grande maioria utilizamos o Cabo de Rede com os conectores de Rede, esses conectores são registrados e padronizados como Conector RJ45, que é um tipo padrão de Plugue físico para cabos de rede. 

O que precisaremos

A lista de ferramenta é "Genérica" por obviedade nem todos nós temos as mesmas ferramentas, e podemos improvisar com outros tipos de ferramentas de trabalho que temos disponíveis em nossa bancada.

No entanto para termos uma base, traremos nessa lista as FERRAMENTAS básica necessária para Crimpar o seu Cabo de Rede.
  • Alicate de Crimpar
  • Alicate de Corte "pode ser uma tesoura"

A Figura 2 abaixo, ilustra as duas ferramentas que utilizamos em ao fazer nosso cabo, vale lembrar que o alicate cortador "Pequeno cinza" não é exatamente necessário, se não tiver, podemos utilizar um alicate de corte, um estilete, uma tesoura, o que preferir.

Fig. 2 - Alicate de Crimpar e alicate de corte para cabo de rede

E a segunda lista, são os MATERIAIS que precisaremos para compor, montar, construir o seu próprio cabo de rede, ilustrada na Figura 3 abaixo. 
  • Conector RJ45
  • Cabo de Rede Ethernet Cat-5e, Cat-6, Cat-6a
Fig. 3 - Conector RJ45 e cabo de Rede Ethernet Cat-6

Tipos de Cabos Ethernet

Existem dois tipos de cabos Ethernet que podemos fazer: Direto ou Crossover.

Cabos Ethernet Diretos

Os cabos Ethernet Diretos são os cabos padrão usados ​​para quase todos os fins e são frequentemente chamados de "cabos de remendo". 

Cabos Ethernet Crossover

Cabos de Ethernet Crossover  conectam diretamente um computador ou dispositivo a outro sem passar por um roteador, switch ou hub.

Padrão a ser escolhido

Os dois padrões já mencionados no início desse artigo Padrão EIA/TIA - T568A e T568B, estão disposto na Figura 4 abaixo. E para começarmos, você precisa escolher o padrão que você vai utilizar 

Ambos os padrões trará o mesmos resultados, mas à título de orientação, no nosso País, geralmente utilizamos o padrão Tipo T568A. Então é esse que escolheremos.
Fig. 4 -Crimpar Cabo de Rede - Padrões T586A e T586B

Montagem do Cabo 

Cabo Direto "uso padrão"!

  • Corte a camada plástica de proteção que cobre os fios, na extremidade do cabo como demonstrado na Figura 5 abaixo, utilizando o alicate de corte, ou um estilete, uma tesoura ou o que você tiver.

Fig. 5 -Crimpar Cabo de Rede - Padrões T586A e T586B - Desencapando o cabo

  • Desenrole e separe os 4 pares de cores semelhantes como ilustrado na Figura 6 abaixo. Desenrole os pares de cores correspondentes,  empareie os fios seguindo a sequencia do padrão escolhido, alinhe um ao lado do outro.
Fig. 6 - Crimpar Cabo de Rede - Padrões T586A e T586B - Separando os Pares

  • Agora faça o corte dos fios com aproximadamente 1.5cm de comprimento, essa medida fará com que o cabo seja crimpado e evitar um problema de a crimpagem pegar nos fios, não no cabo, ao encaixar no conector RJ45.

    O alicate de crimpagem já tem um cortador, você pode estar utilizando ele mesmo, como mostrado na Figura 7 abaixo.
Fig. 7 - Crimpar Cabo de Rede - Padrões T586A e T586B - Cortando os fios à 1.5cm

  • O ideal é deixar todos os fios o mais alinhados possível, ficando assim como ilustrado na Figura 8 abaixo.

    É importante lembrar que devemos seguir a sequencia e não cometer engano quanto aos pares, as vezes as cores se parecem, então fique atento para não comentar engando algum.
Fig. 8 - Crimpar Cabo de Rede - Padrões T586A e T586B - Alinhando a sequência de cores

  • Cuidadosamente encaixe os 4 pares de fios no conector, seguindo a sequencia escolhida na Figura 4.

    Verifique a posição da capa plástica, ela deve ficar no ponto onde será crimpado, e também deve-se ficar atento para o encaixe dos fios até o final do conector, como mostrado na Figura 9 abaixo.

    Note também que a capa cinza que cobre todo os fios está exatamente na aleta do plug RJ45 que na hora de crimpar ele também prende o cabo para não ficar puxando os fios, e com um tempo os fios dão defeitos, pois ficam folgados e dão mal contato.
Fig. 9 - Crimpar Cabo de Rede - Padrões T586A e T586B - Encaixando o cabo de rede no conector

  • Depois de tudo alinhado, coloque o Conector RJ45 com o cabo dentro, com cuidado para não soltar ou folgar, no Alicate Crimpador, como ilustrado na Figura 10 abaixo.
Fig. 10 - Crimpar Cabo de Rede - Padrões T586A e T586B - Crimpando o cabo de rede

  • Repare como fica o outro lado do Alicate Crimpador com o conector RJ45, depois de alinhado corretamente, é só apertar até o fim, dependendo do alicate, tem uns que dão un "click", para indicar que foi feito a crimpagem.
Fig. 11 - Crimpar Cabo de Rede - Padrões T586A e T586B - Crimpando o cabo de rede

Pronto!!! Você acaba de concluir um dos lados do cabo, para fazer o outro, é só repetir as mesmas etapas ilustradas acima.

Cabo Crossover

Para se fazer um cabo Crossover "cruzado", é simplesmente fazer-se uma das extremidades do cabo com o padrão Tipo T586A e a outra extremidade do Tipo T586B. Seguindo o mesmos passos ilustrados acima, como ilustrado na Figura 12 abaixo.
Fig. 12 - Crimpar Cabo de Rede - Padrões T586A e T586B - Cabo Crossover


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

sábado, 4 de setembro de 2021

O que é IPTV? Como funciona?


Quando se fala de Streaming Online, logo o que se pensa é em IPTV, mas é importante lembrar que mesmo que IPTV use o protocolo de internet IP, ele não se limita a um sistema de transmissão de TV pela internet, ele também é usada para entrega de mídia em redes corporativas e privadas, porém com garantia de qualidade na entrega.

Estamos sendo levados com o impulsionamento das mudanças de paradigma dos modos tradicionais com que são transmitidas, como o sistema de TV a cabo, ou via satélite, para o streaming baseado na Internet, e o IPTV como sistema tem um papel importante a desempenhar nessa fase de transição.

Vamos entender melhor a arquitetura da IPTV, e seu funcionamento mais detalhado para trazer-nos mais clareza sobre os tipos de serviços de IPTV e o futuro da IPTV.

O que é IPTV?

IPTV refere-se a: "Internet Protocol Television" Televisão Por Protocolo de Internet, é um sistema em que o serviço de TV digital é entregue ao cliente "assinante" por meio de tecnologia de protocolo de Internet através de conexão de banda larga na Internet.

E isso é um pouco diferente dos sistemas de vídeo digital que são acessados por milhões de usuários em todo mundo em sites ou mesmos em aplicativos como YouTube, Netflix, Amazon Video, Vimeo etc. 

Também ao contrário da conexão padrão por cabo ou satélite, na IPTV vários aparelhos de TV podem usar uma única assinatura dentro de uma mesma casa e ainda com a vantagem e a conveniência de poder escolherem os programas que desejam assistir quando e onde quiserem, além de sintonizar qualquer programação na TV ao vivo quando transmitido.

Para entender como a IPTV é diferente da TV tradicional, vamos comparar o modo tradicional de assistir TV com a IPTV.

Como IPTV Funciona?

Os consumidores através de seus aparelhos, solicitam ao servidor de streaming, e recebem programas de TV solicitados, e os conteúdos de vídeo por meio de redes baseadas em protocolo da Internet (IP), em vez de cabos ou satélites para os telespectadores. 

Diferente de conteúdos de transmissão em tempo real por cabo ou satélite, que funcionam permitindo que os usuários "sintonizem" um canal específico no seu aparelho e não conseguem pausar, ou vê-lo novamente aquele mesmo conteúdo, o IPTV pode armazenar programas no servidor no final da transmissão, permitindo aos usuários solicitar conteúdo pela Internet a qualquer momento.

IPTV usa uma rede baseada em protocolo da Internet (IP) para fornecer canais de TV aos decodificadores dos usuários. 

As redes de Internet são diferentes das redes de cabo e satélite porque fornecem conteúdo por meio dos mesmos modelos de comunicação cliente-servidor, que usa IP (Internet Protocol), um protocolo de transporte que é um mecanismo de entrega, e utilizam os mesmos processos de e-mail, sites e outros serviços baseados na Internet. 

Quando o espectador faz uma solicitação para um programa no IPTV através do controle, o vídeo solicitado, vem de diferentes fontes (servidores) e é dividido em pacotes de dados através da Internet. 

O servidor de vídeo transmite o programa para o cliente através de conexão com a Internet, que podem trafegar os dados por meio do cabo de fibra óptica, Rede 4G, Redes cabeadas, etc. que recebe a solicitação e, envia o programa de volta ao cliente.

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


terça-feira, 1 de dezembro de 2020

Sensor de Tensão AC 110/220V para Arduíno, ESP32, ESP8266, PIC

Sensor de Tensão AC 110/220V para Arduíno, ESP32, ESP8266, PIC, etc.

Olá a Todos!!!

No post de hoje, iremos montar um simples, sensor que monitora se ha tensão na entrada do mesmo, sendo um ótimo circuito para se fazer uma automação por falta de energia, ou para quem tem um gerador e não sabe se a tensão está no gerador ou na rede energética, ou qualquer outra aplicação que você necessitar. O circuito utiliza componentes discretos, o que nos facilita bastante para montarmos o nosso. 

Como funciona o Circuito

O funcionamento do circuito é bastante simples, quando aplicamos uma tensão na entrada do módulo sensor, a tensão trafega através do resistor R1, que é um resistor que serve para limitar a corrente no fotodiodo, que acenderá, e fará com que o Fototransistor que é sensível a luz, se polarize, fazendo com que a tensão aplicada no coletor, trafegue para a saída través do emissor do Fototransistor, esse tensão será uma tensão pulsada de acordo com a frequência da tensão de sua rede, no nosso caso é 60hz, por esse motivo, temos um capacitor que serve como filtro para que quando a tensão estiver em 0V o capacitor mantém essa tensão, deixando ao máximo a saída o mais linear possível, como em uma fonte de alimentação.

O circuito

O circuito é bem simples utiliza apenas 4 componentes eletrônicos, é de fácil montagem, no entanto, tome muita atenção, pois é um circuito que trabalha com tensão de rede de energia viva 110 ou 220V, TOME MUITO CUIDADO!!! Não nos responsabilizamos por qualquer montagem errada. Seja consciente, não brinque com energia. Na figura 2 podemos ver o  diagrama esquemático do circuito Sensor de tensão AC110/220V.

Fig. 2 - Circuito Esquemático do Sensor de Tensão AC 110/220V para Microcontroladores

Lista de Material

  • U1 ----------------- Optoacoplador 4N25
  • R1 ----------------- Resistor 1/8w 220K 
  • C1 ----------------- Capacitor eletrolítico 100uF - 16V 
  • RP1---------------- Potenciômetro 10KΩ
  • P1------------------ Conector tipo terminal parafusado 5mm 2 Pinos
  • P2 ----------------- Conector tipo terminal parafusado 5mm 3 Pinos
  • Outros ------------ Fios, Soldas, bateria, placa de circuit impresso, etc.
Estamos dispondo para Download os materiais necessários para quem deseja montar com a PCI - Placa de Circuito Impresso, os arquivos em PNG, PDF e arquivos GERBER para quem deseja enviar para impressão.
Fig. 3 - PCI Sensor de Tensão AC 110/220V para Microcontroladores

Download:


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

terça-feira, 28 de abril de 2020

Como saber, obter, pegar o MAC Address do NodeMCU ESP8266 e ESP32 na IDE Arduíno

Como saber, obter, pegar o MAC Address do NodeMCU ESP8266 e ESP32 na IDE Arduíno

Olá a Todos!!!


No Post de hoje, faremos um guia rápido de como saber, obter, pegar, o endereço MAC do NodeMCU ESP8266 ou ESP32 utilizando a IDE Arduíno. 
O endereço MAC "Media Access Control" ou (Controle de Acesso de Mídia) que muitas vezes é entendido por ""Machine Access Control" ou (Controle de Acesso a Máquinas), isso quando referido a maquinas mesmo, eles são endereços de hardware exclusivo que identificam um adaptador de rede, sendo assim jamais teremos dois dispositivos com mesmo Endereço MAC.
O endereço MAC é formado por um conjunto de 6 bytes, sendo cada byte representado por dois algarismos na forma hexadecimal, como por exemplo: "00:38:0F:2V:5M:7L".

O código

O código é bastante simples, inicializa incluindo a biblioteca ESP8266WiFi.h.
#include <ESP8266WiFi.h>
extern "C" {
#include <espnow.h>#include <user_interface.h>
}

Que é a biblioteca que ativa o módulo WiFi, seguido da inclusão da biblioteca espnow.h, com a diretriz de encaminhamento extern "C", que informa ao software o caminho para a biblioteca do ESP8266 ou ESP32.

Depois já se entra no void setup.
void setup() {
  Serial.begin(115200); Serial.println();
  Serial.println("Starting fvm learning, get mac address");
Iniciamos o Serial com a função Serial.begin(115200), decorrido da velocidade do Bounce da comunicação entre o módulo e o computador na porta serial. Depois já imprimimos uma mensagem vazia, só para pular uma linha, logo após, imprimimos a mensagem de inicialização, "Inicializando o fvm leaning, obter endereço mac".

Logo esse código imprime dois tipos de Endereços Mac, O Mac Address AP "Access Point"  e o Mac Address STA "Station".
  Serial.print("This node AP mac: ");   Serial.println(WiFi.softAPmacAddress());  Serial.print("This node STA mac: ");   Serial.println(WiFi.macAddress());}

E fechamos aqui todo o código, pois como podemos visualizar, no void loop, não ha atividades alguma.
void loop() {

}
Logo abaixo temos todo o código, não ha necessidade de fazer-se nenhuma mudança, é só você copiar o código abaixo e colar na sua IDE Arduíno, ou se preferir, você pode estar baixando pelo link de Download logo abaixo do código, "Recomendável".
//==================================================================================//
// Getting Mac Address from NodeMCU ESP8266 on IDE Arduino                          //
// Created by: Engineer Jemerson Marques, On: 21.01.2019 - FVM Learning website     //
// Available at: https://www.fvml.com.br                                            //
// https://www.youtube.com/c/FVMLearning - I hope you have fun - Good luck          //
//----------------------------------------------------------------------------------//

#include <ESP8266WiFi.h>
extern "C" {
#include <espnow.h>#include <user_interface.h>
}

//===================================================================================
void setup() {
  Serial.begin(115200); Serial.println();
  Serial.println("Starting fvm learning get mac address");  Serial.print("This node AP mac: ");   Serial.println(WiFi.softAPmacAddress());  Serial.print("This node STA mac: ");   Serial.println(WiFi.macAddress());}

//===================================================================================
void loop() {

}
//================================ www.fvml.com.br ===================================
Muitas vezes quando copiamos o código direto do navegador, ocorre troca de caracteres, dando assim erros no código, por isso recomendamos e disponibilizamos um link direto para baixar.

Click no Botão abaixo para baixar os arquivos: 


Logo depois de ter baixado, abra o código baixado na sua IDE Arduíno, coloque o cabo USB do NodeMCU no seu computador, sete a porta que você colocou, e faça o Upload do código.
Quando o upload do código terminar, abra o Serial Monitor e lá você irá encontrar os Endereços Mac do seu NodeMCU ESP8266 ou ESP32

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

quinta-feira, 23 de janeiro de 2020

Controlando LEDs com dois ESP8266 utilizando Protocolo ESP-NOW

ESP-NOW - Controlando LEDs com dois ESP8266 utilizando Protocolo ESP-NOW

Olá a Todos!!!

No post de hoje, iremos fazer a comunicação entre dois ESP8266, uma conexão direta sem roteadores executando a conexão, iremos acionar duas cargas, que serão simuladas utilizando dois LEDs, utilizaremos o protocolo de comunicação ESP-NOW. Essa protocolo foi desenvolvido pela fabricante Chinesa ESPRESSIF. Esse protocolo tem sido bastante utilizado em muitos Gadgets como: Mouses sem fios, teclados sem fio, sensores de incêndios Wireless, controles remotos, etc. por ter uma conexão rápida e direta e com pouco consumo de energia.
Se você não conhece esse protocolo, ou deseja saber mais sobre ele, recomendamos à você dar uma olhadinha em nosso POST que explica o código detalhando por etapas e cada parte dos processos do código:
O que é ESP-NOW - E como Funciona? - Código exemplo explicado!!!

O que iremos fazer é, utilizar a biblioteca espnow.h, que é uma biblioteca desenvolvida para ESP8266, e o motivo é bastante simples, uma grande maioria de pessoas teem o ESP8266, e códigos utilizando a biblioteca espnow.h que é a biblioteca utilizada no ESP8266, são bastante difíceis, o mais comum de se encontrar são códigos que utilizam a biblioteca esp_now.h biblioteca utilizada no ESP32, mas, a grande maioria ainda utilizam o ESP8266 assim como eu, tenho o ESP32, mas utilizo mais o ESP8266.

O que vamos precisar

  • Precisaremos ter instalado a biblioteca espnow.h na IDE Arduíno. Se você não o fez, ou estar em dúvidas se já está instalado, confere no nosso post, como instalar a biblioteca espnow.h na IDE Arduíno. 
  • 2 - ESP8266
  • 4 - LEDs "2 opcionais"
  • 2 - Chave Micro-Switch
  • Protoboards, Fios rabichos, etc.
A montagem é bastante simples, ficando teremos apenas dois LEDs no Receiver, e duas Chaves com Dois LEDs no Controle.
No Controle, os LEDs estão ligados nas GPIOs: D2 e D3, e as MicroSwitchs estão ligados nas GPIOs D1 e D4, você pode está modificando essas GPIOs, para o que mais se adeque em seu projeto, não vai fazer diferença alguma se mudarmos, só não podemos esquecer de ligá-la na porta correta e modificar na Sketch.
No Receiver, os LEDs estão ligados nas GPIOs: D0 e D1, como já mencionado acima, você pode também estar modificando diacordo com o seu projeto. Logo abaixo temos os dois códigos para completos para você poder acompanhar.

Código do Controle

//=================================================================================================//
// MASTER                                                                                          //
// Controlling LEDs with Two ESP8266 Uses ESP-NOW Protocol                                         //
// Edited and Adapted by: Engineer Jemerson Marques, On: 22.12.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                         //
//-------------------------------------------------------------------------------------------------//

#include <ESP8266WiFi.h>
extern "C" {
#include <espnow.h>
}
// This is the slave MAC Address which receives the data
 uint8_t mac[] = {0x5C, 0xCF, 0x7F, 0x4C, 0x82, 0x5C}; //AP MAC SLAVE'S ADDRESS

  #define WIFI_CHANNEL 4
  int prevstate_1 = LOW;
  int prevstate_2 = LOW;

// Data structure, must be the same for the slave

struct __attribute__((packed))DataStruct {
  char text[32];
};
    DataStruct button_1;
    DataStruct button_2;

//=====================================================================================================
void setup() {
  pinMode(D1, INPUT_PULLUP);
  pinMode(D4, INPUT_PULLUP);
  pinMode(D2, OUTPUT);
  pinMode(D3, OUTPUT);

  Serial.begin(115200); Serial.println();
  Serial.println("Starting EspnowController.ino");
  WiFi.mode(WIFI_STA); // Station mode for esp-now controller
  WiFi.disconnect();
  Serial.printf("This mac: %s, ", WiFi.macAddress().c_str());
  Serial.printf("slave mac: %02x%02x%02x%02x%02x%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
  Serial.printf(", channel: %i\n", WIFI_CHANNEL);
  if (esp_now_init() != 0)
  {
    Serial.println("*** ESP_Now initialization failed");
  }
  esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);
  esp_now_add_peer(mac, ESP_NOW_ROLE_SLAVE, WIFI_CHANNEL, NULL, 0);
  strcpy(button_1.text, "Button 01 pressed");
  strcpy(button_2.text, "Button 02 pressed");
  Serial.println("Setup finished");
}

//======================================================================================================

void loop() {
  sendData();
}

//======================================================================================================
void sendData() {

  int currentstate_1 = digitalRead(D4);
  if (prevstate_1 != currentstate_1) {
    if (currentstate_1 == LOW) {
      uint8_t bs[sizeof(button_1)];
      memcpy(bs, &button_1, sizeof(button_1));
      esp_now_send(mac, bs, sizeof(button_1));
      Serial.println(button_1.text);
      digitalWrite(D2, !digitalRead(D2));
    }
  } prevstate_1 = currentstate_1;

  int currentstate_2 = digitalRead(D1);
  if (prevstate_2 != currentstate_2) {
    if (currentstate_2 == LOW) {
      uint8_t bs[sizeof(button_2)];
      memcpy(bs, &button_2, sizeof(button_2));
      esp_now_send(mac, bs, sizeof(button_2));
      Serial.println(button_2.text);
      digitalWrite(D3, !digitalRead(D3));
    }
  } prevstate_2 = currentstate_2;
}

//========================================== www.fvml.com.br ===========================================

Código do Receiver

//=================================================================================================//
// SLAVE                                                                                          //
// Controlling LEDs with Two ESP8266 Uses ESP-NOW Protocol                                         //
// Edited and Adapted by: Engineer Jemerson Marques, On: 22.12.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                         //
//-------------------------------------------------------------------------------------------------//

#include <ESP8266WiFi.h>
extern "C" {
#include <espnow.h>#include <user_interface.h>
}
 uint8_t mac[] = {0x5C, 0xCF, 0x7F, 0x4C, 0x82, 0x5C}; //AP MAC SLAVE'S ADDRESS

//=====================================================================================================
  int Led1 = D0;
  int Led2 = D1;

void initVariant() {
  WiFi.mode(WIFI_AP);
  wifi_set_macaddr(SOFTAP_IF, &mac[0]);
}

//=====================================================================================================

#define WIFI_CHANNEL 4
// Must match the controller structstruct __attribute__((packed))DataStruct {
  char text[32];
unsigned int time;};

DataStruct receivedData;
//=====================================================================================================
void setup() {
  Serial.begin(115200); Serial.println();
  Serial.println("Starting EspnowSlave.ino");  Serial.print("This node AP mac: "); Serial.println(WiFi.softAPmacAddress());  Serial.print("This node STA mac: "); Serial.println(WiFi.macAddress());  pinMode(Led1, OUTPUT);
  pinMode(Led2, OUTPUT);

  if (esp_now_init() != 0){
    Serial.println("*** ESP_Now init failed");    while (true) {};
  }
  esp_now_set_self_role(ESP_NOW_ROLE_SLAVE);
  esp_now_register_recv_cb(receiveCallBackFunction);
  Serial.println("End of setup - waiting for messages");}

//======================================================================================================

void loop() {
}

//======================================================================================================
void receiveCallBackFunction(uint8_t *senderMac, uint8_t *incomingData, uint8_t len) {
  memcpy(&receivedData, incomingData, sizeof(receivedData));

  String DataCompare = String(receivedData.text);

  if(DataCompare == "Button 01 pressed"){
  digitalWrite(Led1, !digitalRead(Led1));
  Serial.println(" Message = " + DataCompare);
 }
  if(DataCompare == "Button 02 pressed"){
  digitalWrite(Led2, !digitalRead(Led2));
  Serial.println(" Message = " + DataCompare);
   
  }
}

//========================================== www.fvml.com.br ===========================================
Logo abaixo temos um link com os arquivos dos códigos do Controle como do Receiver, nós aconselhamos a você baixar e não copiar no código acima, pois pode vir com algum erro de acentuação ou qualquer outra coisa, então disponibilizamos o link para baixar.

Click no Botão abaixo para baixar os arquivos: 

Você pode também está acompanhando esse post em nosso canal do youtube, é uma forma de você acompanhar o funcionamento do mesmo.


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


terça-feira, 26 de novembro de 2019

O que é Protocolo MQTT e como Funciona? Principais Aplicações

Fig 1 - O que é Protocolo MQTT e como Funciona?

Olá a Todos!!!

No post de hoje, iremos entender o que é o protocolo MQTT (Message Queuing Telemetry Transport), de que forma ele funciona, e quais são suas principais aplicações no mundo IoT.

O que é MQTT?

MQTT é um protocolo de mensagens publish/subscribe, projetado para o transporte de telemetria em enfileiramento de mensagens simples e leve, com baixa largura de banda, e protocolo de conectividade  machine-to-machine (M2M) ou "máquina para máquina", que funciona no topo do protocolo TCP / IP

Ele foi projetado para conexões remotos onde um "pequeno tamanho de código" é necessário ou a largura de banda da rede é limitada.

Ao utilizar o protocolo MQTT, você pode enviar comandos para controlar portas de saídas, ler e publicar dados de sensores, controlar remotamente esses dispositivos e muito mais. Você pode estabelecer comunicação entre vários dispositivos.

Você pode se interessar também!

Quem projetou o MQTT?

O MQTT foi projetado pelo Dr. Andy Stanford-Clark, da IBM, e Arlen Nipper, da Arcom (atual Eurotech), em 1999, para fazer a conexão dos sistemas de telemetria de oleoduto por satélite.

Embora tenha começado como um protocolo proprietário, foi liberado Royalty livre em 2010 e tornou-se um padrão OASIS em 2014.

Quais os Padrões do MQTT?

Existem as versões V5.0 e V3.1.1 que agora são padrões OASIS (V3.1.1 também foi ratificado pela ISO). Como o MQTT está relacionado ao protocolo SCADA e ao MQIsdp?

O “protocolo SCADA” e o “MQ Integrator SCADA Device Protocol” (MQIsdp) são nomes antigos do que agora é conhecido como MQ Telemetry Transport (MQTT). 

O protocolo também é conhecido como “WebSphere MQTT” (WMQTT), embora esse nome também não seja mais utilizado.

O MQTT utiliza alguma portas padrão?

Certamente sim. A porta padrão utilizada pelo MQTT TCP / IP 1883 que é uma porta reservada com o IANA para uso com o MQTT. A porta TCP / IP 8883 também está registrada, para usar o MQTT sobre SSL.

O MQTT tem suporte para segurança?

Podemos passar um nome de usuário e senha com um pacote MQTT na V3.1 do protocolo. A criptografia através da rede pode ser tratada com SSL, independentemente do protocolo MQTT em si (vale a pena notar que o SSL não é o mais leve dos protocolos e adiciona uma sobrecarga de rede significativa). 

Segurança adicional pode ser adicionada por um aplicativo que criptografa dados que envia e recebe, mas isso não é algo embutido no protocolo, a fim de mantê-lo simples e leve.

Quais são as vantagens do MQTT?

O protocolo MQTT permite que seu sistema SCADA acesse dados da IoT. O MQTT traz muitos benefícios poderosos para o seu processo:
  • Distribua informações com mais eficiência
  • Aumentar a escalabilidade
  • Reduza drasticamente o consumo de largura de banda da rede
  • Reduza as taxas de atualização para segundos
  • Muito adequado para sensoriamento remoto e controle
  • Maximizar a largura de banda disponível
  • Sobrecarga extremamente leve
  • Muito seguro com segurança baseada em permissão
  • Usado pela indústria de petróleo e gás, Amazon, Facebook e outras grandes empresas
  • Economiza tempo de desenvolvimento
  • O protocolo de publicação / assinatura coleta mais dados com menos largura de banda em comparação com os protocolos de pesquisa.

Como o MQTT Funciona?

MQTT é um protocolo de publicação / assinatura que permite que dispositivos de borda de rede publiquem em um broker. Os clientes se conectam a esse broker, que medeia a comunicação entre os dois dispositivos. Cada dispositivo pode se inscrever ou se registrar em tópicos específicos. 

Quando outro cliente publica uma mensagem em um tópico inscrito, o broker encaminha a mensagem para qualquer cliente que se inscreveu.

MQTT é bidirecional e mantém o reconhecimento da sessão com estado. Se um dispositivo de borda de rede perder a conectividade, todos os clientes inscritos serão notificados com o recurso "Última Vontade e Testamento" do servidor MQTT, para que qualquer cliente autorizado no sistema possa publicar um novo valor de volta no limite de borda dispositivo de rede, mantendo a conectividade bidirecional.

A leveza e eficiência do MQTT possibilitam aumentar significativamente a quantidade de dados que estão sendo monitorados ou controlados. 

Antes da invenção do MQTT, aproximadamente 80% dos dados eram deixados em locais remotos, embora várias linhas de negócios pudessem ter usado esses dados para tomar decisões mais inteligentes. Agora, o MQTT torna possível coletar, transmitir e analisar mais dados sendo coletados.

Diferentemente do modelo usual de consulta / resposta de muitos protocolos, que tendem a saturar desnecessariamente as conexões de dados com dados inalteráveis, o modelo de publicação / assinatura do MQTT maximiza a largura de banda disponível.

Principais Aplicações

O protocolo MQTT, foi a princípio um protocolo utilizado para realizar conexões dos sistemas de telemetria de oleoduto por satélite, como já mencionado nos tópicos acima, mas que atualmente se expandiu e largos passos na história dos sistemas de automação, devido ao seu protocolo de mensagens publish/subscribe, projetado para o transporte de telemetria em enfileiramento de mensagens simples e leve, com baixa largura de banda, protocolo de conectividade M2M que funciona no topo do protocolo TCP / IP, ele é bastante utilizado em conexões remotos e com poucas linhas de código para fazê-lo funcionar. 

Com esse protocolo, podemos enviar comandos para controlar portas GPIO de uma central de controle, como os ESP8266, ESP32, Arduínos entre outros, já bastante difundidos aqui em nosso Blog, podendo ler e publicar dados de sensores, controlar remotamente esses dispositivos e muito mais. 

Você pode estabelecer comunicação entre vários outros dispositivos, tais como integração entre Assistentes virtuais, como o Echo Dot Alexa, Google Home entre outros.

Documentação MQTT em Inglês

Especificações de Protocolo

O MQTT v3.1.1 é um padrão ISO e OASIS mais antigo. A especificação está disponível no site da OASIS em Inglês na página Web em HTML ou em PDF.

O MQTT v5.0 é um padrão OASIS. A especificação está disponível no site da OASIS em Inglês na página Web em HTML ou em PDF.

Para referência com versão anterior do MQTT v3.1 está disponível Aqui.

O MQTT-SN v1.2, conhecido como MQTT-S, está disponível Aqui. O MQTT para redes de sensores é destinado a dispositivos incorporados em redes não TCP / IP, como o Zigbee.

O MQTT-SN é um protocolo de mensagens de publicação / assinatura para redes sem fio de sensores (WSN), com o objetivo de estender o protocolo MQTT além do alcance da infraestrutura TCP / IP para soluções de sensores e atuadores.

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