Помогите слепить скетч из двух .
- Войдите на сайт для отправки комментариев
Пт, 26/08/2022 - 08:53
Есть основной текст программы :
https://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
хотелось бы добавить кусок от этой программы :
чтоб на каждое действие в основной программе отправлялось подтверждение в виде SMS прописанное во второй программе . Заранее благодарен .
Для начала прочитайте как правильно лепить код на форум !!!
Если код не вставишь как надо, тема будет удалена через час
Если код не вставишь как надо, тема будет удалена через час
Пытаюсь редактировать.
Вот туплю что-то , не найду кнопку редактировать !
Приветствую !!!
Есть основной текст программы :
#include<LiquidCrystal.h> LiquidCrystal lcd(6,7,8,9,10,11); #define Fan 3 #define Light 4 #define TV 5 int temp=0,i=0; int led=13; char str[15]; void setup() { lcd.begin(16,2); Serial.begin(9600); pinMode(led, OUTPUT); pinMode(Fan, OUTPUT); pinMode(Light, OUTPUT); pinMode(TV, OUTPUT); lcd.setCursor(0,0); lcd.print("GSM Control Home"); lcd.setCursor(0,1); lcd.print(" Automaton "); delay(2000); lcd.clear(); lcd.print("Circuit Digest"); delay(1000); lcd.setCursor(0,1); lcd.print("System Ready"); Serial.println("AT+CNMI=2,2,0,0,0"); delay(500); Serial.println("AT+CMGF=1"); delay(1000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Fan Light TV "); lcd.setCursor(0,1); lcd.print("OFF OFF OFF "); } void loop() { lcd.setCursor(0,0); lcd.print("Fan Light TV"); if(temp==1) { check(); temp=0; i=0; delay(1000); } } void serialEvent() { while(Serial.available()) { if(Serial.find("#A.")) { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); while (Serial.available()) { char inChar=Serial.read(); str[i++]=inChar; if(inChar=='*') { temp=1; return; } } } } } void check() { if(!(strncmp(str,"tv on",5))) { digitalWrite(TV, HIGH); lcd.setCursor(13,1); lcd.print("ON "); delay(200); } else if(!(strncmp(str,"tv off",6))) { digitalWrite(TV, LOW); lcd.setCursor(13,1); lcd.print("OFF "); delay(200); } else if(!(strncmp(str,"fan on",5))) { digitalWrite(Fan, HIGH); lcd.setCursor(0,1); lcd.print("ON "); delay(200); } else if(!(strncmp(str,"fan off",7))) { digitalWrite(Fan, LOW); lcd.setCursor(0,1); lcd.print("OFF "); delay(200); } else if(!(strncmp(str,"light on",8))) { digitalWrite(Light, HIGH); lcd.setCursor(7,1); lcd.print("ON "); delay(200); } else if(!(strncmp(str,"light off",9))) { digitalWrite(Light, LOW); lcd.setCursor(7,1); lcd.print("OFF "); delay(200); } else if(!(strncmp(str,"all on",6))) { digitalWrite(Light, HIGH); digitalWrite(Fan, HIGH); digitalWrite(TV, HIGH); lcd.setCursor(0,1); lcd.print("ON ON ON "); delay(200); } else if(!(strncmp(str,"all off",7))) { digitalWrite(Light, LOW); digitalWrite(Fan, LOW); digitalWrite(TV, LOW); lcd.setCursor(0,1); lcd.print("OFF OFF OFF "); delay(200); } }#include<LiquidCrystal.h> LiquidCrystal lcd(6,7,8,9,10,11); int led=13; int flag=0; String str=""; #define motor 2 #define sensor 12 void setup() { lcd.begin(16,2); Serial.begin(9600); pinMode(led, OUTPUT); pinMode(motor, OUTPUT); pinMode(sensor, INPUT_PULLUP); lcd.print("Water Irrigaton"); lcd.setCursor(4,1); delay(2000); lcd.clear(); lcd.print("Circuit Digest"); lcd.setCursor(0,1); lcd.print("Welcomes You"); delay(2000); gsmInit(); lcd.clear(); lcd.print("System Ready"); } void loop() { lcd.setCursor(0,0); lcd.print("Automatic Mode "); if(digitalRead(sensor)==1 && flag==0) { delay(1000); if(digitalRead(sensor)==1) { digitalWrite(led, HIGH); sendSMS("Low Soil Moisture detected. Motor turned ON"); lcd.begin(16,2); lcd.setCursor(0,1); lcd.print("Motor ON "); digitalWrite(motor, HIGH); delay(2000); flag=1; } } else if(digitalRead(sensor)==0 && flag==1) { delay(1000); if(digitalRead(sensor)==0) { digitalWrite(led, LOW); sendSMS("Soil Moisture is Normal. Motor turned OFF"); digitalWrite(motor, LOW); lcd.begin(16,2); lcd.print("Motor OFF"); lcd.setCursor(0,1); lcd.print("Motor OFF"); delay(2000); flag=0; } } } void sendSMS(String msg) { lcd.clear(); lcd.print("Sending SMS"); Serial.println("AT+CMGF=1"); delay(500); Serial.print("AT+CMGS="); Serial.print('"'); Serial.print("+79039818499"); // number Serial.print('"'); Serial.println(); delay(500); Serial.println(msg); delay(500); Serial.write(26); delay(1000); lcd.clear(); lcd.print("SMS Sent"); delay(1000); lcd.begin(16,2); } void gsmInit() { lcd.clear(); lcd.print("Finding Module.."); boolean at_flag=1; while(at_flag) { Serial.println("AT"); while(Serial.available()>0) { if(Serial.find("OK")) at_flag=0; } delay(1000); } Serial.println("ATE0"); lcd.clear(); lcd.print("Finding Network.."); boolean net_flag=1; while(net_flag) { Serial.println("AT+CPIN?"); while(Serial.available()>0) { if(Serial.find("READY")) net_flag=0; break; } delay(1000); } Serial.println("AT+CNMI=2,2,0,0,0"); delay(1000); Serial.println("AT+CMGF=1"); delay(1000); Serial.println("AT+CSMP=17,167,0,0"); lcd.clear(); Serial.flush(); }чтоб на каждое действие в основной программе отправлялось подтверждение в виде SMS прописанное во второй программе . Заранее благодарен .
Serial.println("AT+CSMP=17,167,0,0"); добавьте в инициализацию модема
sendSMS перенесите и отправляйте через нее то что надо.
Serial.println("AT+CSMP=17,167,0,0"); добавьте в инициализацию модема
sendSMS перенесите и отправляйте через нее то что надо.
Чисто теоретически я это понимаю , что добавить нужно . А вот какие именно строки и в какое место именно для меня пока дебри !
Мозг включать иногда полезно !!!
Если вы ходите готовый код - вам в платный раздел !