Aquí encontrarás un lugar dónde podremos desarrollar nuestras ideas. Trabajando en equipo lograremos sacar nuestros proyectos adelante y en el proceso aprenderemos técnicas de investigación y nuevas metodologías en programación y circuitos.
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
const char* ssid = “NOMBRE DE RED WIFI”; //Aquí va el nombre de la red WIFI
const char* password = “CONTRASEÑA”; //Aquí va la contraseña
const char* phone_number = “573508319378”; //Aquí va el número de télefono dónde llegará el mensaje
const char* api_key = “6475417”; //Aquí va la KEY de la API
const char* googleGeolocationAPI = “https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyAgcC6oiYsf1WI_gtNLpFAcmYCdYzCbaaw”; //Aquí va el link de mi API de google maps
int botonPin = 32;
int estadoAnterior = LOW;
double latitude;
double longitude;
void setup() {
Serial.begin(115200);
pinMode(botonPin, INPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println(“Conectando a WiFi…”);
}
Serial.println(“Conectado a WiFi”);
}
void loop() {
int estado = digitalRead(botonPin);
if (estado != estadoAnterior) {
if (estado == HIGH) {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(googleGeolocationAPI);
http.addHeader(“Content-Type”, “application/json”);
int httpResponseCode = http.POST(“{}”); // Empty JSON object
if (httpResponseCode == HTTP_CODE_OK) {
String payload = http.getString();
DynamicJsonDocument jsonDocument(512);
deserializeJson(jsonDocument, payload);
latitude = jsonDocument[“location”][“lat”];
longitude = jsonDocument[“location”][“lng”];
Serial.print(“Latitude: “);
Serial.println(latitude, 6);
Serial.print(“Longitude: “);
Serial.println(longitude, 6);
} else {
Serial.print(“HTTP Error: “);
Serial.println(httpResponseCode);
}
http.end();
} else {
Serial.println(“WiFi Disconnected. Reconnecting…”);
WiFi.begin(ssid, password);
}
Serial.println(“press”);
// Convertir latitude y longitude en cadenas de caracteres con 10 decimales de precisión
char latitudeStr[20];
dtostrf(latitude, 10, 10, latitudeStr);
char longitudeStr[20];
dtostrf(longitude, 10, 10, longitudeStr);
sendMessage(phone_number, api_key, “Hola%20parece%20que%20estoy%20en%20peligro%20porfavor%20revisa%20mi%20ubicaci%C3%B3%20latitud” + String(longitudeStr) + “longitud” + String(latitudeStr));
} else {
//sendMessage(phone_number, api_key, “el%20bot%C3%B3n%20est%C3%A1%20apagado”);
Serial.println(“no press”);
}
estadoAnterior = estado;
}
}
void sendMessage(const char* phone_number, const char* api_key, String message) {
String url = “https://api.callmebot.com/whatsapp.php?phone=”;
url += phone_number;
url += “&text=”;
url += message;
url += “&apikey=”;
url += api_key;
HTTPClient http;
http.begin(url);
int httpResponseCode = http.GET();
if (httpResponseCode == 200) {
Serial.println(“Éxito!”);
} else {
Serial.print(“Error. Código de respuesta: “);
Serial.println(httpResponseCode);
}
http.end();
delay(10000);
}