【发布时间】:2015-06-21 22:19:15
【问题描述】:
我正在创建一个供个人使用的小应用程序,用于显示我的 Arduino 气象站的温度和湿度。我的气象站将温度和湿度上传到我的网络服务器并保存到 .txt 文件中。我希望我的应用程序从服务器中提取该数据并显示在文本区域中。
以下是有关数据如何存储在服务器上的一些有用信息: 湿度和温度存储在两个不同的 .txt 文件中。 温度档案 - Temperature 对于湿度,请将 URL 中的温度替换为湿度
用于上传数据的 PHP 文件 -
$fileContent = $var1. "%\n";
$fileStatus = file_put_contents('humidity.txt',$fileContent);
if($fileStatus != false)
{
echo "Success: Values written to server";
}
else
{
echo "Fail: Values were written to server";
}
?>
湿度 PHP 文件除了名称和文件 URL 外相同。
最后是我的 ViewController 代码:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tempLabel: UILabel!
@IBOutlet weak var humidLabel: UILabel!
@IBOutlet weak var refreshButton: UIButton!
@IBAction func buttonPressed(sender: AnyObject) {
var urlString = "http://torsher.ca/Weather/temperature.txt"
var url = NSURL(string: urlString)
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
var urlContent = (NSString(data: data, encoding: NSUTF8StringEncoding))
var contentArray = urlContent!.componentsSeparatedByString("<span class=\"phrase\">")
var newContentArray = contentArray[1].componentsSeparatedByString("</span>")
var tempContent = newContentArray[0] as String
println(tempContent)
dispatch_async(dispatch_get_main_queue()) {
self.tempLabel.text = tempContent
}
}
task.resume()
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
我希望能够在应用打开时强制刷新和刷新。我的 Arduino 每 15 分钟推送一次新数据。但是为了创建,我使用每次阅读的 URL 手动更新 .txt 文件。如果需要测试,请随时更新读数。
在 URL 中的 '=' 符号后面加上您想要的值。 Temperature.php 对于湿度,将温度和温度替换为湿度和湿度。
谢谢!
【问题讨论】:
-
旁注:为什么会有
%登录"%\n";? -
@Fred-ii- 我假设是因为他想将湿度写为 [number]%。
-
@DigitalChris 之后我有点想。我编辑了我的评论并删除了“它不应该在那里”。不过你的立场是正确的。