做项目的时候,想做的东西比较小,一开始准备去掉时钟模块,发送假的时间给服务器
然后获取的时候直接根据数据id大小排序就可以得到最新数据
但是后来做大数据分析的时候发现没有时间不行,但是硬件上不能再多了,
于是就想干脆直接从网上抓取时间,然后和数据一起发送给服务器
灵感来自于获取天气。
访问即可直接获取时间
http://time.beijing-time.org/time.asp
一开始以为会出什么幺蛾子问题,后来发现除了时间延长之外别的还好
------------------------------------------------------------------------------------------------
6.4更新 问题还是有的,但是不是出在代码上,而是出在wifi上
用手机开热点的时候完全ok,没有什么问题
但是转到实验室wifi,就会出现卡死现象
一开始怀疑代码出错改了好久。
应该是网络问题吧,但是怎么解决呢??
------------------------------------------------------------------------------------------------
发现应该也不是网络问题,而是只能wifi重启之后第一次连接可以持续发送
第二次或者之后连接会发生卡死,(也不叫卡死,就是不发送数据了)
连热点没问题大概是因为他是热点是重启之后连接的第一个设备。
------------------------------------------------------------------------------------------------
热点没问题,一点问题都没有
String getTimeInfo()
{
String output = "";
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort))
{
Serial.println("connection failed");
return "0";
}
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(150);
String str = "";
String new_data="";
while(client.available())
{
String line = client.readStringUntil('\r');
str += line;
}
new_data = str.substring( str.indexOf("nyear")+6, str.indexOf("nmonth")-2 ) ; // get year
output+=new_data;
output+="-";
new_data = str.substring( str.indexOf("nmonth")+7, str.indexOf("nday")-2 ) ; //get month
output+=new_data;
output+="-";
new_data = str.substring( str.indexOf("nday")+5, str.indexOf("nwday")-2 ) ;
output+=new_data;
output+=" ";
new_data = str.substring( str.indexOf("nhrs")+5, str.indexOf("nmin")-2 ) ;
output+=new_data;
output+=":";
new_data = str.substring( str.indexOf("nmin")+5, str.indexOf("nsec")-2 ) ;
output+=new_data;
output+=":";
new_data = str.substring( str.indexOf("nsec")+5, str.length()-1 ) ;
output+=new_data;
//Serial.println(str);
//output=str.substring(str.indexOf("Date"),str.indexOf("GMT")) ;
return output;
}
返回值为String类型,如果要转为char *类型,使用String.c_str();即可。