Índice:

Projeto NodeMCU MQTT Iot - Botão de mudança: 4 etapas
Projeto NodeMCU MQTT Iot - Botão de mudança: 4 etapas

Vídeo: Projeto NodeMCU MQTT Iot - Botão de mudança: 4 etapas

Vídeo: Projeto NodeMCU MQTT Iot - Botão de mudança: 4 etapas
Vídeo: 1 - Criando projeto com NodeMcu ESP8266-12E + MQTT + Android Studio - Programando o NodeMcu 2024, Novembro
Anonim
Image
Image

OSOYOO NodeMCU IOT Starter kit

Siga-nos no Facebook, encontre nosso novo item lançado e compartilhe sua ideia e um Vídeo sobre como usar nossos produtos de forma criativa. Você pode obter dinheiro de volta ou brindes conosco! Facebook:

Youtube:

Nesta lição, conectaremos um botão de switch ao NodeMCU e enviaremos o status do switch a um broker MQTT. Quando o botão for pressionado, o NodeMCU publicará o status do botão "pressionado" no broker MQTT e o cliente MQTT assinará essas mensagens. Quando o botão é liberado, “não pressionado” será enviado.

Etapa 1: Preparação

Gráfico de Conexão
Gráfico de Conexão

Hardware:

Placa NodeMCU x 1

Botão de mudança x 1

1K resistor x 1

Placa de ensaio x 1

Fios de ligação

Programas:

Arduino IDE (versão 1.6.4+)

Pacote de placa ESP8266 e o driver da porta serial

Cliente MQTT (MQTTBox aqui)

Biblioteca Arduino: PubSubClient

Etapa 2: Gráfico de conexão

Nesta lição, usamos D2 (GPIO4) para controlar o switch, configure o hardware de acordo com o gráfico de conexão.

Nota: o resistor de 1k está usando como um resistor pull down, em tal circuito, quando a chave está fechada, a entrada NodeMCU está em um valor alto lógico, mas quando a chave está aberta, o resistor pull-down puxa a tensão de entrada até o aterramento (valor lógico zero), evitando um estado indefinido na entrada.

Etapa 3: Código

Código
Código
Código
Código

Copie o código abaixo para o IDE do Arduino:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / * | | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _ / (_ / / _ / / _ | / _ / / _ (_) _) _ / | _ | _ | _ | * (_ / * Use o NodeMCU envia o status do botão de mudança para o cliente MQTT via WiFi * URL do tutorial: * CopyRight www.osoyoo.com * / #include #include

int BUTTON_PIN = D2; // o botão está conectado ao pino GPIO D1

// Atualize-os com valores adequados para sua rede. const char * ssid = "********"; // coloque seu ssid wi-fi aqui const char * password = "********"; // coloque sua senha wi-fi aqui. const char * mqtt_server = "broker.mqttdashboard.com"; // const char * mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

Cliente PubSubClient (espClient); long lastMsg = 0; char msg [50];

void setup_wifi () {

atraso (100); // Começamos nos conectando a uma rede WiFi Serial.print ("Conectando a"); Serial.println (ssid); WiFi.begin (ssid, senha); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("WiFi conectado"); Serial.println ("endereço IP:"); Serial.println (WiFi.localIP ()); }

void callback (char * tópico, byte * payload, unsigned int length)

{} // fim da chamada de retorno

void reconnect () {

// Loop até que estejamos reconectados while (! Client.connected ()) {Serial.print ("Tentando conexão MQTT…"); // Cria um ID de cliente aleatório String clientId = "ESP8266Client-"; clientId + = String (aleatório (0xffff), HEX); // Tentar conectar // se o corretor MQTT tiver clientID, nome de usuário e senha // altere a linha a seguir para if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("conectado"); // uma vez conectado ao broker MQTT, subscrever o comando se houver client.subscribe ("OsoyooCommand"); } else {Serial.print ("falhou, rc ="); Serial.print (client.state ()); Serial.println ("tente novamente em 5 segundos"); // Aguarde 5 segundos antes de tentar novamente delay (5000); }}} // fim reconectar ()

void setup () {

Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (callback); pinMode (BUTTON_PIN, INPUT); }

void loop () {

if (! client.connected ()) {reconect (); } client.loop (); long now = millis (); status interno; // enviar mensagem a cada 2 segundos if (now - lastMsg> 2000) {lastMsg = now; status = digitalRead (BUTTON_PIN); String msg = "Status do botão:"; if (status == HIGH) {msg = msg + "Pressionado"; mensagem char [58]; msg.toCharArray (mensagem, 58); Serial.println (mensagem); // publicar dados do sensor no broker MQTT client.publish ("OsoyooData", mensagem); } else {msg = msg + "Não pressione"; mensagem char [58]; msg.toCharArray (mensagem, 58); Serial.println (mensagem); // publicar dados do sensor no broker MQTT client.publish ("OsoyooData", mensagem); }}}

Edite o código para se ajustar às suas próprias configurações de WiFi e MQTT conforme as seguintes operações: 1) Hotspot Configration: Encontre a linha de código abaixo, coloque seu próprio SSID e senha lá.

const char * ssid = “your_hotspot_ssid”; const char * password = “your_hotspot_password”;

2) Configuração do endereço do servidor MQTT: Você pode usar seu próprio URL ou endereço IP do broker MQTT para definir o valor mqtt_server acima. Você também pode usar algum servidor MQTT gratuito famoso para testar o projeto, como “broker.mqtt-dashboard.com”, “iot.eclipse.org” etc.

const char * mqtt_server = “broker.mqtt-dashboard.com”;

3) Configurações do cliente MQTT; se o corretor MQTT exigir autenticação de ID do cliente, nome de usuário e senha, você precisa alterar

if (client.connect (clientId.c_str ()))

Para

if (client.connect (clientId, userName, passWord)) // coloque seu clientId / userName / passWord aqui

Se não, apenas mantenha-os como padrão. Depois de fazer isso, escolha o tipo de placa correspondente e o tipo de porta conforme abaixo e, em seguida, carregue o esboço para o NodeMCU.

  • Placa:”NodeMCU 0.9 (Módulo ESP-12)”
  • Frequência da CPU:”80 MHz” Tamanho do Flash:”
  • 4M (3M SPIFFS)”
  • Velocidade de upload:”115200 ″
  • Porta: Escolha sua própria porta serial para seu NodeMCU

Etapa 4: Configurações do cliente MQTT

Configurações do cliente MQTT
Configurações do cliente MQTT
Configurações do cliente MQTT
Configurações do cliente MQTT

Se você não sabe como configurar o cliente MQTT, visite nosso último artigo:

Configurações de tópicos: Tópico para publicar: OsoyooCommand

Tópico para se inscrever: OsoyooData

Resultado da corrida

Depois de fazer o upload, se o nome do ponto de acesso wi-fi e a configuração de senha estiverem ok e o corretor MQTT estiver conectado, abra o Monitor Serial, você verá o seguinte resultado: Continue pressionando este botão, o Monitor Serial exibirá “Status do botão: Pressionado” a cada 2 segundos; depois de liberar este botão, o Monitor serial emitirá “Status do botão: Não pressionado” a cada 2 segundos.

Recomendado: