首先感谢

  原文作者: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(, );     // Serial RX, TX
boolean bState, bOldState;
int incomingByte = ; // for incoming serial data void setup() {
// put your setup code here, to run once:
// Open serial communications and wait for port to open
pinMode(, OUTPUT);
Serial.begin();
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
} Serial.println("Good Morning, my old friend!"); SIM800C.begin();
SIM800C.println("AT+CMGF=1"); } void loop() {
// put your main code here, to run repeatedly:
if (SIM800C.available()) {
Serial.write(SIM800C.read());
digitalWrite(, 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 (检查信号,手机卡是否正确安装使用)

Arduino Nano与SIM800C 通信的更多相关文章

  1. 使用Arduino Nano驱动Lora模块

    使用Arduino Nano驱动Lora模块 为什么选用Lora 射频通信芯片有很多种,但是一般在同样功耗下,距离没有Lora远;同等范围下,没有Lora节能. Lora通信只适用于低速率,高延时的场 ...

  2. Arduino Nano + WIZ550io = 简易上网

    我爱Arduino Nano – 这是一个非常好外形小巧却功能齐全的Arduino Uno.然而.当我去将它连接到互联网,全部的干净利落小巧也消失在大尺寸的以太网盾底下了. 只是,我近期发现了一个更好 ...

  3. Arduino Nano 读取ADS1100实例

    利用Arduino Nano的wire库可以很方便对ADS1100进行设置和读取转换后的数据. /* * Arduino reads ADS1100 I2C 16bit diff ADC */ /* ...

  4. Arduino nano的bootloader文件烧录

    1.买了了nano还没用就用 avrisp烧录器给烧了其他程序,仅仅是的avr单片机了:2.将他恢复成Arduino nano吧. 在Arduino软件安装目录中的hardware\arduino中. ...

  5. Arduino蓝牙模块实现通信

    蓝牙参数特点 1.蓝牙核心模块使用HC-06从模块,引出接口包括VCC,GND,TXD,RXD,预留LED状态输出脚,单片机可通过该脚状态判断蓝牙是否已经连接 2.led指示蓝牙连接状态,闪烁表示没有 ...

  6. Edison与Arduino通过USB对接通信

    虽然Edison本身就装在一块Arduino扩展板上,但当要接的传感器太多了的时候一个扩展板也不够用了.因此需要再用一Arduino板扩展功能.而两者需要通信才能达到一个整体的效果,因此这里介绍如何用 ...

  7. PMS5003ST+Arduino Nano OLED屏显示

    整合OLED显示和PMS5003报数 #include <Arduino.h> #include <pms.h> /////////////////////////////// ...

  8. Arduino学习笔记⑧ 红外通信

    1.前言     红外通信是一种利用红外光编码进行数据传输的无线通信方式,在目前来说是使用非常广泛的.生活中常见电视遥控器,空调遥控器,DVD遥控器(现在估计是老古董了),均使用红外线遥控.使用红外线 ...

  9. 使用C#应用程序与Arduino开发板进行通信

    在本文中,我们将一个Arduino Pro Mini开发板连接到PC,并且使用C# Windows应用程序与其进行通信. 将硬件连接到PC是非常有利的,不仅是因为你可以发送命令以及监控状态,还可以实时 ...

随机推荐

  1. Kafka Eagle 安装

    Kafka Eagle 是一款开源的 Kafka 集群监控系统. 一.下载 https://download.kafka-eagle.org/ 二.安装 # 解压 .tar.gz -C /opt/ / ...

  2. springboot发送邮件,以及携带邮件附件简单使用

    可以通过springboot官方文档中Sending Email,找到类似如下java mail的使用文档 https://docs.spring.io/spring/docs/5.1.9.RELEA ...

  3. POJ3009-Curling 2.0(WA)

    POJ3009-Curling 2.0 题意: 要求把一个冰壶从起点“2”用最少的步数移动到终点“3” 其中0为移动区域,1为石头区域,冰壶一旦想着某个方向运动就不会停止,也不会改变方向(想想冰壶在冰 ...

  4. jeecg中的datagrid显示一条记录为橙色表示完结

    效果如图: 1.操作小结后面的已完结js $(document).ready(function(){ $('.datagrid-toolbar').children("span") ...

  5. something about gdb

    1 gdb 基础命令 b(break):    添加断点 r(run):  重头开始运行程序 n(next): 下一步 c(continue):  程序继续运行,直到下一处断点,或者程序运行到结束 q ...

  6. 从a-zA-Z0-9特殊字符中生成指定数量的随机字符密码的多层for循环跳出

    师从‘百测’besttest 今日牛老师布置了一个作业,生成一个随机密码,且要包含大写字母.小写字母.数字和特殊字符,且不能重复. 想着先生成密码,然后用各字符去检查是否存在,使用for嵌套循环. i ...

  7. Leetcode之动态规划(DP)专题-714. 买卖股票的最佳时机含手续费(Best Time to Buy and Sell Stock with Transaction Fee)

    Leetcode之动态规划(DP)专题-714. 买卖股票的最佳时机含手续费(Best Time to Buy and Sell Stock with Transaction Fee) 股票问题: 1 ...

  8. JAVA上传文件到数据库

    前端代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> &l ...

  9. Sql 备忘——行号

    SELECT row_number() over(order by Product.ID) as [row_number]

  10. SpringCloud学习(七)高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)

    上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用 准备工作 ...