ESP 32-S3

ESP32S3 pinMode:

CODI SEMÀFOR:


void setup() {
  // put your setup code here, to run once:
pinMode(15,OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);


}


void loop() {
  // put your main code here, to run repeatedly:
digitalWrite(15, HIGH);
delay(100);
digitalWrite(15,LOW);
delay(100);
digitalWrite(16, HIGH);
delay(100);
digitalWrite(16,LOW);
delay(100);
digitalWrite(17, HIGH);
delay(100);
digitalWrite(17,LOW);
delay(100);
}

Amb aquest codi hem aconseguit fer el semàfor, al principi definim les sortides (LEDS), aquestes les anclem un número, aquest número és una de les entrades que té l'ESP 32-S3, aquestes anaven directament als LEDS, aquest números son 15, 16 i 17, són entrades generals que amb la foto del principi veiem que es poden fer servir per a casi tot (GPIO), l’altre extrem del LED estava connectat al GND del ESP, aquest fa la funció per a tancar el circuit. Referent al codi: Void setup es el principi de tot, el fem servir per a fer les configuracions inicials, en el nostre cas la inicialització de pins. El pinMode definim les sortides pinMode(15, OUTPUT); Tot seguit comencem amb un void loop per a ficar el nostre codi a continuació i es repeteixi mentres estigui connectat a la corrent l’ESP, amb el digitalWrite controlem els pins digitals de l’ESP, els LEDS, el HIGH i LOW serveixen per que s’apaguin i s’encenguin cada un temps, aquest interval de temps l’apliquem amb un delay(); aquest afegirà un delay del valor que vulguis.

Pots comprovar que funcioni mitjançant aquest CIRCUIT DE WOKWI!

CODI BLUETOOTH:


  #include < BLEDevice.h >


const int ledPin = 15;  // El pin GPIO al que está conectado el LED


BLECharacteristic *pCharacteristic;


void setup() {
  BLEDevice::init("BorjaEscalonaESP");


  BLEServer *pServer = BLEDevice::createServer();
  BLEService *pService = pServer->createService("0000180A-0000-1000-8000-00805F9B34FB");
  pCharacteristic = pService->createCharacteristic(
      "00002A29-0000-1000-8000-00805F9B34FB",
      BLECharacteristic::PROPERTY_WRITE
  );
  pService->start();


  BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
  pAdvertising->addServiceUUID(pService->getUUID());
  pAdvertising->setScanResponse(true);
  pAdvertising->setMinPreferred(0x06);
  pAdvertising->setMinPreferred(0x12);
  BLEDevice::startAdvertising();


  pinMode(ledPin, OUTPUT);
}


void loop() {
}
  
  • 1. `#include < BLEDevice.h >`: Serveix per afegir la biblioteca BLEDevice
  • 3. `const int ledPin = 15;`: defineix la sortida `ledPin` i li assigna el valor 15. Representa el nùmero de pin GPIO
  • 6. `BLECharacteristic *pCharacteristic;`:Crear una característica BLE que et deixa escriure
  • 9. `void setup() { ... }`: per a fer configuracions inicials
  • 11. `BLEDevice::init("NILIABRIL");`: Li assigna un nom identificatiu "NILIABRIL"
  • 14. `BLEServer *pServer = BLEDevice::createServer();`: Crea un objecte BLEServer, que representa un servidor BLE
  • 15. `BLEService *pService = pServer->createService("0000180A-0000-1000-8000-00805F9B34FB");`: Crea un objecte com a l’altre linea: "0000180A-0000-1000-8000-00805F9B34FB". es d’aquest servei: "Device Information Service" en BLE, que proporciona informació bàsica sobre el dispositiu
  • 16. `pCharacteristic = pService->createCharacteristic("00002A29-0000-1000-8000-00805F9B34FB", BLECharacteristic::PROPERTY_WRITE);`: Crea un objecte BLECharacteristic dins del servei BLE. Aquest el que fa es definir una característica: "00002A29-0000-1000-8000-00805F9B34FB", de l’identificador: "Manufacturer Name String" del servei: "Device Information Service"
  • 18. `pService->start();`: Inicia el servei
  • 21. `BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();`: configurar i controlar la “publicitat”
  • 22-24. Configració de la “publicitat” BLE: estableixen configuracions com el temps d’escaneig
  • 27. `BLEDevice::startAdvertising();`: Inicia la publicitat BLE
  • 30. `pinMode(ledPin, OUTPUT);`: Configura el pin del LED (pin 15) com una sortida
  • ERRORS:

    No hem pogut aconseguir el senyal Bluetooth pel següent error: error gcc: c:\users\nilcastellanoescamil\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32s3-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32s3-elf\include\c++\8.4.0\system_error:39:10: fatal error: bits/error_constants.h: No such file or directory

    Un error de GCC a l'entorn de l'Arduino IDE es refereix a un problema que ocorre durant el procés de compilació o enllaç del codi font en el llenguatge de programació C++ utilitzant el compilador GCC (GNU Compiler Collection).

    L'Arduino IDE utilitza GCC com a compilador predeterminat per a traduir el codi font en llenguatge d'alt nivell (com C++ o Arduino Sketch) a codi executable que pot ser carregat en una placa Arduino. Els errors de GCC poden ocórrer per diverses raons, com errors de sintaxi en el codi, problemes de configuració de l'entorn, llibreries incompatibles, conflictes de noms de variables o funcions, falta de declaracions o definicions necessàries, entre altres.

    Quan ocorre un error de GCC a l'Arduino IDE, l'IDE mostra missatges d'error a la finestra de sortida o al panell d'errors. Aquests missatges solen incloure informació sobre el tipus d'error, la ubicació en el codi font on es va produir i alguna pista sobre la causa de l'error.

    El missatge d'error "error fatal: bits/error_constants.h: No hi ha cap fitxer o directori" indica que el compilador no pot trobar el fitxer de capçalera especificat "error_constants.h" al directori "bits".

    Aquest error es produeix habitualment quan falta un fitxer de capçalera del sistema o es troba fora de lloc que es requereix per al procés de compilació. El directori "bits" normalment conté fitxers de capçalera de baix nivell utilitzats pel compilador.

    En el nostre cas, probablement hi va haver un mal funcionament d'instal·lació, ja que vam haver d'eliminar una biblioteca (Arduino 15) per utilitzar BLEDevice, potser vam eliminar algun fitxer important, tot i que quan vam tornar a posar la biblioteca no va funcionar. La nostra conclusió és

  • 1. Utilitzar un altre PC
  • 2. Tornar a descarregar l'aplicació Arduino.
  • Perquè el mateix codi funcionava per altres companys.

    APLICACIONS I CARACTERÍSTIQUES:

    ESP RainMaker: Amb aquesta aplicació el que anàvem a fer era configurar i gestionar el nostre ESP32 S3 per via bluetooth, també podem configurar i actualitzar aquest mateix de forma remota, el nostre objectiu final era tenir total control per via bluetooth de l’ESP, i amb aquesta aplicació podíem fer això.

    Thunkable: Aquesta aplicació també era similar al punt que també podem arribar a configurar per convertir-lo a vía bluetooth, la gran diferència és que aquesta aplicació era de desenvolupament sense codi o amb molt poc codi, feien servir blocs, com al APP INVENTOR, una altre aplicació molt similar. Aquesta també podría ampliar biblioteques de components i integrar serveis i API externs, tenint en compte això podríem haver avançat molt amb aquesta última.