Table des matières:

Alertes SMS SMS Temp depuis un GSM ATTINY85 et A1 : 5 étapes
Alertes SMS SMS Temp depuis un GSM ATTINY85 et A1 : 5 étapes

Vidéo: Alertes SMS SMS Temp depuis un GSM ATTINY85 et A1 : 5 étapes

Vidéo: Alertes SMS SMS Temp depuis un GSM ATTINY85 et A1 : 5 étapes
Vidéo: Отправьте электронное письмо с Arduino менее чем за 5 минут - Учебное пособие 1Sheeld 2024, Juillet
Anonim
SMS SMS Alertes de température à partir d'un GSM ATTINY85 et A1
SMS SMS Alertes de température à partir d'un GSM ATTINY85 et A1

Cette instructable vous montre comment capturer la température à partir d'un simple capteur de température et l'envoyer par SMS sur votre téléphone portable. Pour simplifier les choses, j'envoie la température à intervalle défini mais je montre aussi comment cela peut se faire uniquement par exception/alertes. Le matériel est très bon marché, moins de 10 dollars, bien qu'il y ait les coûts récurrents des SMS à prendre en compte.

Le gros du travail est effectué par le simple mais puissant ATTINY 85 qui capture les données de température puis déclenche un SMS à envoyer via un module GSM AI-Thinker A6.

En bref, vous écrivez le code ATTINY85 dans l'environnement Arduino IDE et le gravez sur ATTINY85 à l'aide d'un convertisseur série/USB USBASP. J'ai couvert la configuration du module GSM AI-Thinker A6 et de l'IDE Arduino dans deux tutoriels précédents. Ce qui est différent ici, c'est l'interfaçage des modules GSM ATTINY et A6 à l'aide de communications série.

www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…

Après programmation, l'ATTINY lit les données de température d'un capteur thermomètre - Dallas 18B20- puis envoie les données et les commandes par connexion série au module GSM A6 qui les envoie ensuite sous forme de SMS à votre téléphone mobile/smart.

Voici ce dont vous avez besoin:

1. Convertisseur série/USB USBASP.

2. ATTINE 85.

3. Module GSM AI-Thinker A6 version 6 (avec une sim qui a des crédits SMS).

4. Bloc d'alimentation 3,3 v pour l'ATTINY85.

5. 3.3.v Alimentation USB pour le module GSM AI-Thinker A6.

6. Capteur de température Dallas 18B20.

7. Résistance de 4,7k pour le capteur 18B20.

8. Planche à pain et câbles.

