1 2 3 4 5 6 7 8 9 10 9.5/10 9,65оценок: 31

Умный дом на модулях Ардуино

Тема в разделе "Умный дом", создана пользователем Logvin, 02.07.12.

  1. stepviz1
    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416

    stepviz1

    Живу здесь

    stepviz1

    Живу здесь

    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416
    Адрес:
    Екатеринбург
    @Netbyka, Пока не пробовал проверять AT-командами как вы говорили, вечером наверно попробую.
    попробовал просто подать питание от батареи телефона на 3,7 V вначале светодиод на SIM 800 L моргает часто ищет сеть видимо но через несколько секунд начинает мигать реже; 7 раз моргнет пауза потом опять 7 раз пауза ... дозвон на вставленную сим не проходит .
     
  2. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    @stepviz1, ну там разное может быть:
    - не хватает питания - радиомодуль не включился
    - хватает питания - но радиомодуль выключен командой, не помню ее
    - радиомодуль включен - но нет сигнала сети, покрытие плохое
    - покрытие нормальное - но настроен запрос пина, его надо командой отдельно вводить

    Ну и так далее. Поэтому начинать надо с прохождения простейшей AT, что оно вообще работает, а потом проверять сигнал, режимы работы и проч.
    Можно пока поискать в Гугле даташит на SIM800, 900 или 300 - там будет полный список AT-команд. Они как правило стандартны по использованию, только где-то какие-то есть, а какие-то не будут работать.
    Модули интересные, там много всего внутри понакручено.

    Кстати, в качестве USB-UART подходят старые дата-кабели от кнопочных мобильников, типа Самсунга С55 - там как раз внутри преобразователь на TTL-уровни. Только надо распиновку телефонного разьема смотреть, чтобы не спалить ничего.
     
  3. stepviz1
    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416

    stepviz1

    Живу здесь

    stepviz1

    Живу здесь

    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416
    Адрес:
    Екатеринбург
    Попробовал сейчас подключить через ардуино уно как на фото ниже как и в прошлые разы на любые АТ команды не отвечает
    скетч такой
    #include <SoftwareSerial.h>
    SoftwareSerial mySerial (2, 3); / RX, TX
    void setup() {
    Serial.begin (19200); /Скорость порта для связи Arduino с компьютером
    Serial.println("Goodnight moon!");
    mySerial. begin (19200); /Скорость порта для связи Arduino с GSM модулем
    mySerial. println("AT");
    }

    void loop() {
    if (mySerial.available()
    Serial.write (mySerial.read();
    if (Serial.available()
    mySerial. write(Serial.read();
    }
    В сериал отвечает только - Goodnight moon но это я так понял от ардуино приходит
     

    Вложения:

    • gsm-scheme.jpg
  4. Dollor
    Регистрация:
    19.06.12
    Сообщения:
    44
    Благодарности:
    13

    Dollor

    Участник

    Dollor

    Участник

    Регистрация:
    19.06.12
    Сообщения:
    44
    Благодарности:
    13
    Как на практике показали себя релюшки? Не погорели, нагрузку держат?
     
  5. aostspb
    Регистрация:
    31.08.11
    Сообщения:
    7.809
    Благодарности:
    6.134

    aostspb

    Живу здесь

    aostspb

    Живу здесь

    Регистрация:
    31.08.11
    Сообщения:
    7.809
    Благодарности:
    6.134
    Адрес:
    Санкт-Петербург
    А кто Вам сказал, что это будет работать с той же скоростью, что и аппаратный сериал?
    https://www.arduino.cc/en/Tutorial/SoftwareSerialExample
    В примере 4800:

    / set the data rate for the SoftwareSerial port
    mySerial. begin (4800);

    Можно потом будет попробовать 7200 и 9600, быстрее я бы не стал делать.
     
  6. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    @stepviz1, если соединить пины 2 и 3 между собой - что-то вводится-выводится? Должно быть эхо, что написали - то прочитали.
    И подобрать скорость пока не заработает, может действительно ему 19200 слишком быстро
     
  7. stepviz1
    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416

    stepviz1

    Живу здесь

    stepviz1

    Живу здесь

    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416
    Адрес:
    Екатеринбург
    Спасибо! :hello:
    попробовал по этому примеру на разных скоростях то же нет отклика на любые АТ команды ставлю на оборот провода RX, TX пишет - я
    /*
    Software serial multple serial test

    Receives from the hardware serial, sends to software serial.
    Receives from software serial, sends to hardware serial.

    The circuit:
    * RX is digital pin 10 (connect to TX of other device)
    * TX is digital pin 11 (connect to RX of other device)

    Note:
    Not all pins on the Mega and Mega 2560 support change interrupts,
    so only the following can be used for RX:
    10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

    Not all pins on the Leonardo and Micro support change interrupts,
    so only the following can be used for RX:
    8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

    created back in the mists of time
    modified 25 May 2012
    by Tom Igoe
    based on Mikal Hart's example

    This example code is in the public domain.

    */
    #include <SoftwareSerial.h>

    SoftwareSerial mySerial (10, 11); / RX, TX

    void setup() {
    / Open serial communications and wait for port to open:
    Serial. begin (9600);
    while (!Serial) {
    ; / wait for serial port to connect. Needed for native USB port only
    }

    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
    if (mySerial.available() {
    Serial. write (mySerial.read();
    }
    if (Serial.available() {
    mySerial. write (Serial.read();
    }
    }
     

    Вложения:

    • ард.jpg
    Последнее редактирование: 31.01.17
  8. stepviz1
    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416

    stepviz1

    Живу здесь

    stepviz1

    Живу здесь

    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416
    Адрес:
    Екатеринбург
    Сейчас попробую; нет нет ничего
     
  9. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    Эхо при соединении rx-tx должно быть, оно уже ни от каких команд не зависит. Если нет - значит, что-то не так сделано в программе.

    RX должен быть на пине, поддерживающем прерывания, у UNO как раз 2 и 3, на них interrupts.

    Uno, Nano, Mini, other 328-based 2, 3
    Mega, Mega2560, MegaADK 2, 3, 18, 19, 20, 21
    Micro, Leonardo, other 32u4-based 0, 1, 2, 3, 7
    Zero all digital pins, except 4
    MKR1000 Rev. 1 0, 1, 4, 5, 6, 7, 8, 9, A1, A2
    Due all digital pins
    101 all digital pins

    В переводе документации по SoftwareSerial написано про другие пины, в частности 10, 11.
    Кто-то где-то врет.
     
    Последнее редактирование: 31.01.17
  10. aostspb
    Регистрация:
    31.08.11
    Сообщения:
    7.809
    Благодарности:
    6.134

    aostspb

    Живу здесь

    aostspb

    Живу здесь

    Регистрация:
    31.08.11
    Сообщения:
    7.809
    Благодарности:
    6.134
    Адрес:
    Санкт-Петербург
    Вопрос: при рассмотрении одновременной работы двух сериалов - какие провода должны давать эхо? :)
    Не так надо делать. Надо добавить отладочные сообщение вот сюда:

    if (Serial.available() {

    Serial. print("Debug:Begin Serial read = ");
    Serial. print (Serial. read();
    Serial. println(" :End Serial read");

    mySerial. write (Serial. read();
    }

    * * * * скобки посчитать, т. к. парсер сайта их удаляет * * * *

    И Hello_Wold совать в модуль через mySerial - совсем не обязательно...
     
    Последнее редактирование: 31.01.17
  11. stepviz1
    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416

    stepviz1

    Живу здесь

    stepviz1

    Живу здесь

    Регистрация:
    31.12.10
    Сообщения:
    610
    Благодарности:
    416
    Адрес:
    Екатеринбург
    скетч вроде с официального сайта !? приведенный выше @aostspb,
     

    Вложения:

    • ард.jpg
  12. aostspb
    Регистрация:
    31.08.11
    Сообщения:
    7.809
    Благодарности:
    6.134

    aostspb

    Живу здесь

    aostspb

    Живу здесь

    Регистрация:
    31.08.11
    Сообщения:
    7.809
    Благодарности:
    6.134
    Адрес:
    Санкт-Петербург
    Так и сделайте как на официальном сайте: т. е. SoftwareSerial подключите к 10 и 11 выводам...
     
  13. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    @aostspb, ну элементарно же:

    - USB, он же HW Serial 0, он же пины 0-1, должен принимать символы от компьютера в скетч, и из скетча на компьютер.
    - SoftwareSerial, настраиваемые пины - должен принимать символы от скетча и выводить их в устройство, и наоборот, принимать из устройства и выводить в скетч.

    Чтобы сделать эхо - надо соединить RX-TX SoftwareSerial. Которые настроены будут.
    Тогда символ, принятый с компьютера, будет записан в SS, принят обратно самим SS, и возвращен в компьютер через HW. Это и есть эхо.

    И если так не получается - значит что-то сделано неправильно в скетче или в настройке SS.
    Кстати, он заявлен до 115200, как бы должен работать...
     
  14. Netbyka
    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323

    Netbyka

    Живу здесь

    Netbyka

    Живу здесь

    Регистрация:
    30.07.15
    Сообщения:
    3.888
    Благодарности:
    2.323
    Даже интересно стало. Надо будет покопаться в коде этого SS, как он вообще обрабатывает прием-передачу.
     
  15. AlexGB
    Регистрация:
    02.02.09
    Сообщения:
    1.430
    Благодарности:
    664

    AlexGB

    Живу здесь

    AlexGB

    Живу здесь

    Регистрация:
    02.02.09
    Сообщения:
    1.430
    Благодарности:
    664
    Адрес:
    Москва
    @stepviz1, Если появились крякозябры, то, очень похоже на то, что скорость модуля настроена не правильно.
    Попробуй сделать цикл инициализации модуля с разной частотой, и после каждой попытке выводить скорость АТ команду.
    У меня на одном модуле была частота 57600, на другом 115200
    Заработает АТ попробуй команды.
    AT+CSQ - качество сигнала
    AT+CBC - информация о питающем напряжении
    да команды набирай в одном регистре иначе не пройдут.
    В doc-файле подборка ссылок и полезной информации
     

    Вложения: