Raspberry Pi (Python): Send SMS using SIM800L

10,495

Did you disconnect the uart from the internal bluetooth and kernel console?

If you don't you will have a problem accessing the device. You need to disable the service that use it:

sudo systemctl disable hciuart

also disable kernel console on that uart eliminating

console=serial0,115200

from kernel command line (/boot/cmdline.txt).And you need to enable two overlays on the device tree (/boot/config.txt) Maybe this can help you:

dtoverlay=pi3-disable-bt 
dtoverlay=pi3-miniuart-bt

Complet solution by rasberrypi.org: https://www.raspberrypi.org/documentation/configuration/uart.md

Share:
10,495
IyaSheep
Author by

IyaSheep

Updated on June 04, 2022

Comments

  • IyaSheep
    IyaSheep almost 2 years
    • Raspberry Pi 3
    • Python 2.7
    • Sim800L

    Hi! I am getting errors connecting to the gsm module

    Here's the code I got from rhydolabz

    import serial
    import RPi.GPIO as GPIO     
    import os, time
    
    GPIO.setmode(GPIO.BOARD)   
    
    # Enable Serial Communication
    port = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=1)
    
    # Transmitting AT Commands to the Modem
    # '\r\n' indicates the Enter key
    
    port.write('AT'+'\r\n')
    rcv = port.read(10)
    print rcv
    time.sleep(1)
    
    port.write('ATE0'+'\r\n')      # Disable the Echo
    rcv = port.read(10)
    print rcv
    time.sleep(1)
    
    port.write('AT+CMGF=1'+'\r\n')  # Select Message format as Text mode
    rcv = port.read(10)
    print rcv
    time.sleep(1)
    
    port.write('AT+CNMI=2,1,0,0,0'+'\r\n')   # New SMS Message Indications
    rcv = port.read(10)
    print rcv
    time.sleep(1)
    
    # Sending a message to a particular Number
    
    port.write('AT+CMGS="+6xxxxxxxxx68"'+'\r\n')
    rcv = port.read(10)
    print rcv
    time.sleep(1)
    
    port.write('Hello User'+'\r\n')  # Message
    rcv = port.read(10)
    print rcv
    
    port.write("\x1A") # Enable to send SMS
    for i in range(10):
        rcv = port.read(10)
        print rcv
    

    Here are the errors:

    OSError: [Errno 11] Resource temporarily unavailable
    
    raise SerialException('device reports readiness to read but returned no data (device disconnected?)')
    serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected?)
    
    raise SerialException('write failed: %s' % (v,))
    serial.serialutil.SerialException: write failed: [Errno 5] Input/output error
    

    Sometimes It sends

    Hello User
    Login incorrect
    raspberrypi login:
    

    Sometimes

    >
    >
    > 
    (100+ more '>')
    Hello User
    

    but almost always it doesn't connect and it gives Error 11

    Have you experience this too? Is there a way I can wait for the gsm to connect before I proceed on sending a message?