使用nodemcu玩转物联网系列(三):nodemcu连接onenet服务器

两个步骤:
1、建立客户端
mqtt.Client(clientid, keepalive[, username, password, cleansession, max_message_length])
该方法返回一个客户端对象。
2、连接服务器
客户端对象:connect(host[, port[, secure]][, function(client)[, function(client, reason)]])

gpio.mode(2,gpio.OUTPUT)
wifi.setmode(wifi.STATION)
cfg = {}
cfg.ssid = "kyn"
cfg.pwd = "20160118"
wifi.sta.config(cfg)
wifi.sta.connect()

--牛逼的三元组
--mqtt.Client(clientid, keepalive[, username, password, cleansession, max_message_length])      注意该函数,返回一个对象。这个对象再调用方法进行连接。
--设备ID,这个用作客户端的 clientid
DeviceId = "587667371"
--产品ID,这个用作客户端的 username
ProductId = "325428"
--鉴权信息,这个用作客户端的 password
AuthoInfo = "test"
host = "183.230.40.39"
--端口不用加引号的
port = 6002

timer = tmr.create()
function con()
    if wifi.sta.getip() == nil then
        print("coneting........")
    else
        timer:stop()
        print("success!~")
        gpio.write(2,gpio.HIGH)
        print(wifi.sta.getip())

        client_hum = mqtt.Client(DeviceId,120,ProductId,AuthoInfo)
        client_hum:connect(host,port,0,function(client)
        print("connect success!")
        end)
    end
end

timer:alarm(1000,tmr.ALARM_AUTO,con)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
连接OneNet的MQTT服务器,需要使用ESP8266 NodeMCU的MQTT客户端库。以下是连接OneNet MQTT服务器的基本步骤: 1. 在OneNet平台上创建设备和数据流,获取设备ID和API密钥。 2. 下载和安装ESP8266 NodeMCU的MQTT客户端库,例如PubSubClient库。 3. 编写Arduino代码,连接OneNet MQTT服务器并订阅数据流。 4. 发布数据到OneNet MQTT服务器。 以下是一个基本的示例代码,可用于连接OneNet MQTT服务器: ``` #include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* server = "mqtt.heclouds.com"; const int port = 6002; const char* device_id = "your_DEVICE_ID"; const char* api_key = "your_API_KEY"; WiFiClient espClient; PubSubClient client(espClient); void setup() { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(9600); delay(10); client.setServer(server, port); client.setCallback(callback); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); if (!client.connected()) { reconnect(); } client.subscribe("/" + String(device_id) + "/datastreams/your_datastream_id"); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); } void reconnect() { while (!client.connected()) { Serial.print("Attempting MQTT connection..."); if (client.connect(device_id, api_key, "")) { Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); delay(5000); } } } ``` 请注意,您需要替换代码中的“your_SSID”和“your_PASSWORD”为您的Wi-Fi网络名称和密码,以及“your_DEVICE_ID”和“your_API_KEY”为您在OneNet平台上创建的设备ID和API密钥。您还需要将“your_datastream_id”替换为您要订阅的数据流ID。 一旦您上传了代码,ESP8266 NodeMCU连接OneNet MQTT服务器,并订阅您指定的数据流。您可以使用OneNet平台上的数据模拟器向数据流发布数据,并通过串行监视器查看ESP8266 NodeMCU接收到的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值