Tabla de contenido:
- Paso 1: Programación del ATTINY 85
- Paso 2: Carga del programa en ATTINY85
- Paso 3: Ejecución de su programa
- Paso 4: Conclusión
Video: Alertas temporales de texto SMS desde un ATTINY85 y A1 GSM: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Este instructivo le muestra cómo capturar la temperatura de un sensor de temperatura simple y enviarla por SMS a su teléfono móvil. Para simplificar las cosas, envío la temperatura en un intervalo establecido, pero también muestro cómo esto se puede hacer solo mediante excepciones / alertas. El hardware es de muy bajo costo, menos de 10 dólares, aunque hay que considerar los costos recurrentes de sms.
El trabajo pesado lo realiza el simple pero poderoso ATTINY 85, que captura los datos de temperatura y luego activa un SMS que se envía a través de un módulo GSM AI-Thinker A6.
En resumen, escribe el código ATTINY85 en el entorno Arduino IDE y lo graba en el ATTINY85 usando un convertidor USBASP serial / USB. He cubierto la configuración del módulo GSM AI-Thinker A6 y Arduino IDE en dos tutoriales anteriores. Lo que es diferente aquí es la interconexión del módulo GSM ATTINY y A6 mediante comunicaciones en serie.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
Después de la programación, el ATTINY lee los datos de temperatura de un sensor de termómetro, Dallas 18B20, y luego envía los datos y comandos por conexión en serie al módulo GSM A6, que luego lo envía como un mensaje de texto SMS a su teléfono móvil / inteligente.
Esto es lo que necesita:
1. Convertidor USBASP serial / USB.
2. ATTINY 85.
3. Módulo GSM AI-Thinker A6 versión 6 (con un sim que tiene créditos SMS).
4. Fuente de alimentación de tablero de 3.3v para el ATTINY85.
5. Fuente de alimentación USB 3.3.v para el módulo GSM AI-Thinker A6.
6. Sensor de temperatura Dallas 18B20.
7. Resistencia de 4.7k para el sensor 18B20.
8. Protoboard y cables.
9. Arduino IDE (utilicé la versión 1.8.5. Para esto).
10. Computadora portátil con Windows X (yo usé la versión 10) con un puerto USB libre.
Paso 1: Programación del ATTINY 85
Aquí está el código IDE de Arduino (Deberá cambiar el número de teléfono al que desea enviar el SMS).
#incluir #incluir #incluir
// *** // *** Defina los pines RX y TX. Elija dos // *** pines que no se utilicen. Intente evitar D0 (pin 5) // *** y D2 (pin 7) si planea usar I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3
// *** // *** Defina el puerto serie basado en software. Usar el // *** nombre Serial para que el código se pueda usar en otras // *** plataformas que admitan el serial basado en hardware. En // *** chips que admiten la serie de hardware, simplemente // *** comente esta línea. // ***
SoftwareSerial mySerial = SoftwareSerial (RX, TX);
// *** // *** Pinout ATtiny25 / 45/85: // *** PDIP / SOIC / TSSOP // *** ================== ================================================ ========================= // *** // *** (PCINT5 / RESET / ADC0 / dW) PB5 [1] * [8] VCC // *** (PCINT3 / XTAL1 / CLKI / OC1B / ADC3) PB3 [2] [7] PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) // *** (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) PB4 [3] [6] PB1 (MISO / DO / AIN1 / OC0B / OC1A / PCINT1) // *** GND [4] [5] PB0 (MOSI / DI / SDA / AIN0 / OC0A / OC1A / AREF / PCINT0) // *** // Frecuencia ATTINY 85 configurada en 8 MHz internos
// *** // *** Pin en el que está conectado el cable de datos // *** de OneWire. // *** #define ONE_WIRE_BUS 1
// *** // *** Configure una instancia de oneWire para comunicarse con cualquier dispositivo OneWire // *** (no solo los IC de temperatura Maxim / Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Pase nuestra referencia oneWire a la temperatura de Dallas. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);
void setup () {// *** // *** Inicializar el puerto serie // *** mySerial.begin (115200); retraso (60000);
// *** Inicie la biblioteca. _sensors.begin (); }
bucle vacío () {
// *** // *** Obtener la temperatura actual y mostrarla. // *** _sensors.requestTemperatures (); retraso (2000); doble tempC = _sensors.getTempCByIndex (0); doble tempF = _sensors.getTempFByIndex (0); // verifica si hay errores - a veces al inicio, la temperatura se muestra como 85C
if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Too warm");}}
void SMS_temp (doble mytemp, String myalert) {mySerial.println ("AT + CMGF = 1"); // establecer en modo SMS delay (1000); mySerial.println ("AT + CMGF = 1"); // establecer en modo SMS delay (1000); //mySerial.println("AT+CMGS=\"+YOUR NUMBER / ""); // establece el número de teléfono (entre comillas dobles) delay (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); retraso (1000); mySerial.write (0x1A); // envía ctrl + z final del mensaje delay (1000); mySerial.write (0x0D); // Retorno de carro en retardo hexadecimal (1000); mySerial.write (0x0A); retraso (1000000); // 17 minutos: ajuste para adaptarse a su propia aplicación}
Abra el entorno Arduino IDE: he descrito cómo encontrar la manera de solucionar esto en detalle en mi instructable anterior al que aludí anteriormente.
Necesitará las siguientes bibliotecas
SoftwareSerial.h
OneWire.h
DallasTemperature.h
A continuación, configure los pines RX y TX en el ATTINY85 que necesita para conectar con el A1 Thinker. El ATTINY 85 tiene 8 pines, cuatro en cada lado y está alineado usando el punto en la superficie como referencia. El pin 1 o el pin RESET está al lado del punto.
(en este caso, elegí Pin2 y 3 - Estos están en el mismo lado que el pin RESET que está al lado del punto en la superficie del ATTINY 85. Pin 2 es el siguiente pin a lo largo del pin RESET mientras que el Pin 3 está entre Pin 2 y TIERRA)
A continuación, debe configurar el sensor de temperatura -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
A continuación, configure el puerto serie del software
mySerial.begin (115200);
retraso (60000);
y luego llame a los sensores con _sensors.begin ();
A continuación, está el bucle, que sondea a una hora predeterminada, registra la temperatura y envía un mensaje / alerta según el valor. Utiliza una función SMS_temp que también es donde se establece el tiempo del bucle
bucle vacío () {sensores. RequestTemperatures (); retraso (2000);
doble tempC = _sensors.getTempCByIndex (0);
doble tempF = _sensors.getTempFByIndex (0);
if (tempC <= 14) {SMS_temp (tempC, "PELIGROSAMENTE frío");}
if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Bastante frío");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}
if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Demasiado caliente");}
}
==============
A continuación, configure el IDE de Arduino para prepararse para la carga en ATTINY85.
Una serie de cosas a tener en cuenta
1- Si no tiene la familia de tableros ATTINY, agregue la siguiente URL https://raw.githubusercontent.com/damellis/attiny/… en Archivo / Preferencias / URL del Administrador de tableros adicionales, A continuación, dentro del IDE de Arduio, haga clic en Tools / Board / Board Manager y busque ATTINY e instale la nueva placa. Cambie el procesador a Attiny85.
Paso 2: Carga del programa en ATTINY85
Además, consulte mis instrucciones anteriores sobre esto:
El ATTINY85 tiene dos modos, modo de programación y modo de funcionamiento, respectivamente. MODO DE PROGRAMACIÓN En primer lugar, identifique los pines del ATTINY85. Para hacer esto, busque la pequeña muesca en la superficie del chip que está al lado del pin RST / RESET. Utilizando esto como punto de referencia, puede identificar el resto de los pines. Toda esta información se proporciona en la hoja de datos A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
El USBasp y ATTINY85 deben conectarse como se muestra en la imagen de arriba.
A continuación, en el IDE de Arduino, configure el programador en USBasp y la frecuencia en 8Mhz internos.
Conecte el USBasp a un puerto USB en su computadora portátil (en Windows 10, si no tiene el controlador USBasp, use Zadig según el sitio web
A continuación, con el USBasp conectado, seleccione desde Arduino IDE Sketch / upload y, con suerte, debería ver el progreso de carga mostrado en letras rojas del Arduino IDE y terminando con avrdude done. Gracias.
Cualquier error en esta etapa suele estar asociado con cables sueltos o con el controlador incorrecto.
Paso 3: Ejecución de su programa
En primer lugar, algo sobre el sensor del termómetro Dallas 18b20. Tiene 3 pines, tierra (G), datos (D) y VCC como se muestra en la imagen de arriba. Para su funcionamiento, requiere unir el D y VCC con una resistencia de 4.7k. G y VCC están conectados a los polos respectivos, mientras que D está conectado a un ATTINY 85, pin - [6] PB1, como se configura en el código.
A continuación, conecte ATTINY a A6 GSM de la siguiente manera (y se muestra arriba)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ATTINY GND A6 GND
y en el propio A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (¡No conecte a tierra todavía!)
Ahora encienda ambos dispositivos y, después de unos segundos, toque temporalmente el pin de tierra A6 con el cable conectado al pin A6 RST. El A6 se apagará y se encenderá y, con suerte, pronto debería recibir datos de temperatura en su teléfono.
Paso 4: Conclusión
Este instructable puede parecer bastante simple, pero la idea es ilustrar lo que se puede lograr con componentes de bajo costo. Obviamente, si tiene acceso a wi-fi o un concentrador BLE, existen soluciones más apropiadas.
No cubrí otras funciones, como enviar un SMS al teléfono para iniciar la grabación / transmisión de temperatura, etc.
Recomendado:
Cómo enviar mensajes de texto SMS desde su proyecto Arduino ESP: 6 pasos
Cómo enviar mensajes de texto SMS desde su proyecto Arduino ESP: este instructivo demuestra cómo enviar mensajes de texto SMS desde su proyecto arduino usando un dispositivo ESP8266 y una conexión WiFi. ¿Por qué usar SMS? * Los mensajes SMS son mucho más rápidos y confiables que la notificación de la aplicación mensajes. * Los mensajes SMS también pueden
Reciba alertas por correo electrónico desde el sistema de seguridad de su hogar usando Arduino: 3 pasos
Reciba alertas de correo electrónico desde el sistema de seguridad de su hogar usando Arduino: Con Arduino, podemos adaptar fácilmente la funcionalidad básica de correo electrónico en prácticamente cualquier instalación de sistema de seguridad existente. Esto es particularmente adecuado para sistemas más antiguos que probablemente hayan estado desconectados durante mucho tiempo de un servicio de monitoreo
Alarma de puerta de bricolaje con alertas de texto: 5 pasos
Alarma de puerta de bricolaje con alertas de texto: haga su propia alarma de puerta / ventana con algunos dispositivos electrónicos simples, imanes y Raspberry Pi. ¡La Raspberry Pi se usa para enviarle mensajes de texto o correos electrónicos cuando se abre la puerta! Materiales necesarios (enlaces incluidos): Raspberry Pi (aquí está el kit que usamos) Reed SwitchNeodymiu
Alarma de puerta Arduino con alertas de texto: 14 pasos (con imágenes)
Alarma de puerta Arduino con alertas de texto: esta es una alarma de puerta basada en Arduino que utiliza un interruptor de lengüeta magnético para determinar el estado de la puerta y tiene una alarma audible y una alarma basada en mensaje de texto
Las formas más fáciles de imprimir mensajes de texto o conversaciones de IMessages desde el iPhone: 3 pasos
Las formas más fáciles de imprimir mensajes de texto o conversaciones de IMessages desde el iPhone: Hola a todos, En este Instructable, les mostraré las formas más fáciles de imprimir mensajes de texto desde su iPhone. Muchos de los mensajes importantes que recibimos en nuestras vidas ahora son no viniendo por carta, ni siquiera por correo electrónico, sino a través de tex