馃搼 Guia馃Ξ
Iniciamos creando un nuevo proyecto, seleccionamos
NEW PROJECT
Seleccionamos la versi贸n del Espressif
Nombramos a nuestro proyecto "TAGOIO_HTTP", elegimos el ESP32-S3 y seleccionamos
Choose Template
Elegimos una plantilla base:
template-app
Recursos que usaremos
wifi_conn.c
wifi_conn.h
Kconfig.projbuild
menu "WiFi Settings"
config WIFI_SSID
string "SSID de la red Wi-Fi"
default "MiRed"
config WIFI_PASSWORD
string "Password de la red Wi-Fi"
default "12345678"
config WIFI_MAX_RETRY
int "N煤mero m谩ximo de reintentos"
default 5
config WIFI_POWER_SAVE
int "Wi-Fi Power Save mode"
range 0 2
default 0
help
0 = WIFI_PS_NONE
1 = WIFI_PS_MIN_MODEM
2 = WIFI_PS_MAX_MODEM
endmenu
Agregamos estos archivos a la carpeta main de nuestro proyecto
Ingresamos al men煤 de configuraciones ejecutando el siguiente comando en la terminal del proyecto:
idf.py menuconfig
Ingresamos a la opcion de:
WiFi Settings
Editamos el SSID , Password, el numero Maximo de reintentos y el modo de consumo:
Guardamos los cambios y recontruimos el proyecto ejecutando el siguiente comando en el terminal:
idf.py reconfigure
Nos conectamos a la red local y esperamos a que se nos asigne una direcci贸n IP.
main.c
#include "stdio.h"
#include "string.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "nvs_flash.h"
#include "esp_log.h"
#include "sdkconfig.h"
#include "wifi_conn.h"
static const char *TAG = "MAIN";
void app_main(void){
conection_Wifi(CONFIG_WIFI_SSID,CONFIG_WIFI_PASSWORD,CONFIG_WIFI_MAX_RETRY);
//inicia en el modo 0 -> WIFI_PS_NONE
}
Ingresamos a la plataforma de TagoIO
Creamos un nuevo Dispositivo "Custom HTTPS"
Generamos un nuevo Token
Ya tenemos listo para integrarlo al ESP32 S3
Recursos que usaremos
tago_http.c
tago_http.h
Actualizamos el archivo:
Kconfig.projbuild
menu "WiFi Settings"
config WIFI_SSID
string "SSID de la red Wi-Fi"
default "MiRed"
config WIFI_PASSWORD
string "Password de la red Wi-Fi"
default "12345678"
config WIFI_MAX_RETRY
int "N煤mero m谩ximo de reintentos"
default 5
config WIFI_POWER_SAVE
int "Wi-Fi Power Save mode"
range 0 2
default 0
help
0 = WIFI_PS_NONE
1 = WIFI_PS_MIN_MODEM
2 = WIFI_PS_MAX_MODEM
endmenu
menu "TagoIO Settings"
config TAGO_REGION
string "Regi贸n API de TagoIO"
default "us-e1"
help
Regi贸n de tu cuenta TagoIO (ejemplo: us-e1, eu-w1).
La URL quedar谩: https://api..tago.io/data
config TAGO_DEVICE_TOKEN
string "Device-Token del dispositivo"
default ""
help
Copia aqu铆 el Device-Token generado para tu dispositivo en TagoIO.
⚠️ Tr谩talo como secreto (no compartir p煤blicamente).
endmenu
Simularemos los datos de temperatura y los enviaremos cada 10 segundos.
main.c
#include "stdio.h"
#include "string.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "nvs_flash.h"
#include "esp_log.h"
#include "sdkconfig.h"
#include "wifi_conn.h"
#include "tago_http.h"
#include "esp_random.h" //libreria para generar numeros aleatorios
static const char *TAG = "marse";
void app_main(void){
conection_Wifi(CONFIG_WIFI_SSID,CONFIG_WIFI_PASSWORD,CONFIG_WIFI_MAX_RETRY); //inicia en el modo 0 -> WIFI_PS_NONE
while(wifi_is_connected() == true) // ingresa al while solo si esta conectado a la red
{
float temp = (esp_random()%8000)/100.0f; //genera un numero aleatorio entre 0 y 80.00
tago_post_number("temp", temp, "C"); //envia datos a TagoIO
ESP_LOGE(TAG, "data enviada a TagoIO");
vTaskDelay(pdMS_TO_TICKS(10000)); // espera 10 segundos
}
ESP_LOGI(TAG, "No se conecto al a red WiFi");
}
En la terminal ingresamos al men煤 de configuraci贸n con el comando:
idf.py menuconfig
Ingresamos a la Opcion.
TagoIO Settings
Ingresamos la regi贸n y el token del dispositivo creado en TagoIO.
Guardamos los cambios, subimos el c贸digo a nuestro ESP32-S3 y nos dirigimos a TagoIO, en la pesta帽a:
Inspector
Ejemplo de c贸mo enviar dos datos en una sola llamada.
main.c
#include "stdio.h"
#include "string.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "nvs_flash.h"
#include "esp_log.h"
#include "sdkconfig.h"
#include "wifi_conn.h"
#include "tago_http.h"
#include "esp_random.h" //libreria para generar numeros aleatorios
static const char *TAG = "marse";
void app_main(void){
conection_Wifi(CONFIG_WIFI_SSID,CONFIG_WIFI_PASSWORD,CONFIG_WIFI_MAX_RETRY); //inicia en el modo 0 -> WIFI_PS_NONE
while(wifi_is_connected() == true) // ingresa al while solo si esta conectado a la red
{
uint32_t temp = esp_random() % 101; // 0–100
uint32_t hum = 40 + (esp_random() % 31); // 40–70 %
char batch[256];
snprintf(batch, sizeof(batch),
"[{\"variable\":\"temp\",\"value\":%lu,\"unit\":\"C\"},"
"{\"variable\":\"hum\",\"value\":%lu,\"unit\":\"%%\"}]",
temp, hum);
tago_post_batch_json(batch);
vTaskDelay(pdMS_TO_TICKS(15000)); //espera 15 segundos para volver a enviar datos
}
}
























0 Comentarios