Страница 32 из 44 ПерваяПервая ... 222627282930313233343536373842 ... ПоследняяПоследняя
Показано с 311 по 320 из 435
  1. #311
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    225

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Опять же, думаю проблема с NewSoftSerial. Попробуй повесь телефон на Serial. Вместо mySerial пиши просто Serial и убери из скетча строки:
    #include <NewSoftSerial.h>
    NewSoftSerial mySerial(2, 3);
    mySerial.begin(9600);
    Serial.println("Goodnight moon!");

    И конечно-же, поменяй строку "0011000B919760691665F10008FF0C043F044004380432043 50442" на свою и измени "AT+CMGS=26"
    Последний раз редактировалось metaforos; 30.03.2012 в 17:17.
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

  2. #312
    Пользователь
    Регистрация
    12.11.2011
    Возраст
    49
    Сообщений
    64
    Вес репутации
    166

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    мост заработал ...почему раньше не получалось не знаю
    PHP код:
    //http://www.compcar.ru 
    void setup() 
    {    
      
    pinMode(0INPUT); //RX 
      
    pinMode(1INPUT);//TX  

    void loop()  


    Поменял но вот по этому скетчу все равно...и не звонит и не шлет смс...единственное телефон сеть то теряет то находит...В ТЕРМИНАЛ ВСЕ ВЫВОДИТ
    Посмотрите нет в нем косяков!?
    PHP код:
    void setup()  
    {
      
    Serial.begin(9600);
    }

    void loop() // run over and over
    {
      
    digitalWrite(13HIGH);delay(500);
      
    digitalWrite(13LOW);delay(200);
      
      
    Serial.println(" ATD+79166434932;");

      
    digitalWrite(13HIGH);delay(20000);
      
    Serial.println(" ATH");
      
    digitalWrite(13LOW);delay(5000);
          
    Serial.println(" AT+CMGF=0"); // устанавливаем pdu режим
          
    delay(3000);
          
    Serial.println(" AT+CMGS=26"); //Количество октетов
          
    delay(3000);
          
    Serial.print("0011000B919761464339F20008FF3400310031003100310031003100310031003100310031003100310031003100310031003100310031003100310031003100310031");
          
    delay(3000);
          
    Serial.write(26);
          
    delay(3000);

    в тексте смс 11111111111111111111111111(26штук) ну и номер +7916ХХХХХХХ свой ставлю

  3. #313
    Новичок
    Регистрация
    29.03.2012
    Возраст
    36
    Сообщений
    9
    Вес репутации
    151

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    У меня тоже по началу телефон сеть терял пока я не подпаял резисторов и диодов. Что то сомневаюсь что у вас длинна 26, воспользуйтесь лучше программой конвертером http://www.avrdevices.ru/Soft/Pdu.exe
    Вот нарыл в гугле интересный пример. Я так понял он как раз конвертрует текст в скетче в формат пду, но у меня не заработало(
    PHP код:
    #include <NewSoftSerial.h>

    NewSoftSerial mySerial(23);

    #define num_to_char(number)   ((number) < 10 ?                           \
                                                   
    ('0' + (number)) :        \
                                                   ((
    'A' 10) + (number)) )
     
    /* To select the 4 bits we do this */
    #define first_four(byte)       (0x0F & (byte))
     
    /* Last four: Shift left to get to a number &lt; 16 */ 
    #define  last_four(byte)      ((0xF0 & (byte)) >> 4)

    /* The MSB goes first. */
    #define hexdump_a(byte)  num_to_char( last_four(byte))
    #define hexdump_b(byte)  num_to_char(first_four(byte))

     
    int timesToSend 1;        // Numbers of SMS to send
    int count 0;

    void setup()  
    {
      
    Serial.begin(9600);
      
    Serial.println("Goodnight moon!");

      
    // set the data rate for the SoftwareSerial port
      
    mySerial.begin(9600);
      
    //mySerial.println("Hello, world?");
    }

    void loop() // run over and over
    {
       
        
    send_sms("Hello World");
     
        
     
    /*  
      if (Serial.available() > 0) {
         // number_in = Serial.read();
          mySerial.println("AT+CMGF=0"); // Set PDU mode
          delay(3000);
          mySerial.println("AT+CMGS=30"); // Number of octets
          delay(3000);
          mySerial.print("0011000B919731630470F20008FF10043F0440043E043204350440043A0430"); // Sends "Hello" to "00 46707112233"
          delay(3000);
          mySerial.write(26);
          delay(3000);
      }*/
    }

    void hexdump_byte(unsigned char byte)
    {
      
    mySerial.print(hexdump_a(byte), BYTE);
      
    mySerial.print(hexdump_b(byte), BYTE);
    }
     
    void send_sms(char *data)
    {
      
    size_t data_lengthx;
      
    char cl;
      
    long i;
      
    long n;
     
      
    data_length strlen(data);
      
    data_length 7;
     
      
    /* Round i up to a multiple of 8 */
      
    if (0x07= (& ~0x07) + 0x08;
     
      
    /* Calculate the number of message octets */
      
    8;
     
    //Select operating mode for sms: PDU, since it doesnt understand anything else
      
    mySerial.println("AT+CMGF=0");
      
    delay(1500);
      
    mySerial.print("AT+CMGS=");
    //Now we say "AT+CMGS=..." that gives it the cellphone number. 
    //This is also in weirdass PDU format, so i am sending a message to myself at "0031-653587738"
    // which was the destination phone nr.  Serial.print("AT+CMGS=");
      
    delay(1500);
      
    mySerial.println(14);
      
    delay(1500);
    //This is actually the number. If you want to use your own number you just have to figure out where to put your digits. 
    //Mine was "31653587738" Because this is an uneven amount of numbers, there is an F included before the last 8. 
    //If you check it out you probably figure it out: you have to make your phonenumber so that they're 
    //switched in pairs of two, so like if your number is "123456789" it will become "21436587F9" 
    //And if its "123456" it will be "214365". I know, it's weird and ancient. 
    //that's why im posting this code.
      
    mySerial.print("0011000B919731630470F20000AA"); //1356537837F8 is the phonenr
      
    hexdump_byte(data_length 0xFF);
      
    0;
      
    0;
     
    //The rest of the code then is just about changing our serial info "Hello World" into neat PDU HEX format.
      
    for (0data_lengthx++)
      {
        if (
    data[x] == '$')  data[x] = 0x02;
     
        
    |= (data[x] & 0x7F) << l;
        
    += 7;
     
        if (
    >= 8)
        {
          
    hexdump_byte(0xFF);
          
    -= 8;
          
    >>= 8;
        }
      }
     
      if (
    != 0)
      {
        
    hexdump_byte(0xFF);
      } 
      
    mySerial.println(0x1ABYTE);
      
    //mySerial.write(26);

    Ссылка на оригинал.
    Последний раз редактировалось rimidalw; 30.03.2012 в 19:20.

  4. #314
    Пользователь
    Регистрация
    12.11.2011
    Возраст
    49
    Сообщений
    64
    Вес репутации
    166

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    вот строка с 11111111111111111111111111(26шт)
    0011000B919761214365F70008FF3400310031003100310031 00310031003100310031003100310031003100310031003100 3100310031003100310031003100310031
    телефон там +79161234567
    Я тоже все смотрю на твою строку и не пойму почему она у тебя короче моей вышла.
    Прога из твоей ссылки
    резисторы(делитель) стоят ...да и работало ведь все уже... может все таки второй делитель поставить.
    У тебя какая платка дуина????
    Не тут софтовый непорядок кажися.
    Последний раз редактировалось igvv; 30.03.2012 в 19:34.

  5. #315
    Новичок
    Регистрация
    29.03.2012
    Возраст
    36
    Сообщений
    9
    Вес репутации
    151

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Цитата Сообщение от igvv Посмотреть сообщение
    вот строка с 11111111111111111111111111(26шт)
    0011000B919761214365F70008FF3400310031003100310031 00310031003100310031003100310031003100310031003100 3100310031003100310031003100310031
    телефон там +79161234567
    Я тоже все смотрю на твою строку и не пойму почему она у тебя короче моей вышла.
    Прога из твоей ссылки
    резисторы(делитель) стоят ...да и работало ведь все уже... может все таки второй делитель поставить.
    У тебя какая платка дуина????
    Не тут софтовый непорядок кажися.
    У меня freeduino 2009. Схему подключения позже выложу. У вас символов в сообщении 26, а размер pdu 66 внимательнее надо быть.

  6. #316
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    225

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    В программе, внизу, краснім цветом написано "Размер PDU", вот эту цифру и вписывай в AT+CMGS=
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

  7. #317
    Пользователь
    Регистрация
    12.11.2011
    Возраст
    49
    Сообщений
    64
    Вес репутации
    166

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Всем спасибо понял свою ошибку(теперь работает)...кстати я уже об этом думал и пробовал вбивать 66 но не выходило ....попутно отыскал и плохой контакт на макетке...

  8. #318
    Новичок
    Регистрация
    29.03.2012
    Возраст
    36
    Сообщений
    9
    Вес репутации
    151

    Восклицание Re: Управление внешними устройствами с Arduino при помощи СМС

    Отлично! Этот код у меня заработал. Через каждые 18 секунд отправляет Hello World. Есстественно Hello World меняем на свое и номер тела!
    PHP код:
    #include <NewSoftSerial.h>

    NewSoftSerial mySerial(23);

    #define num_to_char(number)   ((number) < 10 ?                           \
                                                   
    ('0' + (number)) :        \
                                                   ((
    'A' 10) + (number)) )

    #define first_four(byte)       (0x0F & (byte))
    #define  last_four(byte)      ((0xF0 & (byte)) >> 4)
    #define hexdump_a(byte)  num_to_char( last_four(byte))
    #define hexdump_b(byte)  num_to_char(first_four(byte))

     
    int timesToSend 1;        // Numbers of SMS to send
    int count 0;

    void setup()  
    {
     
    // Serial.begin(9600);
     // Serial.println("Goodnight moon!");
      
    mySerial.begin(9600);
    }
    void loop() 

       for (
    int k=0;k<=1;k++){
        
    send_sms("Hello World");  
        
    delay(18000);
       }
    }


     
    void send_sms(char *data)
    {
      
    size_t data_lengthx;
      
    char cl;
      
    long i;
      
    long n;
      
    data_length strlen(data);
      
    data_length 7;
      if (
    0x07= (& ~0x07) + 0x08;
      
    8;
     
      
    mySerial.println("AT+CMGF=0");
      
    delay(1500);
      
    mySerial.print("AT+CMGS=");
      
    delay(1500);
      
    mySerial.println(14);
      
    delay(1500);
     
    // mySerial.print("0011000B919731630470F20008FF");
     //перевернутый номер тела 19731630470F2 изменить на свой этот кусок
      
    mySerial.print("0011000B919731630470F20000AA"); 
      
    hexdump_byte(data_length 0xFF);
      
    0;
      
    0;
      for (
    0data_lengthx++)
      {
        if (
    data[x] == '$')  data[x] = 0x02;
        
    |= (data[x] & 0x7F) << l;
        
    += 7
        if (
    >= 8)
        {
          
    hexdump_byte(0xFF);
          
    -= 8;
          
    >>= 8;
        }
      } 
      if (
    != 0)
      {
        
    hexdump_byte(0xFF);
      } 
      
    mySerial.write(26);
    }
    void hexdump_byte(unsigned char byte)
    {
      
    mySerial.print(hexdump_a(byte), BYTE);
      
    mySerial.print(hexdump_b(byte), BYTE);


  9. #319
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    225

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Код несомненно полезный. НО! Учитывая ограниченную память Ардуино, думаю, что если есть программа, то лучше конвертацию в ней проводить.
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

  10. #320
    Пользователь
    Регистрация
    12.11.2011
    Возраст
    49
    Сообщений
    64
    Вес репутации
    166

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    У меня работает он

    Ну в принципе если влезет в основной проект, то пускай будет , а так пока тоже особо смысла не вижу лично для своих задач.

    Вот обратную конвертацию бы еще нашел, тогда бы все вопросы решил
    Могла бы пригодиться здорово.
    Но проще будет просто вытащить кусок и сравнить...вроде пустячок а никак...
    Последний раз редактировалось igvv; 31.03.2012 в 01:26.

Страница 32 из 44 ПерваяПервая ... 222627282930313233343536373842 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •