首先感谢
原文作者:https://blog.csdn.net/weixin_44481398/article/details/86596933#commentBox
找了好久没有找到,使用他的代码一次就可以。
我的教程可能不够明了,建议不明白的地方查看原文链接。
正文开始
先上图片(不一样的SIM800C):
接线:
整体:
Arduino:
说明:
- SIM800c Sim卡那面为反面,芯片那一面为正面. 针脚为下

- 下方的6个针孔(只需用到4个)依次为 3.3V,GND,RX,TX
- Arduino 使用到 3.3V,GND,10(RX),11(TX)
接线:
- Sim800c 3.3V -> Arduino 3.3V
- Sim800c GND -> Arduino GND
- Sim800c RX -> Arduino TX
- Sim800c TX -> Arduino RX
代码:
#include <SoftwareSerial.h> // 采用软件的串口
SoftwareSerial SIM800C(10, 11); // Serial RX, TX
boolean bState, bOldState;
int incomingByte = 0; // for incoming serial data
void setup() {
// put your setup code here, to run once:
// Open serial communications and wait for port to open
pinMode(13, OUTPUT);
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Good Morning, my old friend!");
SIM800C.begin(9600);
SIM800C.println("AT+CMGF=1");
}
void loop() {
// put your main code here, to run repeatedly:
if (SIM800C.available()) {
Serial.write(SIM800C.read());
digitalWrite(13, HIGH);// 如果通信成功,则把Arduino上面的L13 LED 灯打开
}
if (Serial.available()) {
SIM800C.write(Serial.read());
// incomingByte = Serial.read();
// Serial.print("I received: ");
// Serial.println(incomingByte, DEC);
// digitalWrite(13, !digitalRead(13));
}
}
测试:


在这里我们发送了一个AT命令,SIM800C返回一个Ok。再发送一个AT+GSV,返回:
13:33:20.943 -> SIMCOM_Ltd
13:33:20.943 -> SIMCOM_SIM800C
13:33:20.979 -> Revision:1418B06SIM800C24
通讯成功。任务初步完成。
备注:
AT命令可以百度查找,如:https://blog.csdn.net/bihaiqiyuan/article/details/17595327,https://blog.csdn.net/wzt_007/article/details/78557268。
只要根据教程如输入AT 返回OK即表示连线正确和程序正常运行。命令格式: AT, AT+GSV等
