• Arduino Nano与SIM800C 通信


    首先感谢

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

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

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

    追加:

    1. 3.3V好像信号不好,接上5v
    2. 如果命令的时候有时候没有及时返回,等待一会。如果还是没有反应,建议重新插拔一下。
    3. 我的信号很低,不清楚什么原因 0-12之间
    4. 如果AT命令不带=号,如测试信号强度如:AT+CSQ ,如果提示错误则可在命令后加 ? ,如 AT+CSQ? 就可以显示想要查看的配置信息。(很重要ERROR看这里)
    5. HTTPS请求获取不到

    正文开始

    先上图片(不一样的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等

     推荐:

    1. SIM800使用AT进行GPRS建立TCP远程连接 https://blog.csdn.net/wzt_007/article/details/78557268

    2. SIM800C实现GPRS上网的AT指令 https://blog.csdn.net/zyxhangiian123456789/article/details/79490793

    3. SIM800A模块进行HTTP的GET和POST操作 https://blog.csdn.net/qq_26602023/article/details/72898753 (亲测可行)(推荐)(如果不可以请按照推荐6进行排查)(备用地址:SIM800A模块进行HTTP的GET和POST操作)

    4. AT+CSQ (查看信号强度详解) http://www.360doc.com/content/16/1228/17/18578054_618460530.shtml
    5. SIM800C通讯模块调试(一) https://blog.csdn.net/cqdawnxsg/article/details/80680270(对于命令解析比较全面)

    6. AT+CREG?出现问题+CREG: 0,0/+CREG: 0,2等问题解决 https://blog.csdn.net/heroybc/article/details/90108113 (检查信号,手机卡是否正确安装使用)

  • 相关阅读:
    [转]为什么阿里巴巴要禁用Executors创建线程池?
    支付宝的架构到底有多牛逼!
    [转] Java Agent使用详解
    Spring Boot必备技能之Starter自定义
    面试题:JVM 堆内存溢出后,其他线程是否可继续工作?
    Docker 容器化应用
    Python Click 学习笔记
    MySQL优化(7):其他注意事项
    MySQL优化(6):分表和读写分离
    MySQL优化(5):分区
  • 原文地址:https://www.cnblogs.com/xiaqiuchu/p/11568269.html
Copyright © 2020-2023  润新知