Hello.
in this code: Use code tags to format code for the forum
#include <SoftwareSerial.h>
// Define the software serial pins for communication with SIM800L
SoftwareSerial sim800(10, 11); // RX, TX
void setup() {
// Start serial communication with SIM800L
sim800.begin(9600);
// Start serial communication with Arduino IDE Serial Monitor
Serial.begin(9600);
Serial.println("Starting SIM800L communication...");
delay(1000); // Wait for SIM800L to stabilize
// Check if SIM800L is responding
sendATCommand("AT");
delay(1000);
// Additional AT commands for debugging
sendATCommand("AT+CSQ"); // Check signal quality
delay(1000);
sendATCommand("AT+CREG?"); // Check network registration status
delay(1000);
}
void loop() {
// Your main code here
}
// Function to send AT commands and print the response
void sendATCommand(const char* command) {
Serial.print("Sending command: ");
Serial.println(command);
sim800.println(command);
delay(1000);
Serial.print("Response: ");
while (sim800.available()) {
Serial.write(sim800.read());
}
Serial.println();
}
In serial monitor it apear only Sending command: AT
Response:
Sending command: AT+CSQ
Response:
Sending command: AT+CREG?
Response:
Building sketch
Ln 4, Col 29
Arduino Uno
on COM3 [not connected]
.
Sim800l led blink ever 3 second.
Can anyone help me please where is the problem
try using AltSoftSerial which can simultaneously transmit and receive
try this simple code where AT commands can be entered and see response
// UNO SIM800l AltSoftSerial basic AT commands test
#include <AltSoftSerial.h>
// UNO SIM800l connection for basic AT command test
// use external power supply for transmit/receive communications
//SIM800L 5V POWER to UNO 5V
//SIM800L GND POWER to UNO GND
//SIM800L VDD to UNO 5V
//SIM800L TXD to UNO RX pin 8
//SIM800L RXD to UNO TX pin 9
//SIM800L UART TTL GND and RST not connected
// Mega SIM800 test - note preferable to use a hardware serial port
//SIM800L TXD to Mega RX pin 48
//SIM800L RXD to Mega TX pin 46
// taking the RST pin to GND for a couple of seconds which will reset the device
// RS232 shield
// RS232 TXD to UNO pin 9
// RS232 RXD to UNO pin 8
// basic AT commands
// AT returns OK
// AT+CGMI returns the manufacturer's name
// AT+CGMM returns the MODEM model number
// AT+CGMR returns details of the software and model revision level
// AT+CGSN returns the MODEM's serial number
AltSoftSerial simSerial;
void setup() {
Serial.begin(115200);
Serial.println("AltSoftSerial test");
//Begin serial communication with Arduino and SIM800L
simSerial.begin(9600); // set to default baudrate
Serial.println("SIM module intialized");
}
void loop() {
if (Serial.available()) {
char command = Serial.read();
//Serial.println(command);
simSerial.print(command);
}
while (simSerial.available()) {
char reponse = simSerial.read();
Serial.print(reponse);
}
}
e.g. sample output when SIM800 connected to a UNO
AT
OK
AT+CGMI
SIMCOM_Ltd
OK
AT+CGMM
SIMCOM_SIM800L