9. Arduino IDE (j'ai utilisé la version 1.8.5. pour cela).

10. Ordinateur portable Windows X (j'ai utilisé la version 10) avec un port USB gratuit.

Étape 1: Programmation de l'ATTINY 85

Voici le code Arduino IDE (Vous devrez changer le numéro de téléphone auquel vous souhaitez envoyer le SMS.)

#include #include #include

// *** // *** Définit les broches RX et TX. Choisissez deux broches // *** qui ne sont pas utilisées. Essayez d'éviter D0 (broche 5) // *** et D2 (broche 7) si vous prévoyez d'utiliser I2C. // *** #définir RX 3 // *** D3, Broche 2 #définir TX 4 // *** D4, Broche 3

// *** // *** Définit le port série basé sur le logiciel. Utilisation du // *** nom Serial afin que le code puisse être utilisé sur d'autres // *** plates-formes prenant en charge la série matérielle. Sur les puces // *** qui prennent en charge la série matérielle, // *** commentez simplement cette ligne. // ***

SoftwareSerial mySerial = SoftwareSerial (RX, TX);

// *** // *** Brochage 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) // *** // Fréquence ATTINY 85 réglée sur 8 MHz interne

// *** // *** Broche sur laquelle le fil de données OneWire // *** est connecté. // *** #définir ONE_WIRE_BUS 1

// *** // *** Configurez une instance oneWire pour communiquer avec tous les périphériques OneWire // *** (pas seulement les circuits intégrés de température Maxim/Dallas). // *** OneWire _oneWire = OneWire(ONE_WIRE_BUS);

// *** // *** Transmettez notre référence oneWire à Dallas Temperature. // *** DallasTemperature _sensors = DallasTemperature(&_oneWire);

void setup() { // *** // *** Initialiser le port série // *** mySerial.begin(115200); retard (60000);

// *** Démarrez la bibliothèque. _sensors.begin(); }

boucle vide() {

// *** // *** Récupère la température actuelle et l'affiche. // *** _sensors.requestTemperatures(); retard (2000); double tempC = _sensors.getTempCByIndex(0); double tempF = _sensors.getTempFByIndex(0); // recherche d'erreurs - parfois au démarrage, température indiquée comme 85C

if (tempC 14 && tempC 18 && tempC = 23 && error_temperature){SMS_temp(tempC, " Trop chaud");} }

void SMS_temp(double mytemp, String myalert) { mySerial.println("AT+CMGF=1"); //réglé en mode SMS delay(1000); mySerial.println("AT+CMGF=1"); //réglé en mode SMS delay(1000); //mySerial.println("AT+CMGS=\"+VOTRE NUMÉRO\""); //définir le numéro de téléphone (entre guillemets doubles) delay(1000); mySerial.print(mytemp, 1); mySerial.print(monalerte); retard(1000); mySerial.write(0x1A); // envoie ctrl+z fin de message delay(1000); mySerial.write(0x0D); // Retour chariot en Hex delay(1000); mySerial.write(0x0A); retard(1000000); // 17 minutes - ajustez en fonction de votre propre application }

Ouvrez l'environnement Arduino IDE - j'ai décrit comment vous y retrouver en détail dans mon précédent instructable auquel j'ai fait allusion plus tôt.

Vous aurez besoin des bibliothèques suivantes

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Ensuite, configurez les broches RX et TX sur l'ATTINY85 dont vous avez besoin pour vous connecter au A1 Thinker. L'ATTINY 85 a 8 broches, quatre de chaque côté et est aligné en utilisant le point sur la surface comme référence. La broche 1 ou la broche RESET est à côté du point.

(dans ce cas, j'ai choisi les broches 2 et 3 - elles sont du même côté que la broche RESET qui se trouve à côté du point sur la surface de l'ATTINY 85. La broche 2 est la broche suivante à partir de la broche RESET tandis que la broche 3 est entre la broche 2 et TERRE)

Ensuite, vous devez configurer le capteur de température -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire(ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature(&_oneWire);

Configurez ensuite le port série du logiciel

mySerial.begin(115200);

retard (60000);

puis appelez les capteurs avec _sensors.begin();

Ensuite, il y a la boucle, qui scrute à une heure prédéterminée, enregistre la température et envoie un message / alerte en fonction de la valeur. Il utilise une fonction SMS_temp qui est également l'endroit où vous définissez le timing de la boucle

void loop(){ sensor.requestTemperatures(); retard (2000);

double tempC = _sensors.getTempCByIndex(0);

double tempF = _sensors.getTempFByIndex(0);

if (tempC <= 14){SMS_temp(tempC, " DANGEREUX Froid");}

if (tempC > 14 && tempC <= 18) {SMS_temp(tempC, " Assez froid");}

if (tempC > 18 && tempC < 23) {SMS_temp(tempC, " Temp Just right");}

if (tempC >= 23 && error_temperature){SMS_temp(tempC, " Trop chaud");}

}

==============

Ensuite, configurez l'IDE Arduino pour préparer le téléchargement vers l'ATTINY85.

Un certain nombre de choses à noter

1- Si vous n'avez pas la famille de cartes ATTINY, ajoutez l'url suivante https://raw.githubusercontent.com/damellis/attiny/… dans File/Preferences/Additional Boards Manager URL, Ensuite, dans l'IDE Arduio, cliquez sur Tools/Board/Board Manager et recherchez ATTINY et installez la nouvelle carte. Changez le processeur en Attiny85.

Étape 2: Téléchargement du programme sur l'ATTINY85

Téléchargement du programme sur l'ATTINY85
Téléchargement du programme sur l'ATTINY85

Consultez également mon précédent instructable à ce sujet -

L'ATTINY85 a deux modes, respectivement le mode de programmation et le mode de fonctionnement.1. MODE DE PROGRAMMATION Tout d'abord, identifiez les broches sur l'ATTINY85. Pour ce faire, trouvez la petite encoche sur la surface de la puce qui se trouve à côté de la broche RST/RESET. En l'utilisant comme point de référence, vous pouvez identifier le reste des broches. Toutes ces informations sont fournies dans la fiche technique A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

L'USBasp et l'ATTINY85 doivent être connectés comme indiqué dans l'image ci-dessus.

Ensuite, sur l'IDE Arduino, réglez le programmeur sur USBasp et la fréquence sur 8Mhz interne.

Connectez l'USBasp à un port USB de votre ordinateur portable (Sous Windows 10, si vous n'avez pas le pilote USBasp, utilisez Zadig selon le site Web

Ensuite, avec l'USBasp connecté, sélectionnez à partir de l'esquisse/téléchargement IDE Arduino et, espérons-le, vous devriez voir la progression du téléchargement affichée en lettres rouges de l'IDE Arduino et se terminant par avrdude terminé. Merci.

Toute erreur à ce stade est généralement associée à des câbles desserrés ou au mauvais pilote.

Étape 3: Exécuter votre programme

Exécution de votre programme
Exécution de votre programme
Exécution de votre programme
Exécution de votre programme
Exécution de votre programme
Exécution de votre programme

Tout d'abord, quelque chose à propos du capteur de thermomètre Dallas 18b20. Il a 3 broches, masse (G), données (D) et VCC comme indiqué dans l'image ci-dessus. Pour le fonctionnement, il faut ponter le D et le VCC avec une résistance de 4,7k. G et VCC sont connectés aux pôles respectifs tandis que D est connecté à un ATTINY 85, broche - [6] PB1, comme configuré dans le code.

Ensuite, connectez l'ATTINY à A6 GSM comme suit (et illustré ci-dessus)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

et sur l'A6 elle-même, A6 PWR A6 VCC 5.0A6 RST A6 GND (Ne pas encore connecter à la terre !!!!!)

Mettez maintenant les deux appareils sous tension et après quelques secondes, touchez temporairement la broche de masse A6 avec le câble connecté à la broche A6 RST. L'A6 s'éteindra et s'allumera et, espérons-le, vous devriez bientôt recevoir des données de température sur votre téléphone.

Étape 4: Conclusion

Cette instructable peut sembler assez simple mais l'idée est d'illustrer ce qui peut être réalisé avec des composants à faible coût. Évidemment, si vous avez accès au wi-fi ou à un hub BLE alors il existe des solutions plus adaptées.

Je n'ai pas couvert d'autres fonctionnalités telles que l'envoi d'un SMS au téléphone pour lancer l'enregistrement / la transmission de la température, etc.

Conseillé: