Índice:
- Etapa 1: Preparação
- Etapa 2: Gráfico de conexão
- Etapa 3: Código
- Etapa 4: Configurações do cliente MQTT
Vídeo: Projeto NodeMCU MQTT Iot - Botão de mudança: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
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
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
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
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:
LED de mudança de cor: 13 etapas
LED de mudança de cor: recebi a tarefa de criar um protótipo usando algum tipo de sensor para gerar uma saída. Decidi usar uma fotocélula, que mede a quantidade de luz em um ambiente, e um LED RGB como saída. Eu sabia que queria incorporar a habilidade do LED
Lâmpada de cubo Rubik sem fio de fácil mudança de cor baseada na inclinação: 10 etapas (com imagens)
Lâmpada Rubik's Cube sem fio com mudança de cor baseada na inclinação fácil: Hoje vamos construir esta lâmpada Rubik's Cube incrível que muda de cor com base no lado que está para cima. O cubo funciona com uma pequena bateria LiPo, carregada por um cabo micro-usb padrão e, em meus testes, tem uma bateria com duração de vários dias. Esse
Mudança rápida abaixo de $ 50! Kazeshifter Arduino ajustável Quick Shifter: 7 etapas
Mudança rápida abaixo de $ 50! Kazeshifter Arduino ajustável Quick Shifter: Olá, amantes de Superbike ou motocicletas! Neste instrutivo, vou compartilhar como fazer seu próprio Quick Shifter barato! Para pessoas que têm preguiça de ler este manual, basta assistir ao meu vídeo! já usando Sistema de Injeção de Combustível, algum
Representando graficamente a mudança de temperatura a partir da mudança climática em Python: 6 etapas
Traçando um gráfico da mudança de temperatura a partir da mudança climática em Python: A mudança climática é um grande problema. E muitas pessoas não sabem o quanto aumentou. Neste instrutível, vamos representar graficamente a mudança de temperatura no clima devido à mudança climática. Para uma folha de dicas, você pode ver o arquivo python abaixo
Gravador alimentado por USB! Este projeto pode queimar plásticos / madeira / papel (o projeto divertido também deve ser uma madeira muito fina): 3 etapas
Gravador alimentado por USB! Este projeto pode queimar através de plástico / madeira / papel (projeto divertido também deve ser madeira muito fina): NÃO FAÇA ISSO USANDO USB !!!! Eu descobri que isso pode danificar seu computador com todos os comentários. meu computador está bem tho. Use um carregador de telefone 600ma 5v. Eu usei isso e funciona bem e nada pode ser danificado se você usar um plugue de segurança para interromper a alimentação