Taula de continguts:
- Pas 1: Programació de l'ATTINY 85
- Pas 2: penjar el programa a l'ATTINY85
- Pas 3: Execució del programa
- Pas 4: Conclusió
Vídeo: Alertes temporals de text per SMS des d'un ATTINY85 i A1 GSM: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Aquest instructiu us mostra com captar la temperatura des d’un senzill sensor de temperatura i enviar-la per SMS al vostre telèfon mòbil. Per simplificar les coses, envio la temperatura a un interval fixat, però també mostro com això només es pot fer mitjançant excepcions / alertes. El maquinari té un cost molt baix, menys de 10 dòlars, tot i que hi ha els costos recurrents de sms a tenir en compte.
L’elevació pesada es realitza amb el senzill però potent ATTINY 85 que capta les dades de temperatura i desencadena un SMS que s’envia a través d’un mòdul GSM AI-Thinker A6.
En resum, escriviu el codi ATTINY85 a l'entorn Arduino IDE i el graveu a l'ATTINY85 mitjançant un convertidor USBASP sèrie / USB. He cobert la configuració del mòdul AI-Thinker A6 GSM i Arduino IDE en dos tutorials anteriors. El que és diferent aquí és la interfície del mòdul GSM ATTINY i A6 mitjançant comunicacions en sèrie.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
Després de la programació, ATTINY llegeix les dades de temperatura d’un sensor de termòmetre (Dallas 18B20) i, a continuació, envia les dades i les ordres per connexió en sèrie al mòdul GSM A6, que les envia com a SMS al vostre telèfon mòbil / intel·ligent.
Això és el que necessiteu:
1. Convertidor USBASP sèrie / USB.
2. ATINY 85.
3. Mòdul GSM AI-Thinker A6 versió 6 (amb un simulador que té crèdits SMS).
4. Font d'alimentació de taulers de 3.3v per a l'ATTINY85.
5. 3.3.v Font d'alimentació USB per al mòdul GSM AI-Thinker A6.
6. Sensor de temperatura Dallas 18B20..
7. Resistència de 4,7 k per al sensor 18B20.
8. Taula de pa i cables.
9. Arduino IDE (he utilitzat la versió 1.8.5. Per a això).
10. Ordinador portàtil Windows X (he utilitzat la versió 10) amb un port USB gratuït.
Pas 1: Programació de l'ATTINY 85
Aquí teniu el codi IDE d’Arduino (haureu de canviar el número de telèfon al qual voleu enviar l’SMS).
#include #include #include
// *** // *** Definiu els pins RX i TX. Trieu dos // *** pins que no s'utilitzin. Intenteu evitar D0 (pin 5) // *** i D2 (pin 7) si teniu previst utilitzar I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3
// *** // *** Definiu el port sèrie basat en el programari. Utilitzant el nom // *** Serial perquè el codi es pugui utilitzar en altres plataformes // *** que admetin sèries basades en maquinari. Als // *** xips que admeten la sèrie de maquinari, només // *** comenteu aquesta línia. // ***
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) // *** // Freqüència ATTINY 85 ajustada a 8 MHz intern
// *** // *** Pin en què està connectat el cable // *** de dades OneWire. // *** #define ONE_WIRE_BUS 1
// *** // *** Configureu una instància oneWire per comunicar-vos amb qualsevol dispositiu OneWire // *** (no només els circuits de temperatura màxima / Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Passeu la nostra referència oneWire a Dallas Temperature. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);
void setup () {// *** // *** Inicialitza el port sèrie // *** mySerial.begin (115200); retard (60000);
// *** Inicieu la biblioteca. _sensors.begin (); }
bucle buit () {
// *** // *** Obteniu la temperatura actual i mostreu-la. // *** _sensors.requestTemperatures (); endarreriment (2000); doble tempC = _sensors.getTempCByIndex (0); doble tempF = _sensors.getTempFByIndex (0); // comproveu si hi ha errors - de vegades a l'inici, la temperatura es mostra com a 85C
if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Massa calent");}}
void SMS_temp (mytemp doble, String myalert) {mySerial.println ("AT + CMGF = 1"); // s'estableix en mode de retard SMS (1000); mySerial.println ("AT + CMGF = 1"); // s'estableix en mode de retard SMS (1000); //mySerial.println("AT+CMGS=\"+EU NÚMERO / ""); // definir el número de telèfon (embolicat entre cometes dobles) endarreriment (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); retard (1000); mySerial.write (0x1A); // envia ctrl + z final del retard del missatge (1000); mySerial.write (0x0D); // Retorn del carro amb retard hexagonal (1000); mySerial.write (0x0A); retard (1000000); // 17 minuts: ajusteu-lo segons la vostra aplicació}
Obriu l'entorn IDE d'Arduino: he descrit com trobar-vos el camí detallat a la meva instrucció anterior a la qual he al·ludit anteriorment.
Necessitareu les biblioteques següents
SoftwareSerial.h
OneWire.h
DallasTemperature.h
A continuació, configureu els pins RX i TX a l'ATINY85 que necessiteu connectar amb l'A1 Thinker. L’ATTINY 85 té 8 pins, quatre a cada costat i s’alinea mitjançant el punt de la superfície com a referència. El pin 1 o el PIN RESET es troba al costat d'aquest punt.
(en aquest cas he triat Pin2 i 3: es troben al mateix costat que el PIN RESET que es troba al costat del punt a la superfície de l'ATTINY 85. El Pin 2 és el següent pin del pin RESET mentre que el Pin 3 es troba entre Pin 2 i TERRA)
A continuació, heu de configurar el sensor de temperatura -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
A continuació, configureu el port sèrie del programari
mySerial.begin (115200);
retard (60000);
i després truqueu als sensors amb _sensors.begin ();
A continuació, hi ha el bucle, que examina en un moment predeterminat, registra la temperatura i envia un missatge / alerta en funció del valor. Utilitza una funció SMS_temp que també és on s'estableix el temps del bucle
bucle buit () {sensors.requestTemperatures (); endarreriment (2000);
doble tempC = _sensors.getTempCByIndex (0);
doble tempF = _sensors.getTempFByIndex (0);
if (tempC <= 14) {SMS_temp (tempC, "DANGEROUSLY Cold");}
if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Bastant fred");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}
if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Massa calent");}
}
==============
A continuació, configureu l'IDE Arduino per preparar-vos la càrrega a l'ATTINY85.
Hi ha diverses coses a tenir en compte
1- Si no teniu la família de taulers ATTINY, afegiu la següent url https://raw.githubusercontent.com/damellis/attiny/… a Fitxer / Preferències / URL de gestor de taulers addicionals, A continuació, dins de l’IDE Arduio, feu clic a Eines / Tauler / Gestor de taules i cerqueu ATTINY i instal·leu la nova placa. Canvieu el processador a Attiny85.
Pas 2: penjar el programa a l'ATTINY85
A més, consulteu la informació prèvia sobre aquest tema:
L’ATTINY85 té dos modes, el de programació i el de funcionament, respectivament. MODE DE PROGRAMACIÓ En primer lloc, identifiqueu els pins de l'ATTINY85. Per fer-ho, busqueu la poca osca a la superfície del xip que hi ha al costat del pin RST / RESET. Utilitzant això com a punt de referència, podeu identificar la resta de pins. Tota aquesta informació es proporciona al full de dades A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
L'USBasp i ATTINY85 s'han de connectar tal com es mostra a la imatge superior.
A continuació, a l'IDE Arduino, configureu el programador a USBasp i la freqüència a 8Mhz intern.
Connecteu l'USBasp a un port USB del vostre ordinador portàtil (a Windows 10, si no teniu el controlador USBasp, utilitzeu Zadig segons el lloc web
A continuació, amb l'USBasp connectat, seleccioneu el Sketch / upload d'Arduino IDE i, amb sort, hauríeu de veure el progrés de la càrrega que es mostra en lletres vermelles de l'Arduino IDE i que finalitza amb avrdude fet. Gràcies.
Qualsevol error en aquesta etapa sol estar associat a cables solts o a un controlador incorrecte.
Pas 3: Execució del programa
En primer lloc, alguna cosa sobre el sensor del termòmetre Dallas 18b20. Té 3 pins, terra (G), dades (D) i VCC com es mostra a la imatge superior. Per funcionar, requereix unir el D i el VCC amb una resistència de 4,7 k. G i VCC estan connectats als pols respectius mentre que D està connectat a un ATTINY 85, pin - [6] PB1, tal com es configura al codi.
A continuació, connecteu ATTINY a A6 GSM de la següent manera (i es mostra a la part superior)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ATTINY GND A6 GND
i a la pròpia A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (encara no us connecteu a terra !!!!!)
Ara engegueu els dos dispositius i, al cap d’uns segons, toqueu temporalment el pin de terra A6 amb el cable connectat al pin A6 RST. L’A6 s’encendrà i s’encendrà i, amb sort, aviat haureu de rebre dades de temperatura al telèfon.
Pas 4: Conclusió
Aquesta instrucció pot semblar bastant senzilla, però la idea és il·lustrar el que es pot aconseguir amb components de baix cost. Viouslybviament, si teniu accés al wi-fi o a un hub BLE, hi ha solucions més adequades.
No he cobert altres funcions com ara enviar un SMS al telèfon per iniciar la transmissió o enregistrament de temperatura, etc.
Recomanat:
Com enviar missatges de text SMS des del vostre projecte Arduino ESP: 6 passos
Com enviar missatges de text SMS des del vostre projecte Arduino ESP: aquest instructiu mostra com enviar missatges de text SMS des del vostre projecte arduino mitjançant un dispositiu ESP8266 i una connexió WiFi. Per què utilitzeu SMS? * Els missatges SMS són molt més ràpids i fiables que la notificació d’aplicacions missatges. * Els missatges SMS també poden
Obteniu alertes per correu electrònic des del vostre sistema de seguretat domèstica mitjançant Arduino: 3 passos
Obteniu alertes per correu electrònic des del vostre sistema de seguretat domèstic mitjançant Arduino: mitjançant Arduino, podem adaptar fàcilment la funcionalitat bàsica de correu electrònic a pràcticament qualsevol instal·lació de sistema de seguretat existent. Això és especialment adequat per a sistemes antics que és probable que hagin estat desconnectats durant molt de temps d'un servei de monitorització
Alarma de porta de bricolatge amb alertes de text: 5 passos
Alarma de porta de bricolatge amb alertes de text: feu la vostra pròpia alarma de porta / finestra amb elements electrònics senzills, imants i Raspberry Pi. El Raspberry Pi s’utilitza per enviar-vos missatges de text o correu electrònic quan s’obre la porta. Materials necessaris (enllaços inclosos): Raspberry Pi (aquí teniu el kit que hem utilitzat) Reed Switch Neodymiu
Alarma de porta Arduino amb alertes de text: 14 passos (amb imatges)
Alarma de porta Arduino amb alertes de text: es tracta d’una alarma de porta basada en Arduino que utilitza un interruptor magnètic de canya per determinar l’estat de la porta i té una alarma sonora i una alarma basada en missatges de text
Adhesius de cintes temporals Ipod: 7 passos
Calcomanies de cintes temporals per a iPod: feu les vostres pròpies calcomanies per a iPods, portàtils, pràcticament qualsevol sufacació plana amb cinta d’embalatge i imatges de revistes que converteixin el vostre iPod en únic per fora com per dins en aquest món ple d’igualtat