Πίνακας περιεχομένων:
- Βήμα 1: Θέστε το SIM800l να λειτουργήσει
- Βήμα 2: Λειτουργήστε τον αισθητήρα RTC DS1307 με αισθητήρα DS18B20
- Βήμα 3: Λειτουργήστε το Thermistor NTC MF52AT
- Βήμα 4: Δούλεψε όλοι μαζί
- Βήμα 5: Λειτούργησε
Βίντεο: Στέλνει ένα sms με Temperatur εγκαίρως: 5 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Η ιδέα είναι να πάρω ένα sms θερμοκρασίας από το πατρικό μου σπίτι.
Τίποτα φανταχτερό μόνο η γρήγορη συναρμολόγηση ανταλλακτικών.
Τα μέρη είναι:
- Geekcreit® ATmega328P Nano V3 Controller Board Συμβατό Arduino
- DIY NANO IO Shield V1. O Expansion Board For Arduino
- Μονάδα ρολογιού πραγματικού χρόνου βασισμένη σε DTC1307 RTC IIC / I2C και DS18b20
- SIM800L Τετραπλής ζώνης GSM / GPRS
- LM2596 Mini DC-DC Converter Ρυθμιζόμενη μονάδα τροφοδοσίας Step Down
- Θερμίστορ NTC MF52AT θερμοκρασία
Κατ 'αρχάς πολύ από το διάβασμα και την αναζήτηση.
Πριν χρησιμοποιήσω τελικά το Geekcreit® Nano, δοκιμάζω όλα τα μέρη με ένα Arduino Uno.
Βήμα 1: Θέστε το SIM800l να λειτουργήσει
Ένα βασικό σημείο είναι η ισχύς για το Sim800L.
Χρησιμοποιώ μετατροπέα LM2596 Mini DC-DC, ρυθμισμένο στα 3,7 βολτ και ξεχωριστό τροφοδοτικό.
Για να ελέγξετε τη σύνδεση με εντολές AT+, αυτή η πλευρά είναι πολύ χρήσιμη:
Quickstart SIM800 (SIM800L) με Arduino
Με Απενεργοποίηση κωδικού PIN χρησιμοποιώντας μόντεμ gsm στις εντολές πήρα βόλτα με τον κωδικό pin sim.
Η επόμενη εξέταση ποια βιβλιοθήκη. Το διαδίκτυο προσφέρει διαφορετική λύση.
Η λύση μου είναι η βιβλιοθήκη από τον Mattias Aabmets: AspenSIM800
Το exampel του: Send_SMS.ino χρησιμοποίησε το I ως βασικό πρόγραμμα και ένα προς ένα συνδέει όλα τα άλλα μέρη μεταξύ τους.
Ο πείρος Tx και ο πείρος Rx είναι κωδικοί για:
RX_PIN 10 του Arduino. Πρέπει να είναι συνδεδεμένο με τον ακροδέκτη TX της μονάδας SIM800. TX_PIN 11 του Arduino. Πρέπει να είναι συνδεδεμένο με τον ακροδέκτη RX της μονάδας SIM800
Είναι πάντα καλή ιδέα να διαβάζετε τα αρχεία *.ccp και *.h στις βιβλιοθήκες.
Περιέχουν πολλές ενδιαφέρουσες συμβουλές και γνώσεις.
Βήμα 2: Λειτουργήστε τον αισθητήρα RTC DS1307 με αισθητήρα DS18B20
Χρησιμοποίησα αυτήν την πλευρική πλευρά: simtronyx - το ιστολόγιο για τα DS1307 και DS18B20.
Το ρολόι έχει σύνδεση διαύλου I2C και είναι για το Arduino Uno: A4 (SDA) - A5 (SCL)
Το DS18B20 I συνδέθηκε με το D3.
Διάβασα ότι σε ένα SMS δεν μπορείτε να στείλετε το Floats only String, οπότε έπρεπε να μεταφράσω τα floats σε συμβολοσειρά.
Αυτό που κάνω με αυτό το απόσπασμα κώδικα βρήκα:
ν
MyString1 = String (currentTemp, 2); // Μετατροπή float σε συμβολοσειρά
MyString1 = (MyString1 + "C - RoomTemperatur:)");
// η μετατροπή συμβολοσειράς σε χαρακτήρα ξεκινά εδώ
// Μήκος (με έναν επιπλέον χαρακτήρα για το μηδενικό τερματικό)
int str_len1 = MyString1.length () + 1; // Προετοιμάστε τον πίνακα χαρακτήρων (το buffer)
char char_array1 [str_len1]; // Αντιγράψτε το
MyString1.toCharArray (char_array1, str_len1); // μετατρέπει τη συμβολοσειρά σε char την τελειώνει
Θα είμαι ειλικρινής, δεν ξέρω πώς λειτουργεί, αλλά λειτουργεί.
Βήμα 3: Λειτουργήστε το Thermistor NTC MF52AT
Δούλεψα πριν με ένα θερμίστορ, οπότε ήταν το εύκολο μέρος.
Αλλά επίσης εδώ μπορείτε να βρείτε διαφορετική λύση.
Στον τελικό κώδικα μπορείτε να βρείτε τον δικό μου.
Μπορείτε επίσης να βρείτε τη μετάφραση Floats to String.
Συγκολλήθηκε λίγο καλώδιο και η αντίσταση 10 k ohm στο θερμίστορ.
Βήμα 4: Δούλεψε όλοι μαζί
Έτσι έγραψα όλα τα μέρη του προγράμματος μαζί.
Τώρα έπρεπε να καταλάβω πώς να στέλνω ένα SMS κάθε μέρα, ταυτόχρονα.
Διάβασα για διαφορετικές ιδέες, μερικές με TimerAlarm και άλλες προσεγγίσεις.
Βρήκα όμως μια απλή λύση κάπου στο φόρουμ arduino:
εάν (τώρα.ωρη () == 8 && τώρα.λεπτά () == 00 && τώρα. δευτερόλεπτο () == 59)
{
SIM.smsSend (addr, char_array); // θερμίστορ
καθυστέρηση (500)? SIM.smsSend (addr, char_array1); // DS18B20}
Αλλά γιατί τώρα.second = 59 επειδή στέλνει ένα ολόκληρο λεπτό SMS. Μου κάνει αλλά δοκίμασε τον εαυτό σου.
Μετά από κάποια δοκιμή ανέβασα το πρόγραμμα στο Geekcreit® Nano.
Αυτό ίσως δεν είναι η καλύτερη γραφή προγράμματος:) αλλά κάνει το επιθυμητό.
Επειδή το Geekcreit® ATmega328P Nano έχει κάποια προβλήματα Arduino IDE, ανεβάζω με τερματικό (Linux Mint) ρίξτε το USBtinyisp με αυτό: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex
Βήμα 5: Λειτούργησε
Ναι λειτούργησε και τοποθετείται στο σπίτι.
Κάθε μέρα στις 6:00 το πρωί λαμβάνω ένα SMS με τη θερμοκρασία.
Συνιστάται:
Αποθήκευση του παιδιού μου: το έξυπνο κάθισμα που στέλνει μηνύματα κειμένου Εάν ξεχάσετε το παιδί στο αυτοκίνητο: 8 βήματα
Αποθήκευση του παιδιού μου: Το έξυπνο κάθισμα που στέλνει μηνύματα κειμένου Εάν ξεχάσετε το παιδί στο αυτοκίνητο: Είναι εγκατεστημένο στα αυτοκίνητα και χάρη σε έναν ανιχνευτή που έχει τοποθετηθεί στο παιδικό κάθισμα, μας προειδοποιεί - μέσω SMS ή τηλεφωνικής κλήσης - εάν λάβουμε μακριά χωρίς να φέρουμε το παιδί μαζί μας
Κατασκευάστε μια κατσαρόλα DIY με πότισμα με WiFi - Νερό αυτόματα και στέλνει ειδοποιήσεις όταν το νερό είναι χαμηλό: 19 βήματα
Δημιουργήστε ένα DIY Self Watering Pot with WiFi - Waters Plants Αυτόματα και στέλνει ειδοποιήσεις όταν το νερό είναι χαμηλό: Αυτό το σεμινάριο σας δείχνει πώς να φτιάξετε μια προσαρμοσμένη ζώνη ποτίσματος που συνδέεται με το WiFi χρησιμοποιώντας μια παλιά ζαρντινιέρα κήπου, κάδο απορριμμάτων, λίγη κόλλα και ένα Self Σετ ποτίσματος Subassembly Kit από την Adosia
Ο Nodemcu στέλνει δεδομένα θερμοκρασίας και υγρασίας στο Thingspeak: 7 βήματα
Ο Nodemcu στέλνει δεδομένα θερμοκρασίας και υγρασίας στο Thingspeak: Εδώ σε αυτό το σεμινάριο έχουμε διασυνδέσει το nodemcu με τον αισθητήρα dht11 και στέλνει δεδομένα θερμοκρασίας και υγρασίας στον διακομιστή thingspeak. Εδώ έχουμε επίσης σχεδιάσει το γράφημα της θερμοκρασίας και της υγρασίας στον διακομιστή πραγμάτων
Το Arduino στέλνει δεδομένα Dht11 στον MySQL Server (PHPMYADMIN) χρησιμοποιώντας Python: 5 βήματα
Το Arduino στέλνει δεδομένα Dht11 στον MySQL Server (PHPMYADMIN) χρησιμοποιώντας Python: Σε αυτό το έργο έχω διασυνδέσει το DHT11 με το arduino και στη συνέχεια στέλνω δεδομένα της dht11 που είναι υγρασία και θερμοκρασία στη βάση δεδομένων phpmyadmin. Σε αντίθεση με το προηγούμενο έργο μας, δεν χρησιμοποιούμε ασπίδα Ethernet σε αυτή την περίπτωση, εδώ διαβάζουμε απλώς
Το Arduino στέλνει δεδομένα θερμοκρασίας και υγρασίας στον MySQL Server (PHPMYADMIN): 5 βήματα
Το Arduino στέλνει δεδομένα θερμοκρασίας και υγρασίας στον MySQL Server (PHPMYADMIN): Σε αυτό το έργο έχω διασυνδέσει το DHT11 με το arduino και στη συνέχεια στέλνω δεδομένα της dht11 που είναι υγρασία και θερμοκρασία στη βάση δεδομένων phpmyadmin. Εδώ χρησιμοποιούμε ένα σενάριο PHP για να προωθήσουμε δεδομένα στη βάση δεδομένων phpmyadmin