控制台 |  English
写几行代码,就可以控制的智能设备!
成熟的设计方案与标准的生产流程,为开发者提供稳定可靠的产品与服务,专注业务开发;
丰富的产品系列与完善的设备功能,为客户降低设备自研时间与技术风险,节省项目成本。
 ●○○
Java
C
Python
Go
Node
C#
Php
MemoryPersistence persistence = new MemoryPersistence();
MqttConnectOptions connOpts = new MqttConnectOptions();
MqttClient client = new MqttClient(broker, clientId, persistence);
client.connect(connOpts);
MqttMessage message = new MqttMessage(content.getBytes());
message.setQos(qos);
client.publish(pub_topic, message);
System.out.println('Message published');
client.subscribe(sub_topic, qos);
System.out.println('Subscribed to topic: ' + sub_topic);
System.out.println('Subscribed to message: ' + message);
void publish(MQTTClient client, char *topic, char *payload) {
MQTTClient_message message = MQTTClient_message_initializer;
message.payload = payload;
message.payloadlen = strlen(payload);
message.qos = QOS;
message.retained = 0;
MQTTClient_deliveryToken token;
MQTTClient_publishMessage(client, topic, &message, &token);
MQTTClient_waitForCompletion(client, token, TIMEOUT);
printf('Send `%s` to topic `%s` ', payload, PUB_TOPIC);
}
def publish(client):
    msg_count = 0
    while not FLAG_EXIT:
        msg_dict = {
            'type': 'info'
        }
        msg = json.dumps(msg_dict)
        if not client.is_connected():
            logging.error('publish: MQTT client is not connected!')
            time.sleep(1)
            continue
        result = client.publish(PUB_TOPIC, msg)
        status = result[0]
        if status == 0:
            print(f'Send `{msg}` to topic `{PUB_TOPIC}`')
        else:
            print(f'Failed to send message to topic {PUB_TOPIC}')
        msg_count += 1
        time.sleep(1)
func publish(client mqtt.Client) {
qos := 0
msgCount := 0
for {
payload := `{'type':'info'}`
if token := client.Publish(pub_topic, byte(qos), false, payload); token.Wait() && token.Error() != nil {
fmt.Printf('publish failed, topic: %s, payload: %s', pub_topic, payload)
} else {
fmt.Printf('publish success, topic: %s, payload: %s', pub_topic, payload)
}
msgCount++
time.Sleep(time.Second * 1)
}
}
client.on('connect', () => {
console.log(`${protocol}: Connected`)
client.subscribe(sub_topic, { qos }, (error) => {
if (error) {
console.log('subscribe error:', error)
return
}
console.log(`${protocol}: Subscribe to topic '${sub_topic}'`)
client.publish(pub_topic, payload, { qos }, (error) => {
if (error) {
console.error(error)
}
})
})
})
static void Publish(MqttClient client, string topic)
{
int msg_count = 0;
while (true)
{
System.Threading.Thread.Sleep(1*1000);
string msg = '{'type':'info'}';
client.Publish(topic, System.Text.Encoding.UTF8.GetBytes(msg));
Console.WriteLine('Send `{0}` to topic `{1}`', msg, topic);
msg_count++;
}
}
$payload = array(
'type' => 'info'
);
$jsonp = json_encode($payload);
$mqtt->publish(
$jsonp,
0,
true
);
printf('msg send $jsonp to $pub_topic');
$mqtt->subscribe($sub_topic, function ($topic, $message) {
printf('Received message on topic [%s]: %s', $topic, $message);
}, 0);
更多MQTT示例代码,请参考 最佳实践
专注为软件开发者
提供好用的物联网智能设备
2022年,由武汉理工大学计算机与人工智能学院,组建了智能设备开发与软件开发团队,
经过近两年的探索与优化,推出了GeekOpen™ 商用系列智能设备,
截至2023年底,设备已安装服务于500+商用项目,覆盖全球10+国家与地区!




设备全面开放功能
GeekOpen™ 毫无保留的开放设备所有功能,由软件开发者创作满足更多物联网场景下的应用,释放更多物联网能力。




设备统一通信协议
针对不同芯片的设计方案,GeekOpen™ 通过大量的努力,仍使其形成统一的通信协议,全部支持MQTT与TCP协议。




设备多版本全球适配
每一款设备,GeekOpen™ 会根据全球不同地区规范与要求,单独设计适配的版本,并设计对应的模具进行装配再生产。




