цифровая электроника
вычислительная техника
встраиваемые системы

 



Как управлять выводами ESP32 через Bluetooth

Автор: Mike(admin) от 30-11-2022, 03:55

В рамках данного проекта мы рассмотрим, как управлять выходами и принимать сигналы на входах микроконтроллера ESP32 через беспроводную связь Bluetooth с использованием специального приложения.


Как управлять выводами ESP32 через Bluetooth

Код программы, который приведен далее, является вполне рабочим учебным кодом, который можно модифицировать под свои нужды. Он может отображать данные Bluetooth в последовательном мониторе. Можно, например, задействовать вход для управления светодиодом на плате ESP32. Это должно работать на любой плате ESP32 с возможностью подключения Bluetooth. Возможно, вам придется изменить номер назначения LED_BUILTIN, чтобы код соответствовал вашей конкретной плате.


Вам понадобится средство для подключения и связи с ESP32. Мы рекомендуем Bluetooth Serial Manager. Вам нужно будет настроить функциональные кнопки для вывода правильных данных. Нажмите и удерживайте функциональную клавишу и измените имя и значение 3 кнопок следующим образом:



[Имя] Led On [Значение] Led On
[Имя] Led Off [Значение] Led Off
[Имя] Toggle [Значение] Toggle

Значения, передаваемые в ESP32, чувствительны к регистру (это можно изменить в коде, чтобы любой регистр или связь регистров продолжали работать).


Как управлять выводами ESP32 через Bluetooth

Код программы ESP32:



#include "BluetoothSerial.h"

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

#if !defined(CONFIG_BT_SPP_ENABLED)
#error Serial Bluetooth not available or not enabled. It is only available for the ESP32 chip.
#endif

BluetoothSerial SerialBT;
String text = "";
int LED_BUILTIN = 2;
bool LED_STATE = false;                    

enum BT {LED_ON, LED_OFF, TOGGLE, UNDEFINED };   
int BT = LED_OFF;                           

void setup() {
  Serial.begin(115200);                   
  SerialBT.begin("ESP32test");             
  Serial.println("The device started, now you can pair it with bluetooth!");
  pinMode(LED_BUILTIN, OUTPUT);         
}

void loop() {
  if (Serial.available()) {SerialBT.write(Serial.read()); }

  if (SerialBT.available() > 0) {
    text = SerialBT.readStringUntil('\n');
    text.trim();                        

    if (text == "Led On"){ BT = LED_ON; }      
    else if (text == "Led Off"){ BT = LED_OFF; }
    else if (text == "Toggle"){ BT = TOGGLE; }  
    else { BT = UNDEFINED; }                   
    //Serial.println(text);                    

    switch (BT) {
      case 0 :                                  
        LED_STATE = true;                     
        Serial.println("LED ON");              
        digitalWrite(LED_BUILTIN, LED_STATE);  
        break;                                  

      case 1 :                                 
        LED_STATE = false;                     
        Serial.println("LED OFF");             
        digitalWrite(LED_BUILTIN, LED_STATE);   
        break;                                 

      case 2 :                            
        LED_STATE = !LED_STATE;                
        Serial.println("TOGGLE LED");           
        digitalWrite(LED_BUILTIN, LED_STATE); 
        break;                                  

      case 3:                                  
        LED_STATE = false;                    
        Serial.println("UNDEFINED INPUT");      
        digitalWrite(LED_BUILTIN, LED_STATE);   
        break;                                

      default :                             
        Serial.println("Unrecognised input received");
    }
  }
  delay(20);
}

Как управлять выводами ESP32 через Bluetooth



© digitrode.ru


Теги: ESP32, Bluetooth




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий