Table des matières:
- Étape 1: faire fonctionner le SIM800l
- Étape 2: faire fonctionner le RTC DS1307 avec le capteur DS18B20
- Étape 3: faire fonctionner la thermistance NTC MF52AT
- Étape 4: Faites travailler tout le monde ensemble
- Étape 5: cela a fonctionné
Vidéo: Envoie un SMS avec température à temps : 5 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
L'idée est d'obtenir un sms de température de la maison de mon père.
Rien d'extraordinaire à assembler rapidement les pièces.
Les pièces sont:
- Carte contrôleur Geekcreit® ATmega328P Nano V3 Compatible Arduino
- Carte d'extension DIY NANO IO Shield V1. O pour Arduino
- Module d'horloge temps réel RTC IIC / I2C basé sur DS1307 et DS18b20
- GSM/GPRS quadribande SIM800L
- LM2596 Mini convertisseur DC-DC Module d'alimentation abaisseur réglable
- Thermistance NTC MF52AT température
Tout d'abord beaucoup de lecture et de recherche.
Avant d'utiliser enfin le Geekcreit® Nano, je teste toutes les pièces avec un Arduino Uno.
Étape 1: faire fonctionner le SIM800l
Un point principal est la puissance du Sim800L.
J'utilise un convertisseur Mini DC-DC LM2596, réglé sur 3,7 volts et une alimentation séparée.
Pour tester la connexion avec les commandes AT+ ce côté est très utilisable:
Démarrage rapide SIM800 (SIM800L) avec Arduino
Avec Désactiver le code PIN à l'aide du modem gsm aux commandes, j'ai récupéré le code PIN de la sim.
La prochaine considération quelle bibliothèque. Internet offre une solution différente.
Ma solution est la bibliothèque de Mattias Aabmets: AspenSIM800
Son exemple: Send_SMS.ino a utilisé I comme programme de base et connecte une à une toutes les autres parties entre elles.
La broche Tx et la broche Rx sont le code pour:
RX_PIN 10 d'Arduino. Doit être connecté à la broche TX du module SIM800. TX_PIN 11 d'Arduino. Doit être connecté à la broche RX du module SIM800
C'est toujours une bonne idée de lire les fichiers *.ccp et *.h dans les bibliothèques.
Ils contiennent de nombreuses astuces et connaissances intéressantes.
Étape 2: faire fonctionner le RTC DS1307 avec le capteur DS18B20
J'ai utilisé ce côté: simtronyx - le blog pour le DS1307 et le DS18B20.
L'horloge a une connexion bus I2C et c'est pour l'Arduino Uno: A4 (SDA) - A5 (SCL)
Le DS18B20 que j'ai connecté au D3.
J'ai lu que dans un SMS, vous ne pouvez pas envoyer de flottants uniquement en chaîne, j'ai donc dû traduire les flottants en chaîne.
Ce que je fais avec cet extrait de code que j'ai trouvé:
m
MyString1 = String(currentTemp, 2); //Convertir le flottant en chaîne
MaChaîne1 = (MaChaîne1 + " C - RoomTemperatur:) ");
// convertir la chaîne en char commence ici
// Longueur (avec un caractère supplémentaire pour le terminateur nul)
int str_len1 = MaChaîne1.length() + 1; // Préparer le tableau de caractères (le buffer)
char char_array1[str_len1]; // Copiez-le
MyString1.toCharArray(char_array1, str_len1); // convertir la chaîne en caractère la termine
Je vais être honnête, je ne sais pas comment ça marche, mais ça marche.
Étape 3: faire fonctionner la thermistance NTC MF52AT
J'ai travaillé avant avec une thermistance, donc c'était la partie la plus facile.
Mais aussi ici, vous pouvez trouver une solution différente.
Dans le code final, vous pouvez trouver le mien.
Ici, vous pouvez également trouver la traduction Floats to String.
J'ai soudé du fil et la résistance de 10 k ohms à la thermistance.
Étape 4: Faites travailler tout le monde ensemble
J'ai donc écrit toutes les parties du programme ensemble.
Maintenant, je devais comprendre comment envoyer un SMS tous les jours, à la même heure.
J'ai lu sur différentes idées, certaines avec un TimerAlarm et d'autres approches.
Mais j'ai trouvé une solution simple quelque part dans le forum arduino:
if (now.hour() == 8 && now.minute() == 00 && now.second () == 59)
{
SIM.smsSend(addr, char_array); // thermistance
retard (500); SIM.smsSend(addr, char_array1); // DS18B20 }
Mais pourquoi now.second = 59 car il envoie un SMS entier d'une minute. C'est le cas pour moi, mais essayez vous-même.
Après quelques tests, j'ai téléchargé le programme sur le Geekcreit® Nano.
Ce n'est peut-être pas la meilleure écriture de programme:) mais elle fait ce que l'on souhaite.
Parce que le Geekcreit® ATmega328P Nano a des problèmes d'IDE Arduino, je télécharge par terminal (Linux Mint) lance l'USBtinyisp avec ceci: avrdude -c usbtiny -p atmega328p -U flash:w:SomeHexFile.hex
Étape 5: cela a fonctionné
Oui cela a fonctionné et il est placé dans la maison.
Tous les jours à 6h00, je reçois un SMS avec la température.
Conseillé:
Un compteur de température, de conductivité et de niveau d'eau de l'eau de puits en temps réel : 6 étapes (avec photos)
Un compteur de température, de conductivité et de niveau d'eau de l'eau de puits en temps réel : ces instructions décrivent comment construire un compteur d'eau en temps réel à faible coût pour surveiller la température, la conductivité électrique (CE) et les niveaux d'eau dans les puits creusés. Le compteur est conçu pour être suspendu à l'intérieur d'un puits creusé, mesurer la température de l'eau, EC et
"Alexa, envoie-moi les paroles à _____": 9 étapes (avec photos)
"Alexa, Send Me the Lyrics to _____": Vous écoutez une chanson avec laquelle vous voulez chanter ? Vous devriez normalement passer par la tâche ardue de taper le nom de la chanson dans google, suivi du mot "paroles". Vous feriez aussi normalement beaucoup de fautes de frappe, de clics erronés
Save My Child : le siège intelligent qui envoie des SMS si vous oubliez l'enfant dans la voiture : 8 étapes
Save My Child : le siège intelligent qui envoie des SMS en cas d'oubli de l'enfant dans la voiture : il est installé dans les voitures, et grâce à un détecteur placé sur le siège enfant, il nous prévient - par SMS ou appel téléphonique - si nous loin sans emmener l'enfant avec nous
Nodemcu envoie des données de température et d'humidité à Thingspeak : 7 étapes
Nodemcu envoie des données de température et d'humidité à Thingspeak : Ici, dans ce tutoriel, nous avons interfacé nodemcu avec le capteur dht11 et envoyé des données de température et d'humidité au serveur Thingspeak. Ici, nous avons également tracé le graphique de la température et de l'humidité sur le serveur Thingspeak
Arduino envoie des données de température et d'humidité au serveur MySQL (PHPMYADMIN): 5 étapes
Arduino envoie des données de température et d'humidité au serveur MySQL (PHPMYADMIN): Dans ce projet, j'ai interfacé DHT11 avec arduino, puis j'envoie des données de dht11 qui sont l'humidité et la température à la base de données phpmyadmin. Ici, nous utilisons un script PHP pour pousser les données vers la base de données phpmyadmin