Vamos a hacer unos cuantos programas en la ESP32 usando Arduino IDE. La programación es casi igual, pero ahora tenemos conectividad Wi-Fi y Bluetooth. ¡Habrá que aprovechar!
Atrás quedan los 16 MHz del Arduino. Ahora tenemos dos núcleos a 240 MHz. Entra aquí para ver todas las posibilidades: https://randomnerdtutorials.com/projects-esp32/
Usaremos un regulador de voltaje de 5 a 3.3 V. Su potencia es muy limitada. También influye la longitud y el diámetro del cable escogido.
Atento al monitor serie. Te ayudará a detectar reinicios recurrentes por culpa del "Brownout detector triggered":
Si se apaga, podrás detectarlo usando Serial.println();
Empezamos por algo fácil: https://randomnerdtutorials.com/esp32-digital-inputs-outputs-arduino/
Adapta el siguiente código para la ESP32: https://randomnerdtutorials.com/arduino-membrane-keypad-tutorial/. Deberás encontrar 8 GPIOs libres:
https://randomnerdtutorials.com/esp32-pir-motion-sensor-interrupts-timers/
PIR significa “Passive Infrared”. Los pines son alimentación (5V), salida digital, y GND. El de alimentación se distingue porque tiene un diodo al lado.
Heeeey… consumir microamperios en vez de miliamperios… eso no lo hace Arduino! https://randomnerdtutorials.com/esp32-deep-sleep-arduino-ide-wake-up-sources/
Configura:
Pruébalos, muéstramelos, y al acabar, envíame el código.
Información oficial de Espressif. In deep sleep mode, CPUs, most of the RAM, and all the digital peripherals which are clocked from APB_CLK
are powered off. The only parts of the chip which can still be powered on are:
Puedes hacer cualquiera de estos tres:
Vamos a usar el chip ethernet W5500 para conectarnos a la red por DHCP (IP dinámica). Harás dos pruebas:
Haz un controlador de temperatura o algo similar con el display OLED siguiendo este tutorial:
https://randomnerdtutorials.com/esp32-ssd1306-oled-display-arduino-ide/
Muestra una medición de temperatura (y si procede, de humedad) en el display.
Dos opciones: DHT11 / DHT22 o bien el sensor de temperatura integrado (es posible que no funcione).
¡Haz que quede bonito! Pone distintos tamaños de fuente y scroll. Piensa que en el futuro te podrían pagar por hacerlo.
Modifica el programa anterior para funcionar sin display. Ahora introduce el modo deep sleep. Haz que la ESP32 duerma y sólo mida la temperatura cada 10 segundos (timer wake up) o bien cuando se toque un touch pin (touch wake up).
Monta la batería y el cargador de baterías Lolin D1 1.3. Ojo: la toma de 3.3V parece que no funciona.
El sensor interno no es fiable porque soporta el calor producido por el procesador. Además no está disponible en muchas placas.
Dos programas más a elegir en la lista de Random Nerd Tutorials o KYO4. ¿Te he dicho alguna vez que he gastado mucho dinero en equipos LoRa y LoRaWAN? Quizá deberíamos aprovecharlos.
¿Sabías que “Random Nerd Tutorials” se hace aquí al lado, en Porto? Saber electrónica + saber inglés = éxito.
Suelda la antena y una tira de pines con la ayuda de unos alicates y mucho cuidado. Este módulo no tiene la separación típica de 0.1”.
Introducción y cableado en la página de Rui Santos: https://randomnerdtutorials.com/esp32-lora-rfm95-transceiver-arduino-ide/
Créate una cuenta en https://console.thethingsnetwork.org y crea una aplicación guiándote por estas páginas:
TheThingsNetwork.h
para Arduino IDE: https://www.thethingsnetwork.org/docs/devices/arduino/usage/index.htmlTienes dos modos de activación: OTAA y ABP.