Está en la página 1de 3

Hola!

Para lograr lo que quieres, necesitarás algunos componentes adicionales para medir el
voltaje de CA y enviar mensajes de texto. Aquí te presento un ejemplo de cómo puedes hacerlo
utilizando un Arduino, un módulo GSM y un sensor de voltaje de CA:

c++Copy code
#include <SoftwareSerial.h> SoftwareSerial GSM(7, 8) ; // RX, TX #define SIM_PIN "" // Si su tarjeta SIM
no tiene PIN, déjelo vacío. #define PHONE_NUMBER "+1234567890" // Número de teléfono para enviar
SMS #define VOLTAGE_PIN A0 // Pin analógico donde se conecta el sensor de voltaje de CA float
voltage; // Variable para almacenar el valor de voltaje medido int threshold = 200 ; // Umbral de voltaje en
el que se considera que hay una falla en la fuente de alimentación void setup() { Serial. begin ( 9600 );
GSM. begin ( 9600 ); delay ( 5000 ); Serial. println ( "Iniciando..." ); GSM. println ( "AT+CMGF=1" ); //
Configura el modo de mensaje de texto delay ( 1000 ); Serial. println ( "Listo!" ); } void loop() { voltage =
analogRead (VOLTAGE_PIN) * 0.0049 ; // Lee el voltaje de CA en el pin analógico y lo convierte en voltios
Serial. print ( "Voltaje: " ); Serial. print (voltage); Serial. println ( "V" ); if (voltage < threshold) { // Si el
voltaje es menor que el umbral, envía un mensaje de texto sendSMS (PHONE_NUMBER, "La fuente de
alimentación ha fallado" ); delay ( 60000 ); // Espera un minuto antes de enviar otro mensaje para evitar el
spam } delay ( 1000 ); } void sendSMS(String number, String message) { GSM. println ( "AT+CMGF=1" );
// Configura el modo de mensaje de texto delay ( 1000 ); GSM. println ( "AT+CMGS=\"" + number + "\"" );
// Especifica el número de teléfono al que se enviará el mensaje delay ( 1000 ); GSM. print (message); //
Escribe el mensaje delay ( 1000 ); GSM. write ( 26 ); // Envía el carácter de control ASCII para indicar el final
del mensaje delay ( 1000 ); }

Este código utiliza el pin analógico A0 del Arduino para leer el voltaje de CA y lo convierte a
voltios. Si el voltaje cae por debajo del umbral especificado (200V en este ejemplo), se llama a
la función sendSMS() para enviar un mensaje de texto al número de teléfono especificado. La
función sendSMS() configura el módulo GSM para enviar mensajes de texto, especifica el
número de teléfono al que se enviará el mensaje y envía el mensaje de texto.

Ten en cuenta que deberás conectar correctamente el sensor de voltaje de CA al pin analógico
A0 y alimentar correctamente el Arduino y el módulo GSM. Además, asegúrate de que tu
tarjeta SIM tenga suficiente saldo para enviar mensajes de texto y que el número de teléfono
especificado sea correcto.

que componentes debo comprar


ChatGPT
Para implementar el proyecto que mencionaste, necesitarás los siguientes componentes:

1. Arduino Uno o cualquier otro modelo compatible


2. Módulo GSM, como el SIM900A o SIM800L
3. Sensor de voltaje de CA, como el ZMPT101B o SCT-013
4. Transformador de voltaje de CA a 5V DC, para alimentar el Arduino y el sensor de voltaje
5. Adaptador de corriente de 5V DC, para alimentar el módulo GSM
6. Cable USB A a B, para conectar el Arduino a tu computadora
7. Tarjeta SIM con capacidad para enviar mensajes de texto
Además de estos componentes, necesitarás herramientas básicas de electrónica, como un
soldador, alicates y destornilladores.

Ten en cuenta que algunos de estos componentes pueden variar dependiendo de la marca o
modelo que elijas, pero la mayoría de los sensores de voltaje de CA y los módulos GSM son
compatibles con el Arduino. También asegúrate de verificar las especificaciones de los
componentes antes de comprarlos para asegurarte de que sean compatibles y adecuados para
tu proyecto.

se podría habilitar un terminal en el arduino y enviarle comandos por sms ?


ChatGPT
Sí, es posible habilitar un terminal en el Arduino y enviarle comandos por SMS a través del
módulo GSM. Para lograr esto, puedes utilizar una biblioteca de software para el
procesamiento de comandos, como la biblioteca CommandParser, y modificar el código que te
proporcioné anteriormente para que pueda recibir y procesar comandos enviados por SMS.

Aquí hay un ejemplo de cómo podrías hacerlo:

c++Copy code
#include <SoftwareSerial.h> #include <CommandParser.h> SoftwareSerial GSM(7, 8) ; // RX, TX #define
SIM_PIN "" // Si su tarjeta SIM no tiene PIN, déjelo vacío. #define PHONE_NUMBER "+1234567890" //
Número de teléfono para enviar SMS #define VOLTAGE_PIN A0 // Pin analógico donde se conecta el
sensor de voltaje de CA float voltage; // Variable para almacenar el valor de voltaje medido int threshold =
200 ; // Umbral de voltaje en el que se considera que hay una falla en la fuente de alimentación // Crea una
instancia de CommandParser CommandParser parser; void setup() { Serial. begin ( 9600 );
GSM. begin ( 9600 ); delay ( 5000 ); Serial. println ( "Iniciando..." ); GSM. println ( "AT+CMGF=1" ); //
Configura el modo de mensaje de texto delay ( 1000 ); Serial. println ( "Listo!" ); // Agrega los comandos que
deseas procesar parser. addCommand ( "on" , turnOn); parser. addCommand ( "off" , turnOff); } void loop()
{ voltage = analogRead (VOLTAGE_PIN) * 0.0049 ; // Lee el voltaje de CA en el pin analógico y lo
convierte en voltios Serial. print ( "Voltaje: " ); Serial. print (voltage); Serial. println ( "V" ); if (voltage <
threshold) { // Si el voltaje es menor que el umbral, envía un mensaje de texto
sendSMS (PHONE_NUMBER, "La fuente de alimentación ha fallado" ); delay ( 60000 ); // Espera un minuto
antes de enviar otro mensaje para evitar el spam } // Lee los mensajes de texto entrantes while
(GSM. available ()) { String message = GSM. readString (); parser. parse (message); // Procesa el mensaje con
CommandParser } delay ( 1000 ); } void sendSMS(String number, String message)
{ GSM. println ( "AT+CMGF=1" ); // Configura el modo de mensaje de texto delay ( 1000 );
GSM. println ( "AT+CMGS=\"" + number + "\"" ); // Especifica el número de teléfono al que se enviará el
mensaje delay ( 1000 ); GSM. print (message); // Escribe el mensaje delay ( 1000 ); GSM. write ( 26 ); //
Envía el carácter de control ASCII para indicar el final del mensaje delay ( 1000 ); } // Funciones de
comando void turnOn() { digitalWrite (LED_BUILTIN, HIGH); sendSMS (PHONE_NUMBER, "La luz ha
sido encendida" ); } void turnOff() { digitalWrite (LED_BUILTIN, LOW); sendSMS (PHONE_NUMBER,
"La luz ha sido apagada" ); }
En este ejemplo, he agregado dos comandos: on y off, que encienden y apagan el LED
integrado en el pin 13 del Arduino, respectivamente.

También podría gustarte