#1 2016-04-13 20:29:55

iskander_famous
Учасник
Зареєстрований: 2016-04-13
Повідомлень: 8

Автоматизация света на даче

Добрый день. Помогите пожалуйста решить задачу.
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);
          }
        
     }
        
  }

Как я понимаю, в нем не корректна работа с моим шилдом, и нужно добавить работу именно по моим пинам, пробовал разные варианты, но не получается.
Помогите пожалуйста.

Неактивний

#2 2016-04-14 00:45:17

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: Автоматизация света на даче

Имея в меге 4 Serial на борту, зачем софтсериал?

Неактивний

#3 2016-04-15 00:19:37

iskander_famous
Учасник
Зареєстрований: 2016-04-13
Повідомлень: 8

Re: Автоматизация света на даче

Nefreemen пише:

Имея в меге 4 Serial на борту, зачем софтсериал?

Честно сам не знаю. Работает полностью только с первым скетчем. Если занимаю 0-1ноги у меги, шилд не работает. Может быть я что-то не так делаю.

Неактивний

#4 2016-04-15 00:22:06

iskander_famous
Учасник
Зареєстрований: 2016-04-13
Повідомлень: 8

Re: Автоматизация света на даче

Nefreemen пише:

Имея в меге 4 Serial на борту, зачем софтсериал?

Вы написали про 4 ноги, это 0-1, а какие еще?
Еще, если я соединяю шилд бутербродом к меге, первый скетч так же не работает.

Неактивний

#5 2016-04-15 17:08:51

VladMaster
Учасник
Зареєстрований: 2016-04-15
Повідомлень: 2

Re: Автоматизация света на даче

Здравствуйте,работаю на этом поприще с 16 лет,ориентируюсь во всех средах и языках программирования.Сейчас интересны проекты на платах Arduino(вся линейка).Портфолио насыщенно сильными и интересными заказами,впрочем, за дело!На данном vlad.spbstu@mail.ru почтовом адресе вам будут даны бесплатные консультации по любым интересующимся вам вопросам,не только лично мною,но и моими коллегами,соответственно заказы будут также обрабатываться по мере поступления,вам вскоре будет прислан ответ,и соответственно уже нами произведённый анализ вашего ТЗ , после чего обговаривается условия нашего долгосрочного сотрудничества.
Ждём с нетерпением,готов приступить к выполнению 24/7.
Ваш VladMaster.

Неактивний

#6 2016-04-15 17:19:04

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Автоматизация света на даче

VladMaster,  не обессудьте за нескромный вопрос
Вам сколько лет?
"работаю на этом поприще с 16 лет"   энтузиазм - супер )
но текст лучше поправить ) и урл плс на портфолио

add
в принципе
"долгосрочного сотрудничества."
лучше удалить , либо исправить, заказчик редко готов ждать долго, тем более проекты на ардуино )
и косвенно утверждаете что будете делать долго,
оно то все так, но заказчику это не нравится )
VladMaster,  интересных, реализуемых, финансово положительных заказов ! )

Остання редакція NoName (2016-04-16 14:32:34)

Неактивний

#7 2016-10-24 10:20:30

Finista
Учасник
Зареєстрований: 2016-10-24
Повідомлень: 2

Re: Автоматизация света на даче

Заказал у vlad.spbstu@mail.ru (Владислав Gardner, VladMaster) проект станции дозирования, после оплаты не выходит на связь. Владислав, выходи на связь subnews4@mial.ru.

Неактивний

#8 2016-11-18 23:27:20

a1000
Учасник
Зареєстрований: 2015-07-18
Повідомлень: 7

Re: Автоматизация света на даче

iskander_famous вы свою проблему решили?

Неактивний

#9 2016-11-19 20:17:36

gidrobort
Учасник
Зареєстрований: 2016-10-19
Повідомлень: 15

Re: Автоматизация света на даче

Finista пише:

Заказал у vlad.spbstu@mail.ru (Владислав Gardner, VladMaster) проект станции дозирования, после оплаты не выходит на связь. Владислав, выходи на связь subnews4@mial.ru.

для меня тоже хотел написать скетч, но не срослось и Слава Богу.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму