日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>天氣數(shù)據(jù)收集和存儲(chǔ)程序開(kāi)源分享

天氣數(shù)據(jù)收集和存儲(chǔ)程序開(kāi)源分享

2023-02-09 | zip | 0.03 MB | 次下載 | 免費(fèi)

資料介紹

描述

該項(xiàng)目是一個(gè)相當(dāng)簡(jiǎn)單的天氣數(shù)據(jù)收集和存儲(chǔ)程序。

天氣數(shù)據(jù)由 Arduino 記錄,并通過(guò)向網(wǎng)絡(luò)服務(wù)器發(fā)送特制的 GET 請(qǐng)求每 10 分鐘發(fā)送到數(shù)據(jù)庫(kù)。

或者,您也可以將輸出發(fā)送到 20x4 LCD。

先決條件:

您必須已經(jīng)配置了 Web 服務(wù)器、數(shù)據(jù)庫(kù)和服務(wù)器端腳本語(yǔ)言,它們可以處理 HTTP GET 請(qǐng)求的查詢(xún)字符串中的名稱(chēng)/值對(duì)。如果您使用的是 Windows,在典型的 LAMP/WAMP/WIMP 堆棧上啟動(dòng)和運(yùn)行非常容易,但讓所有這些一起工作超出了本文的范圍。

在我的例子中,我已經(jīng)配置了一臺(tái) Windows 7 機(jī)器來(lái)運(yùn)行一個(gè)標(biāo)準(zhǔn)的 WIMP 堆?!?/font>

  • Windows 7 上的 Microsoft IIS 7.5
  • PHP 7.1.24 - windows.php.net/download/
  • MySQL 社區(qū) 8.0.13 - dev.mysql.com/downloads
  • 我還使用 PHPMyAdmin 的副本來(lái)幫助進(jìn)行數(shù)據(jù)庫(kù)配置 - phpmyadmin.net/
  • 必須啟用 mysqli PHP 擴(kuò)展

重要的提示:

這個(gè)項(xiàng)目完全忽略了任何表面上的安全(不要按原樣將它放在 Internet 上,但它對(duì)您的 LAN 沒(méi)問(wèn)題)并且我的數(shù)據(jù)庫(kù)優(yōu)化可能需要一些工作。

概述:

本文的重點(diǎn)是將數(shù)據(jù)從傳感器中獲取到我們的數(shù)據(jù)庫(kù)中,然后提取該數(shù)據(jù)并以某種方式顯示它,讓我們知道接下來(lái)會(huì)發(fā)生什么。

從現(xiàn)在開(kāi)始,本文假設(shè)您有一個(gè)可用的 Web 服務(wù)器、PHP 和 MySQL。

數(shù)據(jù)庫(kù)配置:

對(duì)于這個(gè)項(xiàng)目,我創(chuàng)建了一個(gè)名為 weatherdata 的數(shù)據(jù)庫(kù),并在該數(shù)據(jù)庫(kù)中創(chuàng)建了一個(gè)名為 master 的表。

除了每個(gè)數(shù)據(jù)庫(kù)條目的唯一標(biāo)識(shí)符之外,我們還想記錄 4 件事:

  • 時(shí)間;
  • 溫度
  • 氣壓
  • 濕度

所以我們需要 5 個(gè)我命名如下的字段:

  • 流體;
  • 時(shí)間戳
  • 溫度
  • 壓力
  • 濕度

這是 phpMyAdmin 的樣子:

?
pYYBAGPjQgGADkRWAACmUhfINtk350.png
表格字段設(shè)置
?

使用 phpMyAdmin 創(chuàng)建數(shù)據(jù)庫(kù) weatherdata。跳過(guò)從界面創(chuàng)建表并在 MySQL 命令行客戶(hù)端中使用下面的腳本來(lái)創(chuàng)建表和字段:

CREATE TABLE master 
( 
    uid INT(11) NOT NULL AUTO_INCREMENT,  
    timestamp DATETIME NOT NULL,  
    temperature DOUBLE(8,4) NOT NULL,  
    pressure DOUBLE(8,4) NOT NULL,  
    humidity DOUBLE(8,4) NOT NULL,  
    PRIMARY KEY (uid)
);

