NovaRobot

Bienvenido al laboratorio de ideas

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.

proyecto : botón de emergencias

int led=15;

void setup()
{
  pinMode(led, OUTPUT);
}

void loop()
{
  digitalWrite(led, HIGH);
  delay(1000); // Wait for 1000 millisecond(s)
  digitalWrite(led, LOW);
  delay(1000); // Wait for 1000 millisecond(s)
}

#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);
}