Ви не увійшли.
Сторінки 1
Добрый день. Помогите пожалуйста решить задачу.
1. Есть ардуино мега, GSM шилд sim900, релюшки, датчики и пр.
2. Хочу написать проект из 2х частей:
1. По звонку с моего номера включается прожектор на площадке, через заданное время автоматически отключается. Необходимо для того, чтобы по приезду на дачу зимой после работы, прожектор освещал площадку для машины, и не нужно было парковаться в полной темноте.
2. Управление отоплением по смс, по одной команде (stat - присылалась информация о текущем состоянии дел: температура, состояние реле: вкл/выкл) По другой команде включались 2 реле, по третьей задавалась нужная температура. Соответственно задается нужная температура, и включается реле, после достижения необходимой температуры, реле автоматом отключались.
На данный момент есть скетч который заставил работать мой GSM shield.
#include <SoftwareSerial.h>
SoftwareSerial SIM900(10, 11);
void setup()
{
Serial.begin(19200);
SIM900.begin(19200);
InitGprs();
}
void loop()
{
if(Serial.available())
{
char x = Serial.read();
SIM900.print(x);
}
if(SIM900.available())
{
char y = SIM900.read();
Serial.print(y);
}
}
void InitGprs()
{
SIM900.print("AT+CMGF=1\r"); //ВКЛЮЧАЕТ ТЕКСТОВЫЙ РЕЖИМ ПЕРЕДАЧИ ДАННЫХ
delay(300);
SIM900.print("AT+IFC=1, 1\r"); //РЕЖИМ ПЕРЕДАЧИ ДАННЫХ ОТ МОДУЛЯ В ПОРТ И ОБРАТНО
delay(300);
SIM900.println("AT");
}
Есть второй код, который по идее должен соответствовать задаче №1, но не работает.
#include <SoftwareSerial.h>
SoftwareSerial Serial(10, 11);
String currStr = "";
boolean isStringMessage = false; // Переменная принимает значение True, если текущая строка является сообщением
int led = 13;
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(19200);
// настройка шилда
Serial.print("AT+CMGF=1\r"); // устанавливает текстовый режим смс-сообщения
delay(300);
Serial.print("AT+IFC=1, 1\r"); // устанавливает программный контроль потоком передачи данных
delay(300);
Serial.print("AT+CPBS=\"SM\"\r"); // открывает доступ к данным телефонной книги SIM-карты. У вас может отличатся!
delay(500);
Serial.print("ATS0=2\r"); // поднимать трубку после второго звонка
}
void loop()
{
if(Serial.available())
{
char currSymb = Serial.read();
if('\r' == currSymb)
{
if(isStringMessage)
{
if (!currStr.compareTo("infa")) // блок infa
{
delay(2000);
Serial.println("AT + CMGS = \"+7yornumber\""); // укажите свой номер!
delay(100);
Serial.println("HELLO");
delay(100);
Serial.println((char)26);
delay(100);
Serial.println();
}
else if (!currStr.compareTo("vkl")) // блок vkl
{
delay(2000);
digitalWrite(led, HIGH);
Serial.println("ATD + +7yornumber;"); // укажите свой номер!
}
else if (!currStr.compareTo("otkl")) // блок otkl
{
delay(2000);
digitalWrite(led, LOW);
Serial.println("ATD + +7yornumber;"); // укажите свой номер!
}
else if (!currStr.compareTo("bal")) // блок bal
{
Serial.print("ATD#100#;\r"); // делаем запрос баланса (мтс), а ответ ловится в блоке ниже...
}
isStringMessage = false;
}
else
{
if(currStr.startsWith("+CMT"))
{
//если текущая строка начинается с "+CMT",
//то следующая строка является сообщением
isStringMessage = true;
}
if(currStr.startsWith("+CUSD")) // этот блок отлавливает ответ на запрос баланса и отправляет его смской
{
currStr = currStr.substring(currStr.indexOf("Balance"),currStr.indexOf("r"));
delay(2000);
Serial.println("AT + CMGS = \"+yornumber\""); // укажите свой номер!
delay(100);
Serial.println(currStr);
delay(100);
Serial.println((char)26);
delay(100);
Serial.println();
}
}
currStr = "";
}
else if('\n' != currSymb)
{
currStr += String(currSymb);
}
}
}
Как я понимаю, в нем не корректна работа с моим шилдом, и нужно добавить работу именно по моим пинам, пробовал разные варианты, но не получается.
Помогите пожалуйста.
Неактивний
Имея в меге 4 Serial на борту, зачем софтсериал?
Честно сам не знаю. Работает полностью только с первым скетчем. Если занимаю 0-1ноги у меги, шилд не работает. Может быть я что-то не так делаю.
Неактивний
Имея в меге 4 Serial на борту, зачем софтсериал?
Вы написали про 4 ноги, это 0-1, а какие еще?
Еще, если я соединяю шилд бутербродом к меге, первый скетч так же не работает.
Неактивний
Здравствуйте,работаю на этом поприще с 16 лет,ориентируюсь во всех средах и языках программирования.Сейчас интересны проекты на платах Arduino(вся линейка).Портфолио насыщенно сильными и интересными заказами,впрочем, за дело!На данном vlad.spbstu@mail.ru почтовом адресе вам будут даны бесплатные консультации по любым интересующимся вам вопросам,не только лично мною,но и моими коллегами,соответственно заказы будут также обрабатываться по мере поступления,вам вскоре будет прислан ответ,и соответственно уже нами произведённый анализ вашего ТЗ , после чего обговаривается условия нашего долгосрочного сотрудничества.
Ждём с нетерпением,готов приступить к выполнению 24/7.
Ваш VladMaster.
Неактивний
VladMaster, не обессудьте за нескромный вопрос
Вам сколько лет?
"работаю на этом поприще с 16 лет" энтузиазм - супер )
но текст лучше поправить ) и урл плс на портфолио
add
в принципе
"долгосрочного сотрудничества."
лучше удалить , либо исправить, заказчик редко готов ждать долго, тем более проекты на ардуино )
и косвенно утверждаете что будете делать долго,
оно то все так, но заказчику это не нравится )
VladMaster, интересных, реализуемых, финансово положительных заказов ! )
Остання редакція NoName (2016-04-16 14:32:34)
Неактивний
Заказал у vlad.spbstu@mail.ru (Владислав Gardner, VladMaster) проект станции дозирования, после оплаты не выходит на связь. Владислав, выходи на связь subnews4@mial.ru.
для меня тоже хотел написать скетч, но не срослось и Слава Богу.
Неактивний
Сторінки 1