測(cè)試注意事項(xiàng):

您可以通過(guò)在瀏覽器的地址欄中手動(dòng)輸入 WEBSERVER_IP_ADDRESS/processincoming.php?t=9.30&p=98.80&h=75.70 并按回車(chē)鍵來(lái)測(cè)試設(shè)置(如果需要,可以更改值)。如果服務(wù)器正確處理它,您將看到這些值記錄在數(shù)據(jù)庫(kù)中并且它工作正常。如果它不起作用,則某處存在配置或設(shè)置錯(cuò)誤。

服務(wù)器端處理

數(shù)據(jù)庫(kù)輸入是通過(guò) Arduino 每 10 分鐘向 Web 服務(wù)器發(fā)送一次 GET 請(qǐng)求來(lái)完成的,請(qǐng)求的查詢(xún)字符串中包含溫度、壓力和濕度值。

在 Arduino 代碼中,構(gòu)建并發(fā)送 URL 字符串:

urlString = "GET /processincoming.php?t=" + temperatureToDB + "&p=" + 
    pressureToDB + "&h=" +  humidityToDB + " HTTP/1.1"; 
sendDataToServer(urlString);

sendDataToServer() 函數(shù)接受完整的字符串并將其發(fā)送到局域網(wǎng)中位于 192.168.1.35 的 Web 服務(wù)器:

void sendDataToServer(String stringToSend) {    
    //make sure i'm sending what I think I'm sending    
    Serial.println(stringToSend);      
    if (client.connect(server, 80))      
    {         
        client.println(stringToSend);         
        client.println("Host: 192.168.1.35");         
        client.println("Connection: close");         
        client.println();     
    }         
        else     
    {        
        Serial.println("connection failed");     
    }
} 

我們發(fā)送的完整請(qǐng)求如下所示:

GET /processincoming.php?t=9.30&p=98.80&h=75.70 HTTP/1.1

應(yīng)該很明顯,但 t = 溫度值,p = 壓力值和 h = 濕度值

我在這里要注意的一件事是,此頁(yè)面請(qǐng)求不會(huì)產(chǎn)生通常會(huì)發(fā)送到瀏覽器的任何輸出(除了默認(rèn)響應(yīng)標(biāo)頭之外)。一旦 Arduino 發(fā)送數(shù)據(jù),它就完成了直到下一個(gè)周期并且不需要解析響應(yīng),甚至不需要等待響應(yīng)。

提示:為您的網(wǎng)絡(luò)服務(wù)器提供 LAN 上的靜態(tài) IP 地址。如果您依賴(lài) DHCP,您可能會(huì)發(fā)現(xiàn)自己在修改 Arduino 代碼以說(shuō)明每次服務(wù)器重新啟動(dòng)時(shí)主機(jī) IP 都會(huì)發(fā)生變化。

此處包含的代碼 (WeatherStation_v1_webclient_no_lcd.ino) 編譯為 1304 字節(jié),因此適用于較小的設(shè)備。

顯示數(shù)據(jù):

文件 weather.php 負(fù)責(zé)顯示我們的天氣數(shù)據(jù)。顯示頁(yè)面是由腳本生成的簡(jiǎn)單 HTML 表格,不需要除 mysqli 之外的任何其他 PHP 擴(kuò)展。

默認(rèn)情況下,此頁(yè)面顯示長(zhǎng)達(dá) 3 小時(shí)的數(shù)據(jù),因此我們的 Arduino 應(yīng)該至少運(yùn)行了那么長(zhǎng)時(shí)間才能記錄足夠的數(shù)據(jù)量。如果您嘗試在沒(méi)有足夠數(shù)據(jù)點(diǎn)的情況下運(yùn)行它,您將收到數(shù)組錯(cuò)誤。

收集數(shù)據(jù)至少 3 小時(shí)后,輸出 HTML 應(yīng)如下所示:

?
pYYBAGPjQgWAcWtvAAJnY3OMQGU841.png
iPhone 上顯示 weather.php
?

最后,隨附的原理圖附有 LCD 輸出 - 可以忽略。

備選方案

在這種情況下,不要忽視 LCD,您將需要它。我還包括第二個(gè) Arduino 程序,它結(jié)合了上述內(nèi)容并輸出到 20x4 LCD。

