Serial.println()里用和不用F()的区别

#include <TinyGPSPlus.h> /* This sample sketch should be the first you try out when you are testing a TinyGPSPlus (TinyGPSPlus) installation. In normal use, you feed TinyGPSPlus objects characters from a serial NMEA GPS device, but this example uses static strings for simplicity. */ // A sample NMEA stream. const char *gpsStream = "$GPRMC,045103.000,A,3014.1984,N,09749.2872,W,0.67,161.46,030913,,,A*7C\r\n" "$GPGGA,045104.000,3014.1985,N,09749.2873,W,1,09,1.2,211.6,M,-22.5,M,,0000*62\r\n" "$GPRMC,045200.000,A,3014.3820,N,09748.9514,W,36.88,65.02,030913,,,A*77\r\n" "$GPGGA,045201.000,3014.3864,N,09748.9411,W,1,10,1.2,200.8,M,-22.5,M,,0000*6C\r\n" "$GPRMC,045251.000,A,3014.4275,N,09749.0626,W,0.51,217.94,030913,,,A*7D\r\n" "$GPGGA,045252.000,3014.4273,N,09749.0628,W,1,09,1.3,206.9,M,-22.5,M,,0000*6F\r\n"; // The TinyGPSPlus object TinyGPSPlus gps; void setup() { Serial.begin(115200); Serial.println(F("BasicExample.ino")); Serial.println(F("Basic demonstration of TinyGPSPlus (no device needed)")); Serial.print(F("Testing TinyGPSPlus library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); Serial.println(F("by Mikal Hart")); Serial.println(); while (*gpsStream) if (gps.encode(*gpsStream++)) displayInfo(); Serial.println(); Serial.println(F("Done.")); } void loop() { } void displayInfo() { Serial.print(F("Location: ")); if (gps.location.isValid()) { Serial.print(gps.location.lat(), 6); Serial.print(F(",")); Serial.print(gps.location.lng(), 6); } else { Serial.print(F("INVALID")); } Serial.print(F(" Date/Time: ")); if (gps.date.isValid()) { Serial.print(gps.date.month()); Serial.print(F("/")); Serial.print(gps.date.day()); Serial.print(F("/")); Serial.print(gps.date.year()); } else { Serial.print(F("INVALID")); } Serial.print(F(" ")); if (gps.time.isValid()) { if (gps.time.hour() < 10) Serial.print(F("0")); Serial.print(gps.time.hour()); Serial.print(F(":")); if (gps.time.minute() < 10) Serial.print(F("0")); Serial.print(gps.time.minute()); Serial.print(F(":")); if (gps.time.second() < 10) Serial.print(F("0")); Serial.print(gps.time.second()); Serial.print(F(".")); if (gps.time.centisecond() < 10) Serial.print(F("0")); Serial.print(gps.time.centisecond()); } else { Serial.print(F("INVALID")); } Serial.println(); }给以上代码写中文注释
06-03
#define sensorpin 34 #define DHTPIN 2 #include <BH1750.h> BH1750 lightMeter; #include <Wire.h> #include <DHT.h> DHT dht(DHTPIN, DHT11); #include<WiFi.h> #include<PubSubClient.h> char* ssid ="17group";//此处需要改成你的wifi名称 const char*password =  "hhj20011019";  //你的wifi密码 //以下四行参数勿动 const char*mqttServer = "39.106.6.44"; const int mqttPort =1886; const char*mqttUser = "iotlab"; const char*mqttPassword = "iot20121013"; WiFiClient espClient; PubSubClient client(espClient); char msg[50]; //用于存储向外发送的消息 //回调函数,topic是主题,payload就是收到的信息 void callback(char*topic, byte* payload, unsigned int length) {   Serial.print("Messagearrived in topic: ");   Serial.println(topic);   Serial.print("Message:");   for (int i = 0; i< length; i++) {     Serial.print((char)payload[i]);   }   Serial.println();   Serial.println("-----------------------"); } void setup() {   Serial.begin(115200);   WiFi.begin(ssid,password);   while (WiFi.status()!= WL_CONNECTED) {     delay(500);     Serial.println("Connectingto WiFi..");   }   Serial.println("Connectedto the WiFi network");   client.setServer(mqttServer,mqttPort);   client.setCallback(callback);   while (!client.connected()){     Serial.println("Connectingto MQTT...");     //请将cs202112345后面的数字替换成自己的学号     if (client.connect("cs225150340",mqttUser, mqttPassword )) {       Serial.println("connected");     }else {       Serial.print("failedwith state ");       Serial.print(client.state());       delay(2000);     }   }   client.subscribe("sub225150340");//请将后面的数字替换成自己的学号   {   Serial.begin(115200);   // Initialize the I2C bus (BH1750 library doesn't do this automatically)   Wire.begin();   // On esp8266 you can select SCL and SDA pins using Wire.begin(D4, D3);   // For Wemos / Lolin D1 Mini Pro and the Ambient Light shield use   // Wire.begin(D2, D1);   lightMeter.begin();   } } void loop() {   client.loop();//此句为循环监测是否有消息过来,勿删   //以下是发送一组数据的例子,实际场景替换成读取的传感器数值   float hum = dht.readHumidity();   float temp = dht.readTemperature();   float lux = lightMeter.readLightLevel();   int soilhum  =analogRead(sensorpin); snprintf(msg,50,"%.2f,%.2f,%.1f,%d",hum,temp,lux,soildhum); Serial.println(msg); //这行只是为了调试用 client.publish("pub225150430", msg); //请将后面的数字替换成自己的学号 delay(1000); } 如何接收 #define sensorpin 34 int svalue; void setup(){ Serial.begin(9600); } void loop(){ svalue=analogRead(sensorpin); Serial.println(svalue); delay(1000); } 上的数据
05-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuechanba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值