mlbo · 2020年03月31日

Arduino通讯篇

作者:iotsharer
首发:Arduino通讯篇

一、Arduino与蓝牙通讯

1、DIY智能温湿度计(上)——数据获取
2、DIY智能温湿度计(下)——APP控制温湿度计
3、蓝牙串口助手使用
4、DIY智能温湿度计之升级篇

二、Arduino与Esp8266(WiFi模块)

1、Esp8266相关知识

(一)、基础篇

  1. ESP8266开发之旅 基础篇① 走进ESP8266的世界
  2. ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境
  3. ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明
  4. ESP8266开发之旅 基础篇④ ESP8266与EEPROM
  5. ESP8266开发之旅 基础篇⑤ ESP8266 SPI通信和I2C通信
  6. ESP8266开发之旅 基础篇⑥ Ticker——ESP8266定时库

(二)、网络篇

  1. ESP8266开发之旅 网络篇① 认识一下Arduino Core For ESP8266
  2. ESP8266开发之旅 网络篇② ESP8266 工作模式与ESP8266WiFi库
  3. ESP8266开发之旅 网络篇③ Soft-AP——ESP8266WiFiAP库的使用
  4. ESP8266开发之旅 网络篇④ Station——ESP8266WiFiSTA库的使用
  5. ESP8266开发之旅 网络篇⑤ Scan WiFi——ESP8266WiFiScan库的使用
  6. ESP8266开发之旅 网络篇⑥ ESP8266WiFiGeneric——基础库
  7. ESP8266开发之旅 网络篇⑦ TCP Server & TCP Client
  8. ESP8266开发之旅 网络篇⑧ SmartConfig——一键配网
  9. ESP8266开发之旅 网络篇⑨ HttpClient——ESP8266HTTPClient库的使用
  10. ESP8266开发之旅 网络篇⑩ UDP服务
  11. ESP8266开发之旅 网络篇⑪ WebServer——ESP8266WebServer库的使用
  12. ESP8266开发之旅 网络篇⑫ 域名服务——ESP8266mDNS库
  13. ESP8266开发之旅 网络篇⑬ SPIFFS——ESP8266 Flash文件系统
  14. ESP8266开发之旅 网络篇⑭ web配网
  15. ESP8266开发之旅 网络篇⑮ 真正的域名服务——DNSServer

(三)、应用篇

  1. ESP8266开发之旅 应用篇① 局域网应用 ——炫酷RGB彩灯
  2. ESP8266开发之旅 应用篇② OLED显示天气屏
  3. ESP8266开发之旅 应用篇③ 简易版WiFi小车

(四)、高级篇

  1. ESP8266开发之旅 进阶篇① 代码优化 —— ESP8266内存管理
  2. ESP8266开发之旅 进阶篇② 闲聊Arduino IDE For ESP8266配置
  3. ESP8266开发之旅 进阶篇③ 闲聊 ESP8266 Flash
  4. ESP8266开发之旅 进阶篇④ 常见问题 —— 解决困扰
  5. ESP8266开发之旅 进阶篇⑤ 代码规范 —— 像写文章一样优美
  6. ESP8266开发之旅 进阶篇⑥ ESP-specific APIs说明

2、Esp8266接入常见物联网平台

(1) 贝壳物联
——贝壳物联平台通讯协议
——Arduino通过ESP8266连接贝壳物联服务,实现远程控制LED灯亮灭,并将结果反馈至控制界面。

(2)乐为物联
——乐联网-乐为物联开放平台-物联网云服务运营专家

(3)OneNet
——OneNET-开发者文档

三、Arduino与Sim900A(短信模块)

1、视频教程:
基于arduino的 GSM模块SIM900A发送短信
2、如何使用Arduino和SIM900A将数据发送到Web服务器
3、相关资料
SIM900A各功能指令详细版
4、相关代码
(1)sim900a发送短信

#include <Arduino.h>
int i;
void setup() {
  Serial.begin(115200);
  i = 0;//终止循环
}
void loop() {
  if (i == 0) {
    SendMessage();
    i =2;
  }
  delay(15 * 1000);
}
void SendMessage() {
  Serial.read();
  Serial.println("AT");
  delay(1000);
  Serial.println("AT+CMGF=1");//设置短信模式为TEXT。
  delay(2000);
  Serial.println("AT+CSGA=\"+861380****500\"");//****为当地长途区号
  delay(2000);
  Serial.println("AT+CMGS=\"***********\"");//  AT指令 +电话号码
  delay(2000);
  Serial.println("ABC"); //  短信的内容
  delay(1000);
  Serial.write(0x1A);//16进制1A
  delay(1000);
}

(2)sim900a接收短信

#include <Arduino.h>
#include <String.h>
void setup()
{
  Serial.begin(9600);
  Scan_Message();
}

void loop() {
  Read_Message();
}

void Read_Message() {
  String inString = "";
  while (Serial.available() > 0) {
    char inChar = Serial.read();
    inString += (char)inChar;
    delay(2);
  }
  if (inString != "") //如果接收到字符不为空
  {
      //判断收到的短信里是否有"massage"
    if (inString.indexOf( "massage") != -1) { 
      //这里可以添加控制语句
    }
    Serial.println(inString); 
  }
}

void Scan_Message() {
  Serial.println("AT+CMGF=1\r\n");//设置短信模式为TEXT。
  Serial.println("AT+CMGR=1\r\n");//读取第一条短信
  // Serial.println("AT+CMGD=1\r\n");//删除第一条短信
  delay(38);
}

相关阅读

定期更新,更多AIoT相关技术知识请关注动手学AIoT专栏。
推荐阅读
关注数
1211
内容数
19
关于AIoT相关的技术文章以及相关资源。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息