可以在此處找到 LCD 組件的完整描述:https ://create.arduino.cc/projecthub/ragingradish/improved-weatherstation-20x4-18dd89

程序的 LCD 部分已更新,以確認(rèn)以太網(wǎng)已啟動(dòng)并正在運(yùn)行,但其他方面沒(méi)有變化。

為了將數(shù)據(jù)發(fā)送到服務(wù)器,添加并初始化了適當(dāng)?shù)膸?kù),然后將條件插入到循環(huán)中:

//send data to server every 10 minutes  
if ((mainLoop == 0) || (mainLoop % 10 == 0))  
{    
    temperatureToDB = currentTemp;    
    pressureToDB = currentPressure;    
    humidityToDB = currentHumid;    
    urlString = "GET /processincoming.php?t=" + temperatureToDB + "&p=" +
       pressureToDB + "&h=" +  humidityToDB + " HTTP/1.1";    
    sendDataToServer(urlString);  
}

運(yùn)行 LCD 版本的代碼是 WeatherStation_20x4_v1_webclient.ino 并編譯為 2090 字節(jié)。你需要一個(gè)有足夠內(nèi)存的設(shè)備來(lái)運(yùn)行它。


存儲(chǔ) 程序 Arduino
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書(shū) Datasheet 佰祥電子
  2. 1.12 MB  |  5次下載  |  免費(fèi)
  3. 2HT81696H 內(nèi)置升壓的30W立體聲D類(lèi)音頻功放數(shù)據(jù)手冊(cè)
  4. 1.21 MB   |  1次下載  |  免費(fèi)
  5. 3HTA6863 3W超低噪聲超低功耗單聲道D類(lèi)音頻功率放大器數(shù)據(jù)手冊(cè)
  6. 0.87 MB   |  次下載  |  免費(fèi)
  7. 4南芯 Southchip SC8802C 充電控制器 規(guī)格書(shū) Datasheet 佰祥電子
  8. 88.16 KB  |  次下載  |  免費(fèi)
  9. 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書(shū) Datasheet 佰祥電子
  10. 910.67 KB  |  次下載  |  免費(fèi)
  11. 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書(shū) Datasheet 佰祥電子
  12. 989.14 KB  |  次下載  |  免費(fèi)
  13. 7WD6208A產(chǎn)品規(guī)格書(shū)
  14. 631.24 KB  |  次下載  |  免費(fèi)
  15. 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊(cè)
  16. 1.64 MB   |  次下載  |  2 積分

本月

  1. 1EMC PCB設(shè)計(jì)總結(jié)
  2. 0.33 MB   |  12次下載  |  免費(fèi)
  3. 2PD取電芯片 ECP5702規(guī)格書(shū)
  4. 0.88 MB   |  5次下載  |  免費(fèi)
  5. 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書(shū) Datasheet 佰祥電子
  6. 1.12 MB  |  5次下載  |  免費(fèi)
  7. 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動(dòng)電路選型表
  8. 0.10 MB   |  3次下載  |  免費(fèi)
  9. 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊(cè)
  10. 0.88 MB   |  3次下載  |  免費(fèi)
  11. 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
  12. 1.01 MB   |  3次下載  |  免費(fèi)
  13. 7怎么為半導(dǎo)體測(cè)試儀選擇精密放大器
  14. 0.65 MB   |  2次下載  |  免費(fèi)
  15. 8SY52341 次級(jí)側(cè)同步整流英文手冊(cè)
  16. 0.94 MB   |  2次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191469次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81606次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73832次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分
碌曲县| 丽江市| 东兰县| 孝昌县| 定结县| 吴堡县| 体育| 阿拉善右旗| 开封市| 修水县| 平凉市| 扬州市| 姚安县| 保康县| 怀宁县| 伊宁县| 怀安县| 吉林市| 乃东县| 师宗县| 偃师市| 临武县| 北辰区| 台南县| 合肥市| 建宁县| 闵行区| 淮北市| 阿瓦提县| 乐东| 东明县| 涿鹿县| 新邵县| 平泉县| 新建县| 芜湖县| 鸡西市| 德钦县| 湖北省| 孟津县| 庐江县|