OBLOQ 物联网模块

OBLOQ模块是DFRobot公司开发的一款基于ESP8266芯片的物联网通信模块。模块使用串口(TTL UART)和Arduino(或者其他单片机)通信,支持MQTT,HTTP等协议,可以很方便的访问互联网,快速搭建物联网项目。

技术规格

  • 供电电压:3.3~5.0V
  • 工作电流:<240mA
  • 接口类型:Gravity UART 4PIN
  • 接口速率:9600
  • 无线模式:IEEE802.11b/g/n
  • 加密类型:WPA WPA2/WPA2–PSK
  • 无线频率:2.4GHz(不要连接5G Wi-Fi)
  • 产品尺寸:35mm * 32mm / 1.38inch * 1.26inch
  • 内置协议:TCP/IP 协议栈

引脚定义

引脚编号 引脚名 作用
1 TX 串口发送
2 RX 串口接收
3 GND 电源地
4 Vcc 电源正

ESP8266是乐鑫公司开发的一款带Wi-Fi功能的主控芯片,所以里面也跑有程序(或者叫固件:Firmware)。但是ESP8266的开发环境还不够普及,开发难度较大,所以通常会将ESP8266设计成一个单独的网络模块去使用(相当于作为单片机主控的无线网卡)。市面上比较流行是安信可公司的ESP8266模块,烧写了支持AT命令的固件,那么单片机主控就可以通过UART发送AT命令来控制和使用ESP8266。OBLOQ模块默认烧写了DFRobot公司自己开发的固件,其使用格式化的字符串形式的调用接口,而非AT命令。

Obloq模块如何与Arduino配合使用?

Obloq是一个物联网模块,而非主控。所以,Obloq只是充当了Arduino主控(或者其他单片机主控)的一个“助手”——帮助主控完成网络通信。那么,主控芯片以何种方式传递命令给Obloq,以及Obloq有哪些支持的命令呢?

我们通过下面一个类比来说明:

主人通过说话的方式,发出命令传达给狗子小黄,小黄听到命令后就会里面完成相应的动作。Arduino将命令字符串通过串口发送给Obloq模块,模块收到命令后,执行对应的操作。

如果主人对狗子小黄说:“跳舞”,然而主人从没有给小黄训练过跳舞,所以小黄不会有所反应,它不懂。如果Arduino通过串口给Obloq发送“I love u”,Obloq模块也不会做出任何动作,因为Obloq烧写的固件里没有这条指令,它无法识别。

Obloq命令字符串举例点击查看完整的命令表

命令字符串 命令作用
"|2|1|wifi_ssid,wifi_pwd|\r"

连接一个指定的WIFI,例如:

"|2|1|myWIFI,123456|\r"

将命令Obloq模块连接名称为myWIFI,密码为123456的WIFI

"|2|2|\r"

命令Obloq模块断开当前连接的WIFI

"|4|1|1|host|port|iotid|iotpwd|\r"

连接到一个MQTT Broker。

host是服务器的主机名或者IP地址;

port是MQTT Broker的端口;

iotid是建立MQTT连接使用的用户名;

iotpwd是建立MQTT连接使用的密码;

为了形成对比,再来看一下安信可ESP8266官方使用的AT命令

AT命令 命令作用
"AT+CWJAP=<wifi_ssid>,<wifi_pwd>\r\n"

连接一个指定的WIFI,例如:

"AT+CWJAP=\"myWIFI\",\"123456\"\r\n"

将命令ESP8266模块连接名称为myWIFI,密码为123456的WIFI。

注意双引号里面嵌套的双引号要用转意字符。

"AT+CWQAP\r\n"

断开与当前WIFI的连接

所以我们可以得出以下结论:

1、调用接口就是ESP8266固件里面预定义的命令的集合,这些命令由主控通过串口下发,有的命令执行后ESP8266还会回传执行状态给主控。当然这里的解释只限于本文涉及到的context。

2、Obloq和Arduino(或其他单片机)主控之间通过串口来作为命令和响应的传输通道。

3、模块只能识别和执行它的固件中定义的命令,不同的固件支持的命令可能不同,命令的表现形式也可能不同。

实验

Ardunio或兼容Arduino的开发板都有一颗板载的LED,通常是用pin13驱动的,Arduino核心库中的LED_BUILTIN宏定义了驱动板载LED的引脚,隔离和平台差异。本实验将通过MQTT协议来远程点亮和熄灭板载LED。

