Arduino Nano与SIM800C 通信

首先感谢

  原文作者:https://blog.csdn.net/weixin_44481398/article/details/86596933#commentBox

  找了好久没有找到,使用他的代码一次就可以。

  我的教程可能不够明了,建议不明白的地方查看原文链接。

正文开始

先上图片(不一样的SIM800C):

 接线:

 整体:

 Arduino:

 说明:

  1. SIM800c Sim卡那面为反面,芯片那一面为正面. 针脚为下
  2. 下方的6个针孔(只需用到4个)依次为 3.3V,GND,RX,TX
  3. Arduino 使用到 3.3V,GND,10(RX),11(TX)

 接线:

  1. Sim800c 3.3V -> Arduino 3.3V
  2. Sim800c GND -> Arduino GND
  3. Sim800c RX -> Arduino TX
  4. 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等

 

猜你喜欢

转载自www.cnblogs.com/xiaqiuchu/p/11568269.html