Table des matières:
- Étape 1: Programmation de l'ATTINY 85
- Étape 2: Téléchargement du programme sur l'ATTINY85
- Étape 3: Exécuter votre programme
- Étape 4: Conclusion
Vidéo: Alertes SMS SMS Temp depuis un GSM ATTINY85 et A1 : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
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
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
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é:
Dispositif de sécurité pour femmes avec suivi GPS et alertes à l'aide d'Arduino : 6 étapes
Dispositif de sécurité pour femmes avec suivi GPS et alertes à l'aide d'Arduino : avec toute la technologie à notre disposition ces derniers temps, il n'est pas difficile de construire un dispositif de sécurité pour les femmes qui non seulement générera une alarme d'urgence mais enverra également un message à vos amis, votre famille , ou personne concernée. Ici, nous allons construire un groupe
Comment envoyer des SMS depuis votre projet Arduino ESP : 6 étapes
Comment envoyer des messages texte SMS à partir de votre projet Arduino ESP : Cette instructable montre comment envoyer des messages texte SMS à partir de votre projet arduino à l'aide d'un appareil ESP8266 et d'une connexion WiFi. Pourquoi utiliser SMS ? * Les messages SMS sont beaucoup plus rapides et fiables que la notification d'application messages. * Les SMS peuvent également
Construisez un pot d'arrosage automatique avec WiFi - Arrose les plantes automatiquement et envoie des alertes lorsque l'eau est faible : 19 étapes
Construire un pot d'arrosage automatique bricolage avec WiFi - Arrose les plantes automatiquement et envoie des alertes lorsque l'eau est faible: Ce tutoriel vous montre comment construire une jardinière personnalisée à arrosage automatique connectée au WiFi à l'aide d'une vieille jardinière, d'une poubelle, d'un adhésif et d'un Self Kit de sous-assemblage de pot d'arrosage d'Adosia
Comment construire un système d'arrosage automatique des plantes avec des alertes WiFi : 15 étapes
Comment construire un système d'arrosage automatique des plantes DIY avec alertes WiFi : Ceci est le projet terminé, un système d'arrosage automatique des plantes DIY contrôlé via #WiFi. Pour ce projet, nous avons utilisé le kit de sous-assemblage de système de jardinage automatique à arrosage automatique d'Adosia. Cette configuration utilise des électrovannes d'eau et un moisi analogique du sol
Surveillez les gallons de réservoir de mazout de chauffage avec les alertes par e-mail, SMS et pushbullet : 9 étapes (avec photos)
Surveillez les gallons de réservoir de mazout de chauffage avec des alertes par e-mail, SMS et pushbullet : -- J'ai transmis ceci à 2 compagnies pétrolières différentes pour des considérations de retour/sécurité, et je l'ai géré par le vice-président de la prévention des incendies du service d'incendie C