Я не могу увеличить или уменьшить нет. Лиц, когда цикл запущен
мой проект-автоматический контроллер освещения комнаты со счетчиком посетителей с помощью arduino. мой проект работал правильно до этого, но проблема, когда мы подключили gsm-модуль к нашему проекту, потому что мы дали предел thye room, поэтому, когда после превышения лимита с помощью gsm msg должен быть отправлен администратору. Фактическая проблема заключается в том,что когда предел превышает, код не выходит из цикла и когда мы пытаемся увеличить или уменьшить количество людей, использующих ИК-датчик, но этого не происходит. Помогите мне, какие петли я копировать использовать автоматически отправить сообщение
Что я уже пробовал:
<pre>#include<LiquidCrystal.h> #include <SoftwareSerial.h> SoftwareSerial mySerial(3, 5); char msg; LiquidCrystal lcd(13,12,11,10,9,8); #define in 14 #define out 19 #define relay 2 int count=0; void IN() { count++; lcd.clear(); lcd.print("Person In Room:"); lcd.setCursor(0,1); lcd.print(count); delay(1000); } void OUT() { count--; lcd.clear(); lcd.print("Person In Room:"); lcd.setCursor(0,1); lcd.print(count); delay(1000); } void setup() { lcd.begin(16,2); lcd.print("Visitor Counter"); delay(2000); pinMode(in, INPUT); pinMode(out, INPUT); pinMode(relay, OUTPUT); lcd.clear(); lcd.print("Person In Room:"); lcd.setCursor(0,1); lcd.print(count); mySerial.begin(9600); // Setting the baud rate of GSM Module Serial.begin(9600); // Setting the baud rate of Serial Monitor (Arduino) Serial.println("GSM SIM900A BEGIN"); Serial.println("Enter character for control option:"); Serial.println("s : to send message"); Serial.println(); delay(100); } void loop() { if(digitalRead(in)) IN(); if(digitalRead(out)) OUT(); if(count<=0) { lcd.clear(); digitalWrite(relay, LOW); lcd.clear(); lcd.print("Nobody In Room"); lcd.setCursor(0,1); lcd.print("Light Is Off"); delay(200); } else digitalWrite(relay, HIGH); if(count>=3) { SendMessage(); digitalWrite(relay, HIGH); delay(100); lcd.clear(); lcd.print("Limit exceeded"); lcd.setCursor(0,1); lcd.print(count); return; } //else // digitalWrite(relay, LOW); if (Serial.available()>0) switch(Serial.read()) { case 's': SendMessage(); break; case 'r': ReceiveMessage(); break; } if (mySerial.available()>0) Serial.write(mySerial.read()); } void SendMessage() { mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode delay(1000); // Delay of 1000 milli seconds or 1 second mySerial.println("AT+CMGS=\"+918419906897\"\r"); // Replace x with mobile number delay(1000); mySerial.println("GSM TEST:Limit of the room exceeded");// The SMS text you want to send delay(100); mySerial.println((char)26);// ASCII code of CTRL+Z delay(1000); //Serial.end(); } void ReceiveMessage() { mySerial.println("AT+CNMI=2,2,0,0,0"); // AT Command to recieve a live SMS delay(1000); if (mySerial.available()>0) { msg=mySerial.read(); Serial.print(msg); } } void Response() { int count = 0; Serial.println(); while(1) { if(Serial.available()) { char data =Serial.read(); if(data == 'K'){Serial.println("OK");break;} if(data == 'R'){Serial.println("GSM Not Working");break;} } count++; delay(10); if(count == 1000){Serial.println("GSM not Found");break;} } }