通过串口发送命令给Obloq来命令其工作依然是很繁琐的,庆幸的是DFRobot开发出了一个封装了串口命令的C++库:Obloq库。使得我们不用关心底层的串口命令,更加的方便快速的使用OBLOQ模块。

我们可以在DFRobot的官方Github页面下载Obloq模块的Arduino驱动库。只需要下载其中的Qbloq.cpp和Qbloq.h文件即可,如下图所示:

接下来安装Obloq驱动库到Arduino开发环境。步骤:在Ardiono安装目录下的【libraries】目录下新建一个文件夹【DFRobot_Obloq】(名称任意),然后将下载的Qbloq.cpp和Qbloq.h文件放进去即可。如下图:

接下来我们要去DFRobot的Easy IOT平台注册账号,注册后登录,网页右上角有注册 /登录按钮:

登录后进入工作间 :

操作步骤:

1、复制【工作间】里的iot_id和iot_pwd替换下面代码中的"bbbbbbbbb" 和  "cccccccccc" 。

2、在【工作间】添加一个设备,复制topic替换下面代码中的"aaaaaaaaa"。

3、将下面代码中的“myWIFI”和"123456"改为自己使用的WIFI名和WIFI密码。

4、连接好电路后(见下面的接线图),将代码下载到Arduino板中。

5、在【工作间】点击新建设备的【发送消息按钮】,分别发送on 和 off,观察Arduino开发板上的LED的状态。

实验接线图:

实验代码:

#include <stdint.h>
#include <Obloq.h>
#include <SoftwareSerial.h>const String topic1 = "aaaaaaaaa";             //订阅的主题,需要在【工作间】里添加一个设备后得到const String iotId = "bbbbbbbbb";              //MQTT服务器的用户名,在【工作间】里的iot_id可以查看
const String iotPwd = "cccccccccc";            //MQTT服务器的密码,在【工作间】里的iot_pwd可以查看const String wifiSSID = "myWIFI";              //obloq模块连接的WIFI名,改成你用的WIFI名,最好不要有中文
const String wifiPwd = "123456";               //obloq模块连接的WIFI密码,改成你用的WIFI密码

SoftwareSerial obloqModuleSerial(10,11);       // 创建一个软串口,用于和obloq模块进行通信:10是其RX(接Obloq的TX) ,  11是其TX(接Obloq的RX)

Obloq olq(&obloqModuleSerial,wifiSSID,wifiPwd,iotId,iotPwd);  //创建一个Obloq对象。//已监听设备的消息回调函数,可以在这个函数里面对接收的消息做判断和相应处理,需要用setMsgHandle()来设置这个回调函数
void msgHandle(const String& topic,const String& message)
{if(topic==topic1){if(message == "off")    //如果收到了关于topic1主题的"off"消息,则熄灭板载LED
        {digitalWrite(LED_BUILTIN,LOW);}else if(message == "on") //如果收到了关于topic1主题的"on"消息,则点亮板载LED
        {digitalWrite(LED_BUILTIN,HIGH);}}
}void setup(void)
{obloqModuleSerial.begin(9600);   //obloq模块的串口通信波特率是9600,所以要把软串口的波特率也设置为9600
    olq.setMsgHandle(msgHandle);//注册消息回掉函数
    olq.subscribe(topic1);    //订阅主题
pinMode(LED_BUILTIN,OUTPUT);  //配置pin 13 ,即驱动板载LED的引脚为输出模式

}void loop(void)
{olq.update();  //轮询

}

本文参考

OBLOQ模块文档

OBLOQ模块使用教程

转载于:https://www.cnblogs.com/lulipro/p/10901781.html

