Почему не отсылается СМС ???
- Войдите на сайт для отправки комментариев
Пнд, 09/05/2016 - 11:01
int sensorPin = 0; // Пин, на котором у нас висит сенсор газа аналоговый вход 0
int redled = 2; // Пин с красным светодиодом цифровой выход 2
int yelowled = 3; // Пин с желтым светодиодом цифровой выход 3
int greenled = 4; // Пин с зеленым светодиодом цифровой выход 4
int gas = 0; // Переменная для хранения значения газового сенсора
int rele = 5; // Пин для реле клапана
unsigned long SMSlastsenttime = 0;
void setup() {
Serial.begin(9600); // Инициализируем серийный порт будем слать в него данные измерения
Serial.println("AT+CMGF=1\r"); // устанавливает текстовый режим смс-сообщения
Serial.print("AT+IFC=1, 1\r"); // устанавливает программный контроль потоком передачи данных
delay(300);
Serial.println("AT+CNMI=1,2,2,1,0\r"); // Настройка вывода смс в консоль. У вас может отличатся!
delay(500);
pinMode(greenled, OUTPUT); // Объявляем 2,3,4 и 5 пины, как выходы
pinMode(yelowled, OUTPUT);
pinMode(redled, OUTPUT);
pinMode(rele, OUTPUT);
gas = analogRead(sensorPin);
digitalWrite(greenled, HIGH);
digitalWrite(yelowled, LOW);
digitalWrite(redled, LOW);
delay (800);
digitalWrite(greenled, LOW);
digitalWrite(yelowled, HIGH);
digitalWrite(redled, LOW);
delay (800);
digitalWrite(greenled, LOW);
digitalWrite(yelowled, LOW);
digitalWrite(redled, HIGH);
delay (800);
tone(10, 900, 200);
}
void loop() {
gas = analogRead(sensorPin); // Получаем значения от датчика газа
if (gas <= 350)
{
digitalWrite(greenled, HIGH);
digitalWrite(yelowled, LOW);
digitalWrite(redled, LOW);
}
else if (gas > 350, gas <= 400)
{
tone(10, 900, 200);
digitalWrite(greenled, LOW);
digitalWrite(yelowled, HIGH);
digitalWrite(redled, LOW);
}
else if ((gas >= 400) && ( millis() - SMSlastsenttime > 10000 || SMSlastsenttime == 0 ) )
{
tone(10, 740, 200);
digitalWrite(rele, HIGH);
digitalWrite(greenled, LOW);
digitalWrite(yelowled, LOW);
digitalWrite(redled, HIGH);
Serial.println ("AT + CMGS = \"+375336873525\""); // укажите свой номер!
delay(100);
Serial.println("ALLARM gas");
delay(100);
Serial.println((char)26);
delay(100);
SMSlastsenttime = millis();
}
Serial.print("Pokazaniya datchika MQ-9 = ");
Serial.println(gas);
delay(1000);
}
Помогите почему не отсылаеться СМС сообщение ???
int sensorPin = 0; // Пин, на котором у нас висит сенсор газа аналоговый вход 0 int redled = 2; // Пин с красным светодиодом цифровой выход 2 int yelowled = 3; // Пин с желтым светодиодом цифровой выход 3 int greenled = 4; // Пин с зеленым светодиодом цифровой выход 4 int gas = 0; // Переменная для хранения значения газового сенсора int rele = 5; // Пин для реле клапана unsigned long SMSlastsenttime = 0; void setup() { Serial.begin(9600); // Инициализируем серийный порт будем слать в него данные измерения Serial.println("AT+CMGF=1\r"); // устанавливает текстовый режим смс-сообщения Serial.print("AT+IFC=1, 1\r"); // устанавливает программный контроль потоком передачи данных delay(300); Serial.println("AT+CNMI=1,2,2,1,0\r"); // Настройка вывода смс в консоль. У вас может отличатся! delay(500); pinMode(greenled, OUTPUT); // Объявляем 2,3,4 и 5 пины, как выходы pinMode(yelowled, OUTPUT); pinMode(redled, OUTPUT); pinMode(rele, OUTPUT); gas = analogRead(sensorPin); digitalWrite(greenled, HIGH); digitalWrite(yelowled, LOW); digitalWrite(redled, LOW); delay (800); digitalWrite(greenled, LOW); digitalWrite(yelowled, HIGH); digitalWrite(redled, LOW); delay (800); digitalWrite(greenled, LOW); digitalWrite(yelowled, LOW); digitalWrite(redled, HIGH); delay (800); tone(10, 900, 200); } void loop() { gas = analogRead(sensorPin); // Получаем значения от датчика газа if (gas <= 350) { digitalWrite(greenled, HIGH); digitalWrite(yelowled, LOW); digitalWrite(redled, LOW); } else if (gas > 350, gas <= 400) { tone(10, 900, 200); digitalWrite(greenled, LOW); digitalWrite(yelowled, HIGH); digitalWrite(redled, LOW); } else if ((gas >= 400) && ( millis() - SMSlastsenttime > 10000 || SMSlastsenttime == 0 ) ) { tone(10, 740, 200); digitalWrite(rele, HIGH); digitalWrite(greenled, LOW); digitalWrite(yelowled, LOW); digitalWrite(redled, HIGH); Serial.println ("AT + CMGS = \"+375336873525\""); // укажите свой номер! delay(100); Serial.println("ALLARM gas"); delay(100); Serial.println((char)26); delay(100); SMSlastsenttime = millis(); } Serial.print("Pokazaniya datchika MQ-9 = "); Serial.println(gas); delay(1000); }Есть ли у Вас возможность "перевесить" GSM-модуль с пинов 0,1 на другие пины и работать с ним через SoftwareSerial ? Так будет гораздо удобнее решать проблемы, поскольку сейчас Вы не можете даже видеть, принимает ли GSM-модуль команды, что он отвечает и т.п.
Если возможность "перевесить" есть, почитайте тему http://arduino.ru/forum/programmirovanie/rabota-s-sim900-0, там приводится вполне рабочий код отправки SMS.
UPD: А какая, собственно, модель Ардуино у Вас ? Не Mega случайно ?
Arduino uno
Ну тогда, повторюсь, стоит подумать о SoftwareSerial, а Serial освободить для получения отладочной информации с GSM-модуля.