设备支持OEM/ODM
采购设备每批次达到1000个时,可以按照客户的要求OEM,需要ODM的客户,请与GeekOpen™联系进行详细需求沟通。
设备支持 WiFi 或 4G 全网通,连接网络服务
GeekOpen™ 设备WiFi良好通信范围一般为10-50米,可连接客户本地或云端的服务;
4G网络支持移动、电信、联通三网通,适用于设备分布距离较大或不适宜网络施工的现场,仅能连接客户云端的服务。
WiFi连接:
使用WiFi智能设备,用户可以将服务器部署在本地局域网或云端。设备使用MQTT协议通过订阅或发布实现与服务器数据交换,或使用TCP协议通过监听实现与服务器数据交换,适用于设备部署集中的场景。
4G全网通连接:
使用4G版智能设备,用户仅能将服务器部署在云端。设备使用MQTT协议通过订阅或发布实现与服务器数据交换,或使用TCP协议通过监听实现与服务器数据交换,适用于设备部署较分散的场景。
使用 MQTT 或 TCP 协议,保持设备通信
支持客户自建MQTT服务,基于消息队列发布或订阅设备消息,用于控制设备或采集设备数据。
客户也可以设置设备连接 TCP Server服务,适用于传统设备通信,例如使用Netty创建TCP Server或直接使用上位机连接设备。
我们列举了以下三种常用的设备组网通信方式,供客户项目参考。
基于MQTT服务器通信:
通过标准的 MQTT 协议,以可靠、高效、安全的方式,接入GeekOpen™ 智能设备,开启您的物联网业务。
基于TCP服务器通信:
客户自定义TCPServer,使用 TCP 协议接入设备,可直接使用原有的网络与其它设备并行,实现应用扩展。
基于上位机通信:
客户还可以配置 GeekOpen™ 智能设备TCP服务上位机,通过组态工具,直接采集数据并控制设备。
稳定的基础功能,自由实现业务开发
GeekOpen™ 已将复杂的硬件指令,重新封装为软件消息并采用标准的json格式,
设备连接MQTT服务后,通过简单的消息发布或订阅,实现数据采集与控制。
无论是前后端开发者,都可以快速接管设备,实现个性应用开发。


通断电控制
MQTT发布topic消息,或TCP Server向Client 发送消息
发送 json 消息(通电)
{
  "type":"event",
  "key":1
}
返回 json 消息
{
  "type":"Socket-mini",
  "key":1,
  "wifiLock":0,
  "keyLock":0,
  "ip":"192.168.0.101"
}


用电查询
查询实时电压、电流、累计用电量,用于对设备负载及用电过程监控
发送json消息
{
  "type":"statistic"
}
返回 json 消息
{
   "voltage": 226.024,
   "current": 15.027,
   "power": 2921.511,
   "energy": 25.047
}


WiFi配网锁
用于锁定设备WiFi信息,不会被现场人员误操作,保障WiFi信息正确
发送json消息
{
  "type":"setting",
  "wifiLock":1
}
返回 json 消息
{
  "type":"Socket-mini",
  "key":1,
  "wifiLock":1,
  "keyLock":0,
  "ip":"192.168.0.101"
}


功能按键锁
用于锁定设备功能按键,防止现场人员长按重置设备
发送json消息
{
  "type":"setting",
  "keyLock":1
}
返回 json 消息
{
  "type":"Socket-mini",
  "key":1,
  "wifiLock":1,
  "keyLock":1,
  "ip":"192.168.0.101"
}


状态查询
设备当前工作状态,包括MAC地址、WiFi名称等信息
发送json消息
{
  "type":"info"
}
返回 json 消息
{
  "mac":"Socket-mini",
  "type":"Socket-mini",
  "version":"2.0.0",
  "key":1,
  "wifiLock":1,
  "keyLock":1,
  "ip":"192.168.0.101",
  "ssid":"open-wifi"
}
支持全球开发者,提供 AC100v-250v 宽电压设备
适用于多场景,自由组合全面掌控,轻易开发软件控制GeekOpen™智能硬件,
JSON数据传输,响应速度小于50毫秒,支持多语言开发
美规适配
中国台湾、美国、加拿大-美洲、墨西哥-美洲、日本-亚洲、巴西-美洲、菲律宾-亚洲、泰国-亚洲、黎巴嫩-亚洲、委内瑞拉-美洲、巴拿马-美洲、哥伦比亚-美洲、厄瓜多尔-美洲、老挝-亚洲等
澳规适配
中国大陆、澳大利亚-大洋洲、新西兰-大洋洲、斐济-大洋洲、挪威-欧洲、土耳其-亚洲/欧洲、伊朗-亚洲、以色列-亚洲、约旦-亚洲、科威特-亚洲、阿根廷-美洲等
英规适配
中国香港、中国澳门、英国-欧洲、印度-亚洲、巴基斯坦-亚洲、新加坡-亚洲、马来西亚-亚洲、越南-亚洲、津巴布韦-非洲、印度尼西亚-亚洲、马尔代夫-亚洲、卡塔尔-亚洲、阿拉伯-亚洲等
软件开发者 • 专属智能硬件
GeekOpen™ 设备全部是通过安全认证的成品,有着严格的生产流程与测试要求,并开放设备所有功能。
软件工程师可全面掌控设备,支持连接到客户自建MQTT或TCP服务,支持本地组网、云端组网,
所有设备已在大量的项目实战中得到软件开发者验证,设备安全稳定可靠。
GeekOpen™
以开发者为核心,助力技术落地
地址:湖北省武汉市高新大道光谷崇文中心B1栋1401   查看地图    电话:027-65523808  鄂ICP备2022014353号
Copyright © 2022-2023 GeekSmart. All Rights Reserved. 理工智控(武汉)科技有限公司   版权所有