IOTutility 一个轻量级的 IOT 基础操作库
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, 我们的接收线程接收后会打印出消息的
主题和消息信息。