void loop() {//主循环 String msg = "";//用于存放 reconnect();//确保连上服务器,否则一直等待。 client.loop();//MUC接收数据的主循环函数。 client.setServer(mqtt_server, port);//端口号 client.setCallback(callback); //用于接收服务器接收的数据 while (Serial.available() > 0) { msg += char(Serial.read()); delay(2); } int msglen = msg.length(); if (msglen > 0) { Serial.println(msg); char msgArr[msglen+1]; msg.toCharArray(msgArr,msglen + 1); client.publish(topic_name,msgArr); } Serial.println("wake up MCP9808.... "); // wake up MCP9808 - power consumption ~200 mikro Ampere tempsensor.wake(); // wake up, ready to read! // Read and print out the temperature, also shows the resolution mode used for reading. Serial.print("Resolution in mode: "); Serial.println (tempsensor.getResolution()); float c = tempsensor.readTempC(); Serial.print("Temp: "); Serial.print(c, 4); Serial.print("*C\t"); delay(20000); Serial.println("Shutdown MCP9808.... "); tempsensor.shutdown_wake(1); // shutdown MSP9808 - power consumption ~0.1 mikro Ampere, stops temperature sampling Serial.println(""); delay(200); char temp[25]; dtostrf(c,3,3,temp); client.publish("register",MAC_char_STA); client.publish(MAC_char_STA, temp); Serial.println(MAC_char_STA);// ESP.deepSleep(20e6); }
|