galman
02-01-21, 20:35
ΧΡΟΝΙΑ ΠΟΛΛΑ ΚΑΛΗ ΧΡΟΝΙΑ ΜΕ ΥΓΕΙΑ !!!!!
Παιδιά χρειάζομαι βοήθεια !!!
Έχω φτιάξει ένα κώδικα για να προγραμματίσω έναν arduino nano.
Με τον κώδικα αυτόν , στέλνω μήνυμα στην SIM800L #info ,και μου στέλνει την θερμοκρασία και την υγρασία (DHT11) που υπάρχει μέσα σε ένα θερμοκήπιο. Επειδή στον χώρο αυτό δεν υπάρχει ρεύμα και θα χρησιμοποιήσω αλκαλικές μπαταρίες ...η.... οποιαδήποτε άλλη.......μορφή μπαταρίας , θέλω να βάζω τον NANO και την SIM800L σε κατάσταση sleep mode μετά την αποστολή του μηνύματος δηλαδή μετά από κάθε φορά που θα του ζητάω να μου στείλει την υγρασία και την θερμοκρασία για να έχει διάρκεια λειτουργίας όσο το δυνατόν περισσότερες ημέρες η εφαρμογή. Ο κώδικας είναι παρακάτω. Μπορεί κάποιος να με βοηθήσει επειδή είμαι αρκετά αρχάριος και επειδή έχω σπάσει το κεφάλι μου και δεν κατάφερα τίποτα μέχρι στιγμής, να μου πει σε ποιο σημείο και τι πρέπει να γραφεί για να μπορέσει να λειτουργήσει σύμφωνα με το σκεπτικό μου ??
Ευχαριστώ εκ των προτέρων
Φιλικά Μανώλης
#include <SoftwareSerial.h>
#include <avr/sleep.h>
#include <dht.h>
#define DHT11_PIN 7
SoftwareSerial mySerial(2, 3);
dht DHT;
char inchar;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
Serial.println("Syndesi..........");
delay(500);
updateSerial();
mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
updateSerial();
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CMGS="+AT+CMGS="+30ΧΧΧΧΧΧΧΧΧΧ"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
updateSerial();
mySerial.println("** Temperature & Humidity **");
updateSerial();
mySerial.println("I am ready.......!!!!"); //text content
updateSerial();
mySerial.write(26);
updateSerial();
mySerial.println("AT+CMGD=1,4");
updateSerial();
mySerial.println("AT+CNMI=1,2,0,0,0"); // Decides how newly arrived SMS messages should be handled
updateSerial();
}
void loop() {
red_SMS();
}
void red_SMS(){
if(mySerial.available()>0)
{
inchar=mySerial.read();
if (inchar=='#'){
delay(10);
inchar=mySerial.read();
if (inchar=='i'){
delay(10);
inchar=mySerial.read();
if (inchar=='n'){
delay(10);
inchar=mySerial.read();
if (inchar=='f'){
delay(10);
inchar=mySerial.read();
if (inchar=='o')
delay(10);
{
mySerial.println("AT+CMGD=1,4");
send_SMS();
}
}
}
}
}
}
}
void send_SMS(){
Serial.println("** Temperature & Humidity **");
Serial.println("Send SMS .............!!!!!");
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CMGS="+30ΧΧΧΧΧΧΧΧΧΧ"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
updateSerial();
mySerial.println("** Temperature & Humidity **");
updateSerial();
int chk = DHT.read11(DHT11_PIN);
SmySerial.print("Temperature = ");
updateSerial();
mySerial.println(DHT.temperature);
updateSerial();
mySerial.print("Humidity = ");
updateSerial();
mySerial.println(DHT.humidity);
delay(1000);
mySerial.write(26);
updateSerial();
mySerial.println("AT+CMGD=1,4");
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
}
void GOTO_SLEEP()
{
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_cpu();
}
Παιδιά χρειάζομαι βοήθεια !!!
Έχω φτιάξει ένα κώδικα για να προγραμματίσω έναν arduino nano.
Με τον κώδικα αυτόν , στέλνω μήνυμα στην SIM800L #info ,και μου στέλνει την θερμοκρασία και την υγρασία (DHT11) που υπάρχει μέσα σε ένα θερμοκήπιο. Επειδή στον χώρο αυτό δεν υπάρχει ρεύμα και θα χρησιμοποιήσω αλκαλικές μπαταρίες ...η.... οποιαδήποτε άλλη.......μορφή μπαταρίας , θέλω να βάζω τον NANO και την SIM800L σε κατάσταση sleep mode μετά την αποστολή του μηνύματος δηλαδή μετά από κάθε φορά που θα του ζητάω να μου στείλει την υγρασία και την θερμοκρασία για να έχει διάρκεια λειτουργίας όσο το δυνατόν περισσότερες ημέρες η εφαρμογή. Ο κώδικας είναι παρακάτω. Μπορεί κάποιος να με βοηθήσει επειδή είμαι αρκετά αρχάριος και επειδή έχω σπάσει το κεφάλι μου και δεν κατάφερα τίποτα μέχρι στιγμής, να μου πει σε ποιο σημείο και τι πρέπει να γραφεί για να μπορέσει να λειτουργήσει σύμφωνα με το σκεπτικό μου ??
Ευχαριστώ εκ των προτέρων
Φιλικά Μανώλης
#include <SoftwareSerial.h>
#include <avr/sleep.h>
#include <dht.h>
#define DHT11_PIN 7
SoftwareSerial mySerial(2, 3);
dht DHT;
char inchar;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
Serial.println("Syndesi..........");
delay(500);
updateSerial();
mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
updateSerial();
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CMGS="+AT+CMGS="+30ΧΧΧΧΧΧΧΧΧΧ"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
updateSerial();
mySerial.println("** Temperature & Humidity **");
updateSerial();
mySerial.println("I am ready.......!!!!"); //text content
updateSerial();
mySerial.write(26);
updateSerial();
mySerial.println("AT+CMGD=1,4");
updateSerial();
mySerial.println("AT+CNMI=1,2,0,0,0"); // Decides how newly arrived SMS messages should be handled
updateSerial();
}
void loop() {
red_SMS();
}
void red_SMS(){
if(mySerial.available()>0)
{
inchar=mySerial.read();
if (inchar=='#'){
delay(10);
inchar=mySerial.read();
if (inchar=='i'){
delay(10);
inchar=mySerial.read();
if (inchar=='n'){
delay(10);
inchar=mySerial.read();
if (inchar=='f'){
delay(10);
inchar=mySerial.read();
if (inchar=='o')
delay(10);
{
mySerial.println("AT+CMGD=1,4");
send_SMS();
}
}
}
}
}
}
}
void send_SMS(){
Serial.println("** Temperature & Humidity **");
Serial.println("Send SMS .............!!!!!");
mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
updateSerial();
mySerial.println("AT+CMGS="+30ΧΧΧΧΧΧΧΧΧΧ"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
updateSerial();
mySerial.println("** Temperature & Humidity **");
updateSerial();
int chk = DHT.read11(DHT11_PIN);
SmySerial.print("Temperature = ");
updateSerial();
mySerial.println(DHT.temperature);
updateSerial();
mySerial.print("Humidity = ");
updateSerial();
mySerial.println(DHT.humidity);
delay(1000);
mySerial.write(26);
updateSerial();
mySerial.println("AT+CMGD=1,4");
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
}
}
void GOTO_SLEEP()
{
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_cpu();
}