Πίνακας περιεχομένων:

SMS Ειδοποιήσεις Temp Temp Από ATTINY85 και A1 GSM: 5 Βήματα
SMS Ειδοποιήσεις Temp Temp Από ATTINY85 και A1 GSM: 5 Βήματα

Βίντεο: SMS Ειδοποιήσεις Temp Temp Από ATTINY85 και A1 GSM: 5 Βήματα

Βίντεο: SMS Ειδοποιήσεις Temp Temp Από ATTINY85 και A1 GSM: 5 Βήματα
Βίντεο: DHT11 Temperature & Humidity sensor with Arduino - Tutorial 2024, Ιούλιος
Anonim
SMS Ειδοποιήσεις Temp Temp Από ένα ATTINY85 και A1 GSM
SMS Ειδοποιήσεις Temp Temp Από ένα ATTINY85 και A1 GSM

Αυτό το διδακτικό σας δείχνει πώς μπορείτε να καταγράψετε τη θερμοκρασία από έναν απλό αισθητήρα θερμοκρασίας και να την στείλετε με sms στο κινητό σας τηλέφωνο. Για να απλοποιήσω τα πράγματα, στέλνω τη θερμοκρασία σε ένα καθορισμένο διάστημα, αλλά επίσης δείχνω πώς αυτό μπορεί να γίνει μόνο με εξαίρεση / ειδοποιήσεις. Το υλικό είναι πολύ χαμηλό κόστος, λιγότερο από 10 δολάρια, αν και υπάρχουν τα επαναλαμβανόμενα έξοδα sms που πρέπει να λάβετε υπόψη.

Η άρση βαρών αναλαμβάνεται από το απλό αλλά ισχυρό ATTINY 85 που καταγράφει τα δεδομένα θερμοκρασίας και στη συνέχεια ενεργοποιεί ένα SMS που αποστέλλεται μέσω μιας μονάδας AI-Thinker A6 GSM.

Εν ολίγοις, γράφετε τον κωδικό ATTINY85 στο περιβάλλον Arduino IDE και τον εγγράφετε στο ATTINY85 χρησιμοποιώντας σειριακό/μετατροπέα USBASP. Έχω καλύψει τη ρύθμιση της μονάδας AI-Thinker A6 GSM και του Arduino IDE σε δύο προηγούμενα μαθήματα. Αυτό που διαφέρει εδώ είναι η διασύνδεση της μονάδας ATTINY και A6 GSM χρησιμοποιώντας σειριακές επικοινωνίες.

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

Μετά τον προγραμματισμό, το ATTINY διαβάζει τα δεδομένα θερμοκρασίας από έναν αισθητήρα θερμόμετρου - Dallas 18B20- και στη συνέχεια στέλνει τα δεδομένα και τις εντολές μέσω σειριακής σύνδεσης στη μονάδα A6 GSM, η οποία στη συνέχεια τα στέλνει ως κείμενο SMS στο κινητό / έξυπνο τηλέφωνό σας.

Εδώ είναι αυτό που χρειάζεστε:

1. USBASP σειριακός/μετατροπέας USB.

2. ΑΤΤΙΝΙΑ 85.

3. Μονάδα AI-Thinker A6 GSM έκδοση 6 (με sim που διαθέτει πιστωτικές κάρτες SMS).

4. Τροφοδοσία 3.3v breadboard για το ATTINY85.

5. Τροφοδοσία USB 3.3.v για τη μονάδα AI-Thinker A6 GSM.

6. Αισθητήρας θερμοκρασίας Dallas 18B20..

7. Αντίσταση 4,7k για τον αισθητήρα 18B20.

8. Breadboard και καλώδια.

9. Arduino IDE (χρησιμοποίησα την έκδοση 1.8.5. Για αυτό).

10. Φορητός υπολογιστής Windows X (χρησιμοποίησα την έκδοση 10) με δωρεάν θύρα usb.

Βήμα 1: Προγραμματισμός του ATTINY 85

Εδώ είναι ο κωδικός Arduino IDE (Θα πρέπει να αλλάξετε τον αριθμό τηλεφώνου στον οποίο θέλετε να στείλετε το SMS.)

#συμπεριλάβω #συμπεριλάβω #συμπεριλάβω

// *** // *** Ορίστε τις ακίδες RX και TX. Επιλέξτε δύο ακίδες // *** που δεν χρησιμοποιούνται. Προσπαθήστε να αποφύγετε τα D0 (pin 5) // *** και D2 (pin 7) εάν σκοπεύετε να χρησιμοποιήσετε I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Ορίστε τη σειριακή θύρα που βασίζεται στο λογισμικό. Χρήση του ονόματος // *** Serial έτσι ώστε ο κώδικας να μπορεί να χρησιμοποιηθεί σε άλλες πλατφόρμες // *** που υποστηρίζουν σειριακό υλικό. Στις // *** μάρκες που υποστηρίζουν τη σειρά υλικού, απλώς // *** σχολιάστε αυτήν τη γραμμή. // ***

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) // *** // ATTINY 85 συχνότητα ρυθμισμένη στα εσωτερικά 8 MHz

