Close

PIR + SIM800L volání

Úvodní stránka Fórum Vaše projekty Arduino PIR + SIM800L volání

  • Toto téma obsahuje celkem 3 odpovědi. Do diskuze (2 diskutující) se naposledy zapojil uživatel Soci a poslední změna proběhla před 6 roky a 10 měsíci.
Aktuálně jsou na stránce zobrazeny 4 příspěvky - 1. až 4. (celkem z 4)
  • Autor
    Příspěvky
  • #5853
    Soci
    Účastník

    Dobrý den, snažím se o to aby mi GSM volalo na mobil po tom co PIR zachytí pohyb.
    Ukázka: https://www.youtube.com/watch?v=lr42TVAacKQ

    Mám:
    -GSM GPRS modul http://arduino-shop.cz/arduino-site-wifi-bt-rj45/1105-gsm-gprs-modul-pro-arduino.html
    – PIR pohybové čidlo
    – Arduino Mega2560

    Autor videa zveřejnil sketch i zapojení na facebooku: https://www.facebook.com/permalink.php?story_fbid=1619863934960692&id=1442967352650352

    Tady je moje současné zapojení Arduina Mega2560:
    Mega2560 GSM
    5V VCC /tady jsem zmírnil proud pomocí jedné Led diody
    PWM 10 RX
    PWM 11 TX
    GND GND

    Mega2560 PIR
    5V VCC
    A0 OUT
    GND GND

    Kód:
    ‪#‎include‬ „SIM900.h“
    #include <SoftwareSerial.h>
    //We don’t need the http functions. So we can disable the next line.
    //#include „inetGSM.h“
    #include „sms.h“
    #include „call.h“
    //To change pins for Software Serial, use the two lines in GSM.cpp.
    //GSM Shield for Arduino
    //www.open-electronics.org
    //this code is based on the example of Arduino Labs.
    //Simple sketch to check if an incoming call is from an authorized
    //number and in this case, send to this number an SMS with the value
    //of a digital input.
    //We have to create the classes for SMSs and calls.
    CallGSM call;
    SMSGSM sms;
    char number[20];
    byte stat=0;
    int value=0;
    int pin=9;
    char value_str[5];
    int sensorVal;
    char testnumber[]=“0961915030″;
    void setup()
    {
    pinMode(pin,INPUT);
    //Serial connection.
    Serial.begin(9600);
    Serial.println(„GSM Shield testing.“);
    //Start configuration of shield with baudrate.
    //For http uses is raccomanded to use 4800 or slower.
    if (gsm.begin(2400))
    Serial.println(„\nstatus=READY“);
    else Serial.println(„\nstatus=IDLE“);
    };
    void loop()
    {
    do
    {
    sensorVal = analogRead(1);
    }while(sensorVal==0);
    call.Call(testnumber);
    //Chekcs status of call
    //stat=call.CallStatusWithAuth(number,1,3);
    //If the incoming call is from an authorized number
    //saved on SIM in the positions range from 1 to 3.
    /* if(stat==CALL_INCOM_VOICE_AUTH) {
    //Hang up the call.
    call.HangUp();
    delay(2000);
    //Check the value of the input.
    value=digitalRead(1);
    //Convert the int to a string.
    itoa(value,value_str,10);
    //Send an SMS to the previous number with
    //the value read previously.
    sms.SendSMS(number,value_str);
    }*/
    delay(15000);
    call.HangUp();
    delay(5000);
    };

    Jediná část kterou jsem změnil byla char testnumber[]=“0604103598″; kde jsem vložil své číslo za nulu char testnumber[]=“0xxxxxxxxx“;.

    Reakce Arduina:
    Po spuštění se mi na sériový monitor vypíše postupně toto:
    GSM Shield testing.
    DB:NO RESP
    DB:NO RESP
    DB:NO RESP
    Trying to force the baud-rate to 9600

    1200
    2400
    4800
    9600
    19200
    38400
    57600
    115200
    ERROR: SIM900 doesn’t answer. Check power and serial pins in GSM.cpp

    status=IDLE

    Co se ještě týče GSM po zapojení přes Led diodu nebliká ledka na GSM, po přímém připojení na 5V občas 2x rychle po sobě blikne, netuším co to znamená, prosím o pomoc.

    #5854
    Soci
    Účastník

    Po vložení se mi vymazali mezery, tak ještě pro přehlednost:

    Mega2560 → GSM
    5V → VCC /tady jsem zmírnil proud pomocí jedné Led diody
    PWM 10 → RX
    PWM 11 → TX
    GND → GND

    Mega2560 → PIR
    5V → VCC
    A0 → OUT
    GND → GND

    #5869
    Aleš
    Účastník

    Najdi knihovnu GSM.cpp
    V ní najdi řádky:
    #define _GSM_TXPIN_ 2
    #define _GSM_RXPIN_ 3
    změň je na:
    #define _GSM_TXPIN_ 11
    #define _GSM_RXPIN_ 10

    Ještě upřesním: signál RX na modulu GSM bude zapojen na pin11, signál TX na pin10. Sériový port se zapojuje RX na TX a TX na RX.

    Když to bude chodit, tak bych to celé upravil a předělal na HW sériový port RX1 a TX1.

    Místo LED bych tam dal 2 diody. Není to kvůli proudu, ale kvůli snížení napětí. Přes LED neprojde potřebný proud!

    #5870
    Soci
    Účastník

    Po úpravě byla reakce stále stejná, tak jsem začal zkoušet přehazovat drátky a místo ledky jsem použil nějaký rezistor co jsem tu měl a konečně se pak objevila nějaká odezva:
    GSM Shield testing.
    ATT: OK
    RIC:
    ATT: OK
    RIC:
    ATT: OK
    RIC:
    ATT: OK
    RIC:
    ATT: OK
    RIC:

    Pak jsem zkoušel v čem byl problém. Nefungovalo to když jsem místo rezistoru vrátil ledku, ani když jsem přehodil zpátky RX na TX a TX na RX jak by to mělo být (v současnosti mám tedy TX → TX) a dokonce ani při vrácení #define _GSM_TXPIN_ 2 #define _GSM_RXPIN_ 3. Všechny tyto věci se tedy musely změnit aby nastala tato reakce. Stále to nevolá, ale rozhodně jsem o něco dál. Děkuji.

Aktuálně jsou na stránce zobrazeny 4 příspěvky - 1. až 4. (celkem z 4)
  • Pro reakci na toto téma se musíte přihlásit.