现有的app 是一个例子 可以直接使用 使用方式是 准备zigbee(cc2530) 模块至少2 个 按照最开始的例子连接好
然后启动桥接层 配置好 json 信息为如下 :其中 panid 是我们 api 回调的默认值
可以通过重写 抽象方法 GeeJoansCallBack 返回 String controlPanid() 方法修改要控制的目标
{"mqttHost": "iotgeek.top", "Host": "http://iotgeek.top:8088", "port": "/dev/ttyUSB1", "baudrate": 115200,"panid":"6a49c5bf6a1ba8a72e79ffcc5e718367"}
*注意其他串口信息 Host NoAPI 的是 http://iotgeek.top:8088 ,另一和是 http://iotgeek.top:8080/API
然后 运行 桥接层, 打开app 就可以进行 简单的操作了
可以实时获取数据,前提是 有数据的情况下,可以控制 zigbee 的 len1
数据我只举了3个例子 分别是 1235 的 1,2,3 的 id 分别是 温度湿度 烟雾
修改java 版的 GeeJoans
目前 存在 两个版本的 桥接层 ,Bridge 和 BridgeNoAPI 这个是 因为 平台有两个 一个是SimpleIoT(NoAPI) 一个 是GeeJoans (有API)
仅仅是接口功能不同而已,所以这里只用 NoAPI 测试
目录结构: com.wujehy.GeeJoans.* 是 GeeJoans 的工具包。
com.wujehy.geejoanstest.* 是该软件的项目主体 所以只要看这一部分
其他界面的不用 更具自己的情况编写,这里使用简单的模板制作,所以不是很完美
主要工作:
1. 创建 GeeJoans 实例 位于GeeJoansDemo
//配置信息
private String objPanid="d70ca2696f21db8b301caf311a8e8f5a";
private String panid = "578aea14857ee64bba27e823e9d93dac";
private String host = "http://iotgeek.top:8088";
private String mqttHost = "iotgeek.top";
private int mqttProt = 1883;
// 这里 类型可以是 BridgeNoAPI 和 Bridge
//更具自己的情况选择 Bridge 有配套后台但无源码
// BridgeNoAPI 有源码 但没有后台
private static BridgeNoAPI bridge;
//api 是配置 类似 java 的 回调用 具体配置在 主类
public void setApi(GeeJoansCallBack api){
bridge.setAPI(api);
}
public String getPanid() {
return panid;
}
public String getObjPanid() {
return objPanid;
}
public GeeJoansDemo() {
if (bridge == null) {
this.bridge = new BridgeNoAPI();
bridge.init(panid, host, mqttHost, mqttProt);
bridge.setAPI(new GeeJoansCallBack() {
@Override
public String controlPanid() {
return super.controlPanid();
}
});
}
}
2. 主要的是 MainActivity 里面的配置
具体代码 看源码即可,主要思路 bridge 有 GeeJoansDemo 创建 MainActivity 只是 应用GeeJoansDemo 的 而已 配置都在 GeeJoansDemo 进行
执行动作使用 bridge 的 公共方法 调用,其中主要有 控制 上传 数据信息 等 具体可以看源码
3. 然后主要是 设置监听 和 api 的使用
设置 监听是 动作执行后 回调的方法
/**
* 这里可以 修改抽象类的 动作
*/
private void setApi() {
geeJoansDemo.setApi(new GeeJoansCallBack() {
// 凡是请求 后都会进入这里 RESPONSE_TYPE_GETDATA 是 获取信息的请求
// 当谈 还有其他请求 输入 RESPONSE_TYPExx 就会提示
// type 是请求的类型 data 是请求后的 json 数据
// 确定请求后可以 进行对于的解析
// 我这里的是 更新数据
@Override
public void ResponseData(String type, String data) {
super.ResponseData(type, data);
// 如果 请求是 getDate 则 将他的数据 用弹窗 战士出来
if (type.equals(RESPONSE_TYPE_GETDATA)) {
// 同时 将数据村到 全局表 给 第二个界面显示
Toast.makeText(MainActivity.this, data, Toast.LENGTH_SHORT).show();
JsonObject returnData = new JsonParser().parse(data).getAsJsonObject();
String data1;
SensorData = data;
try {
data1 = returnData.getAsJsonObject("data").getAsJsonObject("id_0x1235:1").get("value").getAsString();
sensor1.setValue(data1);
} catch (Exception e) {
e.printStackTrace();
}
try {
data1 = returnData.getAsJsonObject("data").getAsJsonObject("id_0x1235:2").get("value").getAsString();
sensor2.setValue(data1);
} catch (Exception e) {
e.printStackTrace();
}
try {
data1 = returnData.getAsJsonObject("data").getAsJsonObject("id_0x1235:3").get("value").getAsString();
sensor3.setValue(data1);
} catch (Exception e) {
e.printStackTrace();
}
sensorDataAdapter.notifyDataSetChanged();
}
}
});
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。