Programação do ESP32 - 리가/데스리가 모터
7545 단어 diycppprogrammingesp32
Github do projeto
Todo o código esta disponível em meu github .
PlatformIO IDE 없음 VS 코드
Para programar o ESP32 doit-devkit-v1(modelo) eu usei a extensão PlatformIO no VS code.
브로커 로단도 노 라즈베리
ESP32를 사용하지 않는 코디고
프로그래밍 언어로 C++를 사용하고, 처음부터 책을 가져오지 마십시오.
// Bibliotecas necessárias
#include <Arduino.h>
#include "WiFi.h"
#include "PubSubClient.h"
PlatformIO를 활용하려면 Arduino가 중요합니다.
Depois defini as variáveis que irei utilizar.
#define PIN_LED 25 // Pino usado no ESP-32
#define TOPICO_SUBSCRIBE_LED "topico_liga_desliga_led" // Nome do Tópico, pode ser qualquer nome
#define ID_MQTT "esp32_mqtt" // ID do seu MQTT
const char* SSID = "Nome_Rede_Wifi";
const char* PASSWORD = "sua_senha";
const char* BROKER_MQTT = "Endereço do MQTT Broker";
int BROKER_PORT = 1883;//porta_do_broker
WiFiClient espClient;
PubSubClient MQTT(espClient);
//Declarando funções
void initMQTT(void);
void mqtt_callback(char* topic, byte* payload, unsigned int length);
void reconnectMQTT(void);
void reconnectWiFi(void);
void VerificaConexoesWiFIEMQTT(void);
/* Função: inicializa e conecta-se na rede WI-FI desejada */
void initWiFi(void)
{
delay(10);
Serial.println("------Conexao WI-FI------");
Serial.print("Conectando-se na rede: ");
Serial.println(SSID);
Serial.println("Aguarde");
reconnectWiFi();
}
/* Função: inicializa parâmetros de conexão MQTT(endereço do broker, porta e seta função de callback) */
void initMQTT(void)
{
MQTT.setServer(BROKER_MQTT, BROKER_PORT); //informa qual broker e porta deve ser conectado
MQTT.setCallback(mqtt_callback); //atribui função de callback (função chamada quando qualquer informação de um dos tópicos subescritos chega)
}
재미있는 mqtt_callback 로드는 로지카 주요 응용 프로그램이며, fazendo com que o motor seja iniciado e desligado após 9 segundos. com o sinal enviado via celular para o broker MQTT, que esta no raspberry.
/* Função: função de callback */
void mqtt_callback(char* topic, byte* payload, unsigned int length)
{
String msg;
/* obtém a string do payload recebido */
for(int i = 0; i < length; i++)
{
char c = (char)payload[i];
msg += c;
}
Serial.print("Chegou a seguinte mensagem via MQTT: ");
Serial.println(msg);
if (msg.equals("1"))
{
digitalWrite(PIN_LED, HIGH);
Serial.print("LED aceso mediante comando MQTT");
delay(9000);
digitalWrite(PIN_LED, LOW);
}
}
Caso o 가입자는 중개인과 연결되어 있고 연결되어 있지 않습니다.
/* Função: reconecta-se ao broker MQTT */
void reconnectMQTT(void)
{
while (!MQTT.connected())
{
Serial.print("* Tentando se conectar ao Broker MQTT: ");
Serial.println(BROKER_MQTT);
if (MQTT.connect(ID_MQTT))
{
Serial.println("Conectado com sucesso ao broker MQTT!");
MQTT.subscribe(TOPICO_SUBSCRIBE_LED);
}
else
{
Serial.println("Falha ao reconectar no broker.");
Serial.println("Haverá nova tentativa de conexão em 2s");
delay(2000);
}
}
}
이 기능은 Wi-Fi와 Broker MQTT에 연결되어 있는지 확인합니다.
VerificaConexoesWiFIEMQTT 기능은 MQTT를 다시 연결하고 WiFi를 다시 연결하는 기능입니다.
/* Função: verifica o estado das conexões WiFI e ao broker MQTT. */
void VerificaConexoesWiFIEMQTT(void)
{
if (!MQTT.connected())
reconnectMQTT();
reconnectWiFi();
}
/* Função: reconecta-se ao WiFi */
void reconnectWiFi(void)
{
if (WiFi.status() == WL_CONNECTED)
return;
WiFi.begin(SSID, PASSWORD);
while (WiFi.status() != WL_CONNECTED)
{
delay(100);
Serial.print(".");
}
Serial.println();
Serial.print("Conectado com sucesso na rede ");
Serial.print(SSID);
Serial.println("IP obtido: ");
Serial.println(WiFi.localIP());
}
초기 설정에서 초기 설정으로 프로그램을 시작하고 직렬에서 정의하고 초기 설정에서 초기 설정으로 초기화하려면 itWiFi 및 initMQTT를 funções로 사용하십시오.
void setup() {
Serial.begin(115200);
pinMode(PIN_LED, OUTPUT);
digitalWrite(PIN_LED,LOW);
initWiFi();
initMQTT();
}
A função loop fica chamando periodicamente à cada 2 segundos as funções VerificaConexoesWiFIEMQTT, MQTT.loop
void loop() {
VerificaConexoesWiFIEMQTT();
MQTT.loop();
delay(2000);
}
PlatformIO 구성
[env:esp32doit-devkit-v1]
platform = espressif32
board = esp32doit-devkit-v1
framework = arduino
monitor_speed = 115200
upload_speed = 921600
upload_port = COM3 ; Porta serial do seu computador
lib_deps = knolleary/PubSubClient@^2.8 ; biblioteca necessárias para o uso do MQTT
A porta serial você pode encontra no Gerenciador de Dispositivos, o meu no caso esta na porta 3 (COM3), lembre-se de instalar o drive da placa para que seu computador reconheça o dispositivo.
ESP32를 실행하는 예
예를 들어, 프로토보드가 주도하고 있으며, 9단계로 진행되고 있습니다.
Reference
이 문제에 관하여(Programação do ESP32 - 리가/데스리가 모터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/henriquebros/programacao-do-esp32-ligadesliga-motor-5bnc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)