Obloq模块:基于ESP8266的物联网模块相关推荐

  1. 最简单DIY基于ESP8266的物联网智能小车①(webserver服务器网页简单遥控版)

    ESP8266和ESP32物联网智能小车开发系列文章目录 第一篇:最简单DIY基于ESP8266的物联网智能小车①(webserver服务器网页简单遥控版) 文章目录 ESP8266和ESP32物联网 ...

  2. 基于ESP8266的物联网智能鱼缸系统设计

    一.模块调试 1.水位模块 #include <ESP8266WiFi.h> #include <WiFiUdp.h> #include <DHT.h> const ...

  3. 计划继续深化学习物联网系统的相关知识 目前的WiFi模块基于ESP8266

    之前已经用过ESP8266,而且重新定义和写了一个通信协议,相比官方的操作来说,使用更加的简单.而且也对APP和单片机端的程序有写,虽然很简单.服务器也做了一个简单的版本,可以实现远程控制目标板的目的 ...

  4. 基于ESP8266的物联网智能插排

    事情的起因是这样的.......... 为了伺候鱼缸里的几条小孔雀鱼,每天早上我都要起来开水泵.开水草灯,晚上睡前则要关灯关水泵. PS:晚上睡觉感觉水流声还是有些吵. 作为一个理工男,这种重复性的工 ...

  5. 什么是物联网和物联网模块

    一.什么是物联网 物联网,从字面意思可以理解是"使物体能够接入网络,实现万物互联",乍一听我们对这个名 词很陌生,但其实物联网现在在我们的日常生活中处处都有,比如说智能家具.摄像头 ...

  6. 4G物联网模块的通讯原理介绍

    概述: 4G物联网模块设计小巧精致,功能强悍,也成为无线物联网模组,用户可根据自己需要选择一直在线或超低功耗的工作模式,完整成品的4G物联网模块链接传感器,可通过短信.电话.网络.微信.wed端.云平 ...

  7. 基于51单片机和物联网的智能家居系统(ESP8266物联网模块)

    前言 该智能家居系统以 STC89C52单片机为控制核心,结合 LCD1602 液晶显示屏.L298N电机驱动模块.光敏电阻,ESP8266WiFi模块,DS18B20温度计设计并实现了自动感光窗帘与 ...

  8. 乐鑫esp8266学习rtos3.0笔记第6篇:esp8266-12模块基于rtos3.1版本ota功能远程空中升级固件,官网之上增加dns域名解析!(附带demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...

  9. 超详细!简单的物联网模块esp8266接入小爱爱同学控制电器(一)——控制开关灯

    简单的物联网模块esp8266接入小爱爱同学控制电器(一)--控制开关灯 闲来无事,分享一个简单使用的物联网实现系统(小爱同学+esp8266),实现手机控制开关灯+小爱同学控制开关灯 1.准备材料: ...

最新文章

  1. C语言中static全局变量与普通的全局变量区别
  2. linux清空文件内容的几种方式与区别
  3. 力扣151. 翻转字符串里的单词
  4. 大数据技术之kafka (第 3 章 Kafka 架构深入) Kafka 事务
  5. ubuntu16.04(其他版本也可)批量修改图片名---shell编程
  6. python with关键字_python中用with关键字来实现上下文管理器.
  7. 给萌新HTML5 入门指南
  8. Vue源码学习(三)——数据双向绑定
  9. 【转】 基于C#.NET的高端智能化网络爬虫 2
  10. AppStore ipa (苹果内购)笔记
  11. [渝粤教育] 中国地质大学 高层建筑施工 复习题 (2)
  12. 开源跨平台的Fuchsia操作系统
  13. matlab 数学符号输入,matlab输入数学符号
  14. System Exception:故障解决:端口已被占用 1080--->的处理方法
  15. CIS 流程图 UML
  16. Cisco2960交换机端口安全Port-Security
  17. ubantu16.04下安装omnet5.4.1,inet3.6.4,veins4.7.1 和 sumo0.32.0
  18. 数据上采样和下采样_采样不足以配置您的ml数据
  19. 中国到底有多少个程序员?都在哪个城市写代码?
  20. 爬虫实战1:爬取糗事百科段子

热门文章

  1. 软件工程实践 Blog11
  2. 《基于深度学习的加密流量识别研究》-2022毕设笔记
  3. 深度学习双显卡配置_更新深度学习装备:双(1080Ti)显卡装机实录
  4. Mac 系统升级ssh报错
  5. C# 城市路网地图生成与运动模拟(一)-数据的获取
  6. android 6.0 大神f2,酷派大神F2刷机包 64位1080p 全高清版 MIUI8安卓6.0 插桩适配ROM 锁屏画报 极致体验...
  7. 【正点原子FPGA连载】 第三章 硬件资源详解 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0
  8. cv2.imread默认情况下读取的是彩色图片
  9. percentile函数mysql_Oracle分析函数PERCENTILE_CONT
  10. Docker在千寻位置的实践