Помощ ардуино смс

Тема в разделе "Arduino & Shields", создана пользователем Natiq, 25 янв 2016.

  1. Natiq

    Natiq Нуб

    Помогите эти 2 программы собрат вместе что бы они работали одном программе. Эти программы по отдельности работают но когда объединяю не работает.Заранее спасибо.
     

    Вложения:

  2. Mestniy

    Mestniy Гуру

    А как соединять пробовали?
     
  3. Mestniy

    Mestniy Гуру

    sms_v_arduino.ino не открывается.
     
  4. Natiq

    Natiq Нуб

    Да. Вот отправляю программу.
     

    Вложения:

    • _2_v_1.ino
      Размер файла:
      3,3 КБ
      Просмотров:
      354
  5. Natiq

    Natiq Нуб

    // Example 55.7

    #include <SoftwareSerial.h>
    char inchar; // Will hold the incoming character from the GSM shield
    SoftwareSerial SIM900(7, 8);

    int led1 = 10;
    int led2 = 11;
    int led3 = 12;
    int led4 = 13;
    int led5 = 9;

    void setup()
    {
    Serial.begin(19200);
    // set up the digital pins to control
    pinMode(led1, OUTPUT);
    pinMode(led2, OUTPUT);
    pinMode(led3, OUTPUT);
    pinMode(led4, OUTPUT);
    pinMode(led5, OUTPUT);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);

    // wake up the GSM shield
    SIM900power();
    SIM900.begin(19200);
    delay(20000); // give time to log on to network.
    SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
    delay(100);
    SIM900.print("AT+CNMI=2,2,0,0,0\r");
    // blurt out contents of new SMS upon receipt to the GSM shield's serial out
    delay(100);
    Serial.println("Ready...");
    }

    void SIM900power()
    // software equivalent of pressing the GSM shield "power" button
    {
    digitalWrite(9, LOW);
    delay(3000);
    digitalWrite(9,HIGH );
    delay(5000);
    }

    void loop()
    {
    //If a character comes in from the cellular module...
    if(SIM900.available() >0)
    {
    inchar=SIM900.read();
    if (inchar=='#')
    {
    delay(10);

    inchar=SIM900.read();
    if (inchar=='a')
    {
    delay(10);
    inchar=SIM900.read();
    if (inchar=='0')
    {
    digitalWrite(led1, LOW);
    }
    else if (inchar=='1')
    {
    digitalWrite(led1, HIGH);
    }
    delay(10);
    inchar=SIM900.read();
    if (inchar=='b')
    {
    inchar=SIM900.read();
    if (inchar=='0')
    {
    digitalWrite(led2, LOW);
    }
    else if (inchar=='1')
    {
    digitalWrite(led2, HIGH);
    }
    delay(10);
    inchar=SIM900.read();
    if (inchar=='c')
    {
    inchar=SIM900.read();
    if (inchar=='0')
    {
    digitalWrite(led3, LOW);
    }
    else if (inchar=='1')
    {
    digitalWrite(led3, HIGH);
    }
    delay(10);
    inchar=SIM900.read();
    if (inchar=='d')
    {
    delay(10);
    inchar=SIM900.read();
    if (inchar=='0')
    {
    digitalWrite(led4, LOW);
    }
    else if (inchar=='1')
    {
    digitalWrite(led4, HIGH);
    }
    delay(10);
    }
    }
    SIM900.println("AT+CMGD=1,4"); // delete all SMS
    }
    }
    }
    }
    }
     
  6. Mestniy

    Mestniy Гуру

    А что вы хоте в итоге получить? Успел заметить, что скетчи похожие, только переменные по разному называются.
     
  7. Mestniy

    Mestniy Гуру

    Спрошу правильнее: Что вы хотите добавить в первый скетч?
     
  8. Natiq

    Natiq Нуб

    Я хочу отправит смс и когда ардуино получит сигнал на пин 10 то електоклапан откроется. Потом я поставил датчик потока. Когда електроклапан открываетсяю и вода идет то датчик потока дает сигнал на пин 6.когда пин6 получит сигнал то мне придет смс.
     
  9. Natiq

    Natiq Нуб

    Я хочу отправит смс и когда ардуино получит сигнал на пин 10 то електоклапан откроется. Потом я поставил датчик потока. Когда електроклапан открываетсяю и вода идет то датчик потока дает сигнал на пин 6.когда пин6 получит сигнал то мне придет смс.
     
  10. Mestniy

    Mestniy Гуру

    Блин прости смогу помочь позже. Если хочешь, через час буду ВК, напиши: http://vk.com/egrebennikov2013
     
  11. Mestniy

    Mestniy Гуру

    Думаю завтра отпишусь. Немного занят пока.
     
  12. Airbus

    Airbus Радиохулиган Модератор

    Проверяйте!У меня работает.Пин выхода на реле исправьте я специально 13 взял чтоб светодиод на плате загорался также поправьте номер телефона для СМС и текст.
    Код (C++):
    [code]
    //для выхода будем использовать 13 вход потом поменяем если надо на 10
        //для датчика пин 6
        int rele = 13;
        int btn = 3;
        int power = 9 ; // подача питания пин 9
        void setup()
        {
        // инициализируем пин, подключенный к кнопке, как вход
        // пин 9 для включения шилда
        pinMode(power, OUTPUT);
        pinMode(rele, OUTPUT);
            pinMode(btn, INPUT);
        digitalWrite(power,HIGH); //подали питание
        delay(1000); //на 1 сек
        digitalWrite(power,LOW); //сняли питание
        Serial.begin(9600); //скорость 9600 бод самое оно
        delay(300);
            // Настраиваем приём сообщений с других устройств
            // Между командами даём время на их обработку
            Serial.print("AT+CMGF=1\r");
            delay(300);
            Serial.print("AT+IFC=1, 1\r");
            delay(300);
            Serial.print("AT+CPBS=\"SM\"\r");
            delay(300);
            Serial.print("AT+CNMI=1,2,2,1,0\r");
            delay(500);
        }
    String currStr = "";
    // Переменная принимает значение True, если текущая строка является сообщением
    boolean isStringMessage = false;
    void loop()
    {
        if (!Serial.available())  //если есть данные
            return;
        char currSymb = Serial.read();
        if ('\r' == currSymb) {
            if (isStringMessage) {
                //если текущая строка - SMS-сообщение,
                //отреагируем на него соответствующим образом
                if (!currStr.compareTo("on"))   //если on включим реле
        {
                    digitalWrite(rele, HIGH);
                    {if (digitalRead(btn) == LOW)  // если датчик сработал (замкнут на землю)
                                                                    //посылаем смс
          {     Serial.println("AT + CMGS = \"+79222909090\""); //Ваш номер телефона
                delay(300);
                // Пишем текст сообщения
                Serial.println("Preved Medved!");
                delay(300);
                // Отправляем Ctrl+Z, обозначая, что сообщение готово
                Serial.println((char)26);
                delay(1000);
           }
                    }
                }  else if (!currStr.compareTo("off"))  //если off выключим реле
          {
                    digitalWrite(rele, LOW);
                }
                isStringMessage = false;
            } else {
                if (currStr.startsWith("+CMT")) {
                    //если текущая строка начинается с "+CMT",
                    //то следующая строка является сообщением
                    isStringMessage = true;
                }
            }
            currStr = "";
        } else if ('\n' != currSymb) {
            currStr += String(currSymb);
        }
    }

     
    Да ещё важно!Не использовал левых библиотек поэтому используется аппаратный USART перемычки на плате ГПРС Шилда поставить в положение "HW"
     
  13. Natiq

    Natiq Нуб

  14. Natiq

    Natiq Нуб

    Привет. У нас подключение вот так я загрузил этот программу не сработал. Может гдето не правилно делаю?
     
  15. Airbus

    Airbus Радиохулиган Модератор

    Я же написал

    У вас на фото стоят в положении serial SW а надо в положение serial HW ну а по схеме всё вроде правильно.И потом у Вас уровень сработки от сенсора на 6 пин низкий или высокий?В скетче у меня низкий-замыкание на GND.
     
  16. Natiq

    Natiq Нуб

    6 пин низкий. А сейчас положение serial HW правильно? 2016-01-26 11.26.55.jpg
     
  17. Airbus

    Airbus Радиохулиган Модератор

    Да правильно.Должно работать если отправите СМС с ткестом on (буквы маленькие) должно сработать реле на пин 13 если после этого пин 6 замкнуть на GND то отправит Вам СМС. Номер в скетче поправили?
     
  18. Natiq

    Natiq Нуб

    Привет. Помоги пожалуйста. Программа который я загрузил работает. Но я еще хочу когда HIGH сигнал придет на пин 4 чтобы мне пришел смс. Заранее спасибо.
     

    Вложения:

    • SMS_VE_ZENG.ino
      Размер файла:
      4,7 КБ
      Просмотров:
      318
  19. Airbus

    Airbus Радиохулиган Модератор

    В прилагаемом скетче?
    В любой момент независимо от других событий?
     
  20. Natiq

    Natiq Нуб

    Да в этом скетче. Независимо от других событий. Когда я нажму на бутон чтобы смс приходил. Спасибо за всё.