// *** // *** Καρφίτσα στην οποία είναι συνδεδεμένα τα δεδομένα OneWire // *** καλώδιο. // *** #define ONE_WIRE_BUS 1

// *** // *** Ρύθμιση ενός στιγμιότυπου oneWire για επικοινωνία με οποιεσδήποτε συσκευές OneWire // *** (όχι μόνο ICs θερμοκρασίας Maxim/Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Περάστε την αναφορά του oneWire στη θερμοκρασία του Ντάλας. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Αρχικοποίηση της σειριακής θύρας // *** mySerial.begin (115200); καθυστέρηση (60000)

// *** Εκκίνηση της βιβλιοθήκης. _sensors.begin (); }

void loop () {

// *** // *** Λάβετε την τρέχουσα θερμοκρασία και εμφανίστε την. // *** _sensors.requestTemperatures (); καθυστέρηση (2000). διπλό tempC = _sensors.getTempCByIndex (0); διπλό tempF = _sensors.getTempFByIndex (0); // έλεγχος για σφάλματα - μερικές φορές στην αρχή, η θερμοκρασία εμφανίζεται ως 85C

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

void SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // ορίζεται σε καθυστέρηση λειτουργίας SMS (1000). mySerial.println ("AT+CMGF = 1"); // ορίζεται σε καθυστέρηση λειτουργίας SMS (1000). //mySerial.println("AT+CMGS=\"+ Ο ΑΡΙΘΜΟΣ ΣΑΣ / ""); // ορίστε τον αριθμό τηλεφώνου (τυλιγμένο σε διπλά εισαγωγικά) καθυστέρηση (1000). mySerial.print (mytemp, 1); mySerial.print (myalert); καθυστέρηση (1000)? mySerial.write (0x1A); // στέλνει ctrl+z τέλος καθυστέρησης μηνύματος (1000). mySerial.write (0x0D); // Επιστροφή Μεταφοράς σε Εξαγωνική καθυστέρηση (1000). mySerial.write (0x0A); καθυστέρηση (1000000) // 17 λεπτά - προσαρμογή ώστε να ταιριάζει στη δική σας εφαρμογή}

Ανοίξτε το περιβάλλον Arduino IDE - έχω περιγράψει πώς να σας βρω λεπτομερώς στο προηγούμενο διδακτικό μου, στο οποίο αναφέρθηκα νωρίτερα.

Θα χρειαστείτε τις παρακάτω βιβλιοθήκες

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Στη συνέχεια, διαμορφώστε τις ακίδες RX και TX στο ATTINY85 που χρειάζεστε για να συνδεθείτε με το A1 Thinker. Το ATTINY 85 έχει 8 ακίδες, τέσσερις σε κάθε πλευρά και είναι ευθυγραμμισμένο χρησιμοποιώντας την τελεία στην επιφάνεια ως αναφορά. Το pin 1 ή το RESET pin είναι δίπλα στην τελεία.

(σε αυτή την περίπτωση επέλεξα τα Pin2 και 3 - Αυτά βρίσκονται στην ίδια πλευρά με τον πείρο RESET που βρίσκεται δίπλα στην τελεία στην επιφάνεια του ATTINY 85. Ο πείρος 2 είναι ο επόμενος πείρος από τον πείρο RESET ενώ ο Pin 3 βρίσκεται μεταξύ του Pin 2 και GROUND)

Στη συνέχεια, πρέπει να διαμορφώσετε τον αισθητήρα θερμοκρασίας -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Στη συνέχεια, ρυθμίστε τη σειριακή θύρα λογισμικού

mySerial.begin (115200);

καθυστέρηση (60000)

και καλέστε τους αισθητήρες με _sensors.begin ();

Στη συνέχεια, υπάρχει ο βρόχος, ο οποίος κάνει δημοσκοπήσεις σε προκαθορισμένο χρόνο, καταγράφει τη θερμοκρασία και στέλνει ένα μήνυμα / ειδοποίηση ανάλογα με την τιμή. Χρησιμοποιεί μια συνάρτηση SMS_temp, όπου μπορείτε επίσης να ορίσετε το χρονοδιάγραμμα του βρόχου

void loop () {sensors.requestTemperatures (); καθυστέρηση (2000).

διπλό tempC = _sensors.getTempCByIndex (0);

διπλό tempF = _sensors.getTempFByIndex (0);

εάν (tempC <= 14) {SMS_temp (tempC, "ΕΠΙΚΙΝΔΥΝΟ Κρύο");}

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

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

εάν (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Πολύ ζεστό");}

}

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

Στη συνέχεια, ρυθμίστε το Arduino IDE για να προετοιμαστείτε για μεταφόρτωση στο ATTINY85.

Μια σειρά από πράγματα που πρέπει να σημειωθούν

1- Εάν δεν έχετε την οικογένεια πινάκων ATTINY, προσθέστε την ακόλουθη διεύθυνση URL https://raw.githubusercontent.com/damellis/attiny/… στο URL File/Preferences/Additional Boards Manager URL, Στη συνέχεια, στο Arduio IDE κάντε κλικ στο Tools/Board/Board Manager και αναζητήστε ATTINY και εγκαταστήστε τον νέο πίνακα. Αλλάξτε τον επεξεργαστή σε Attiny85.

Βήμα 2: Μεταφόρτωση του προγράμματος στο ATTINY85

Μεταφόρτωση του Προγράμματος στο ATTINY85
Μεταφόρτωση του Προγράμματος στο ATTINY85

Επίσης, ανατρέξτε στο προηγούμενο εκπαιδευτικό μου σε αυτό-https://www.instructables.com/id/15-Dollar-Attiny8…

Το ATTINY85 διαθέτει δύο λειτουργίες, τον προγραμματισμό και τον τρόπο λειτουργίας, αντίστοιχα.1. ΤΡΟΠΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πρώτον, προσδιορίστε τις ακίδες στο ATTINY85. Για να το κάνετε αυτό, βρείτε τη μικρή εγκοπή στην επιφάνεια του τσιπ που βρίσκεται δίπλα στον πείρο RST/RESET. Χρησιμοποιώντας αυτό ως σημείο αναφοράς, μπορείτε να προσδιορίσετε τις υπόλοιπες ακίδες. Όλες αυτές οι πληροφορίες παρέχονται στο φύλλο δεδομένων A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

Το USBasp και το ATTINY85 πρέπει να είναι συνδεδεμένα όπως φαίνεται στην παραπάνω εικόνα.

Στη συνέχεια, στο Arduino IDE, ρυθμίστε τον προγραμματιστή σε USBasp και τη συχνότητα σε εσωτερικά 8Mhz.

Συνδέστε το USBasp σε μια θύρα USB του φορητού υπολογιστή σας (Στα Windows 10, εάν δεν έχετε το πρόγραμμα οδήγησης USBasp χρησιμοποιήστε το Zadig σύμφωνα με τον ιστότοπο

Στη συνέχεια, με το USBasp συνδεδεμένο, επιλέξτε από το Arduino IDE Sketch/upload και ελπίζουμε ότι θα δείτε την πρόοδο της μεταφόρτωσης να εμφανίζεται με κόκκινα γράμματα του Arduino IDE και να τελειώνει με avrdude done. Σας ευχαριστώ.

Τυχόν σφάλματα σε αυτό το στάδιο συνδέονται συνήθως με χαλαρά καλώδια ή λάθος πρόγραμμα οδήγησης.

Βήμα 3: Εκτέλεση του προγράμματος σας

Εκτέλεση του προγράμματος σας
Εκτέλεση του προγράμματος σας
Εκτέλεση του προγράμματος σας
Εκτέλεση του προγράμματος σας
Εκτέλεση του προγράμματος σας
Εκτέλεση του προγράμματος σας

Πρώτον, κάτι για τον αισθητήρα θερμόμετρου Dallas 18b20. Έχει 3 ακίδες, Ground (G), data (D) και VCC όπως φαίνεται στην παραπάνω εικόνα. Για τη λειτουργία, απαιτεί γεφύρωση των D και VCC με αντίσταση 4,7k. Το G και το VCC συνδέονται με τους αντίστοιχους πόλους ενώ το D είναι συνδεδεμένο με ένα ATTINY 85, pin - [6] PB1, όπως έχει διαμορφωθεί στον κώδικα.

Στη συνέχεια, συνδέστε το ATTINY στο A6 GSM ως εξής (και φαίνεται παραπάνω)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

και στο ίδιο το Α6, A6 PWR A6 VCC 5.0A6 RST A6 GND (Μην συνδεθείτε ακόμα στη γείωση !!!!!)

Τώρα ενεργοποιήστε και τις δύο συσκευές και μετά από λίγα δευτερόλεπτα, αγγίξτε προσωρινά τον πείρο γείωσης A6 με το καλώδιο συνδεδεμένο στον πείρο A6 RST. Το A6 θα σβήσει και θα ενεργοποιηθεί και ελπίζουμε ότι σύντομα θα λάβετε δεδομένα θερμοκρασίας στο τηλέφωνό σας.

Βήμα 4: Συμπέρασμα

Αυτό το διδακτικό μπορεί να φαίνεται μάλλον απλό, αλλά η ιδέα είναι να απεικονίσουμε τι μπορεί να επιτευχθεί με εξαρτήματα χαμηλού κόστους. Προφανώς, εάν έχετε πρόσβαση σε wi-fi ή σε ένα διανομέα BLE τότε υπάρχουν πιο κατάλληλες λύσεις.

Δεν κάλυψα άλλες λειτουργίες, όπως αποστολή SMS στο τηλέφωνο για έναρξη καταγραφής / μετάδοσης θερμοκρασίας κ.λπ.

Συνιστάται: