IOTutility 一个轻量级的 IOT 基础操作库

IOTutility 一个轻量级的 IOT 基础操作库

Base utility for IOT devices, networking, controls etc...

IOTutility 的目的是提供一个易用的,轻量级的,能够快速使用的 IOT 编程功能库。

1. 为什么要写一个 IOT 编程库?

对于 IOT 设备而言,本身是功能比较单一,代码量也是越少越好,那么使用原生的库编程看起来应该是最好的选择。但是我在很多项目开发的初期却发现
我总是在做一些重复的编码,比如建立基础的 TCP 和 UDP 通信,设计简单的通信协议来让 IOT 设备和管理服务器之间传递数据等等。其实这些工作可以
相对完整的放在一个模块中,让我们快速的开始实施自己的想法。

2. IOTutility 具有什么功能?

目前对于 IOT 设备最主要的还是网络通信,所以 IOTutility 的主要功能是搭建网络环境和实现基本的通信协议例如 MQTT, IEC61850 等基于 TCP 的
应用层协议

3. IOTutility 有什么特点

IOTutility 是个人业余开发而来,目前仅限于功能正常,没有经过大规模测试,那么唯一的特点就是简单。

IOTutility 实现了哪些功能

目前只实现了基础的 UDP 和 TCP 通信,多线程和基础信号量,以及部分 MQTT 协议。

MQTT protocol implement MQTT 实现

app 目录中包含了一个 MQTT client 的实现,要实现一次 MQTT 通信,只需要以下几个步骤:

1. 创建一个 MQTT_Session

MQTT_Session* Session = MQTT_SessionCreate("198.41.30.241", 1883);

以上是创建一个到 iot.eclipse.org 的 MQTT 通信

2. 连接到服务器

Session->Connect(Session);

直接调用 Connect 接口,连接到创建的服务器地址

3. 订阅感兴趣的主题

Session->Subscribe(Session, "wuhan/#");

这样会订阅所有传递到 iot.eclipse.org 服务器以 wuhan/ 开头的所有消息,如果要处理这些消息,需要调用 Fetch 接口:

Session->Fetch(Session, topic_and_message);

4. 可以通过 Publish 接口直接上传消息给服务器

Session->Publish(Session, "wuhan/test", "hello", 5);

如何使用

1. 下载代码

git clone https://github.com/ruiers/IOTutility.git

2. 编译代码库

cd IOTutility
make

3. 编译示例程序并执行

make mqtt_client.bin
./mqtt_client.bin 

4. 输出示例

android@ubuntumysqlserver:~/share/github/IOTutility$ ./mqtt_client.bin 
a
topic     10:wuhan/test
message    5:hello
a
topic     10:wuhan/test
message    5:hello
z

按下 ‘a’ 发送一个消息到服务器,按下 ‘z’ 退出程序。 消息发送到 iot.eclipse.org, 我们的接收线程接收后会打印出消息的
主题和消息信息。

posted @ 2018-09-17 14:56  地球人在武汉  阅读(981)  评论(0编辑  收藏  举报