女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何制作一個遠程恒溫器

454398 ? 來源:工程師吳畏 ? 2019-08-20 11:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:全部放在一起

如何制作一個遠程恒溫器

首先,我建議你做一些arduino教程處理RF發(fā)射器只是為了確保您的部件正常工作且接線正確。有很多可用的例子,包括代碼(對于那些對C和C ++幾乎沒有了解的人)。

按照下面的接線圖來組裝arduino和傳感器。在連接arduinos時要記住的一件事是我使用的數據端口不是而是推薦的。

IF 您決定更改所使用的數據端口,只需在代碼中定義引腳即可。就個人而言,我認為堅持使用arduino庫識別的默認端口更容易。

為了清楚起見,納米和uno是可以互換的,但我在項目的發(fā)射器側使用納米來減小溫度監(jiān)控器的尺寸。

旁注:持有nano的綠色裝置是3D打印容器。

步驟2:接收器

步驟3:發(fā)射器

步驟4:代碼

一次接線完成你需要運行所有程序并安裝庫(如果你還沒有),我只是假設你有,你需要啟動Matlab并運行iPhone支持包。此時你的手機和Matlab都需要在同一個wifi網絡上。

在Matlab的命令窗口中寫道:

connector on

這將提示你輸入用于連接iPhone的五位數密碼。確保記住密碼。輸入密碼后,Matlab將顯示一些信息,包括您的IP地址。在下一步中使用它,它來自Matlab mobile中“傳感器入門”幫助菜單中的說明。

按照以下步驟將傳感器數據發(fā)送到MathWorks Cloud或計算機:

如果要將傳感器數據發(fā)送到計算機并且尚未安裝,請下載并安裝MATLAB支持在MATLAB中為Apple iOS傳感器打包。

使用“設置”將MATLAB Mobile連接到MathWorks Cloud或計算機。

在MATLAB中(在您的計算機上)創(chuàng)建mobiledev對象,例如:》》 m = mobiledev

選擇一個或多個傳感器,然后點擊開始。

按照以下步驟在設備上本地記錄傳感器數據:

在“傳感器”屏幕上,選擇要從中收集數據的傳感器。

選擇日志。

點按“開始”按鈕。

完成數據收集后,點擊“停止”按鈕。

在彈出窗口中,輸入傳感器日志的名稱。

如果需要,請重復步驟1-5。

本節(jié)將在第4部分中回顧,因此無需實際開始收集數據。只需將您的手機放在手邊,就可以使用Matlab移動設備。

現在您需要在計算機的某個位置創(chuàng)建一個文件夾來存放Matlab代碼文件。你將有四個單獨的文件,兩個用于后臺函數(.m文件)和一個用于GUI的(.mlapp)的Matlab代碼文件。

首先是你房子里空氣的質量計算(這讓Matlab知道加熱/冷卻房子需要多長時間)

function [Mass]= CalcMass(T_ins,P_out,Chng_dir)

runCalc=0;

Tmp_start=T_ins;

time_start=clock;

time_end = 0

while runCalc 《= 1

if T_ins==(Tmp_start+(7*Chng_dir))

time_end=clock;

PwrCntr = 0;

runCalc=0;

else PwrCntr = P_out;

runCalc=runCalc+0.1

end

end

time_diag= time_end-time_start

Mass=(P_out*time_diag)/7.035

第二個:

function [timestamps, pwr_usage]= dist_cntrl(Lat_in,Lon_in,P_out,r_pref,speed,T_pref,mass)

AutoStat = 1;

i = 1;

while AutoStat == 1

time_start=clock;

m = mobiledev;

t = csvread(‘values.csv’,0,1);

t= t(i);

timestamps= [0,0,0,0,0,0];

pwr_usage = 0;

i = i+1;

format longg;

%haversine formula for calculating distance based on latitude and

%longintude

a_hav=(sind((m.Latitude-Lat_in)。/2)).^2+cosd(Lat_in).*cosd(m.latitude).*(sind((m.Longitude-Lon_in)。/2)).^2;

c_hav= 2.*atan2d(sqrt(a_hav),sqrt(1-a_hav));

d_hav= 6371.*c_hav;

Dist=d_hav.*1000;

%estimates your time to return

time_rtn=(Dist-r_pref)。/speed;

%calculates the necessary thermostat setting based on power out put of

%air conditioner and airmass of the home.

calcTmp_set=((-1.*P_out.*time_rtn)。/(mass.*(1.005)))+T_pref;

%determines whether the current thermostat setting needs to be changed

if round(calcTmp_set) ~= round(t)

timeACon = clock;

PwrCntr = P_out;

timeACon= timeACon + clock-time_start;

cost=P_out*timeACon*rate;

else

PwrCntr = 0

end

timestamps(end+1,[1:6]) = clock;

pwr_usage(end+1,1)= PwrCntr;

pause(5)

end

end

這兩個文件都是Matlab函數。除非您計劃根據特定需要修改它們,否則您無需訪問它們,因為您將從GUI調用它們。分別保存兩個文件,第一個作為CalcMass.m,第二個作為dist_cntrl.m,這些將是GUI代碼用來調用函數的名稱,所以除非你想編輯下面的其余代碼,堅持下去命名慣例。

在進入GUI代碼之前,您需要打開Matlab的應用程序設計器,您可以通過在Matlab菜單欄中導航打開,或者通過我最喜歡的方法打開它,該方法在Matlab命令窗口:

appdesigner

打開應用程序設計器后,打開一個新的應用程序文件(.mlapp)并從代碼窗口中刪除所有默認代碼。然后用以下內容替換所有內容并點擊運行按鈕。

classdef Control_1 《 matlab.apps.AppBase

% Properties that correspond to app components

properties (Access = public)

UIFigure matlab.ui.Figure

TabGroup matlab.ui.container.TabGroup

SetupTab matlab.ui.container.Tab

RunDiagnosticButton matlab.ui.control.Button

EnergyEfficiencyRatingEditFieldLabel matlab.ui.control.Label

EnergyEfficiencyRatingEditField matlab.ui.control.NumericEditField

PowerOutputRatingEditFieldLabel matlab.ui.control.Label

PowerOutputRatingEditField matlab.ui.control.NumericEditField

AvgLocalSpeedEditFieldLabel matlab.ui.control.Label

AvgLocalSpeedEditField matlab.ui.control.NumericEditField

DesiredDistancefromHouseEditFieldLabel matlab.ui.control.Label

DDFH matlab.ui.control.NumericEditField

TemperatureDirectionSwitchLabel matlab.ui.control.Label

TemperatureDirectionSwitch matlab.ui.control.Switch

TempSettingsTab matlab.ui.container.Tab

Temperature1SpinnerLabel matlab.ui.control.Label

Temperature1Spinner matlab.ui.control.Spinner

Temperature2SpinnerLabel matlab.ui.control.Label

Temperature2Spinner matlab.ui.control.Spinner

Switch matlab.ui.control.Switch

EditFieldLabel matlab.ui.control.Label

tempnow matlab.ui.control.NumericEditField

GaugeLabel matlab.ui.control.Label

Gauge matlab.ui.control.Gauge

SavingsTab matlab.ui.container.Tab

UIAxes matlab.ui.control.UIAxes

ThisMonthCostEditFieldLabel matlab.ui.control.Label

ThisMonthCostEditField matlab.ui.control.NumericEditField

TotalSavingsEditFieldLabel matlab.ui.control.Label

TotalSavingsEditField matlab.ui.control.NumericEditField

end methods (Access = private) % Value changed function: tempnow

function tempnowValueChanged(app, event)

temp = app.tempnow.Value;

temp=randi([60,90],1,50)

app.Gauge.Value = 0

for i = length(temp)

app.Gauge.Value= temp(i)

pause(1)

end

end % Value changed function: TemperatureDirectionSwitch

function TemperatureDirectionSwitchValueChanged(app, event)

way = app.TemperatureDirectionSwitch.Value;

way= uint8(way)

way = length(way)

if way == 4

Chng_dir = -1;

else

Chng_dir = 1;

end

Chng_dir;

end % Value changed function: DDFH

function DDFHValueChanged(app, event)

r_pref = app.DDFH.Value;

end % Value changed function: AvgLocalSpeedEditField

function AvgLocalSpeedEditFieldValueChanged(app, event)

speed = app.AvgLocalSpeedEditField.Value;

end % Value changed function: PowerOutputRatingEditField

function PowerOutputRatingEditFieldValueChanged(app, event)

value = app.PowerOutputRatingEditField.Value;

end 《立方厘米= 1》 《立方厘米= 1》 《立方厘米= 1》 《立方厘米= 1》 % Value changed function: EnergyEfficiencyRatingEditField

function EnergyEfficiencyRatingEditFieldValueChanged(app, event)

value = app.EnergyEfficiencyRatingEditField.Value;

end % Button pushed function: RunDiagnosticButton

function RunDiagnosticButtonPushed(app, event)

way = app.TemperatureDirectionSwitch.Value;

way= uint8(way)

way = length(way)

if way == 4

Chng_dir = -1;

else

Chng_dir = 1;

end

T_ins = app.tempnow.Value

P_out = app.PowerOutputRatingEditField.Value

CalcMass1(T_ins,P_out,Chng_dir) end % Value changed function: Temperature1Spinner

function Temperature1SpinnerValueChanged(app, event)

value = app.Temperature1Spinner.Value;

end % Value changed function: Temperature2Spinner

function Temperature2SpinnerValueChanged(app, event)

value = app.Temperature2Spinner.Value;

end

您可能會收到錯誤,這沒有問題。只需關閉按下運行后生成的GUI,我們馬上就會收集剩余的必要程序和數據。

由于Matlab已經設置完畢,我們可以繼續(xù)使用python。首先,從命令提示符(在Windows上)或使用python文件夾中的.exe文件運行python程序。確保使用import命令安裝了所有相應的庫。

% Value changed function: Switch

function SwitchValueChanged(app, event)

m = mobiledev;

Lat_in = m.Latitude

Lon_in = m.Longitude

P_out = 0;

r_pref = app.DDFH.Value;

T_pref = app.Temperature1Spinner.Value;

speed = m.Speed;

mass = 200;

speed = app.AvgLocalSpeedEditField.Value;

Auto_Stat = app.Switch.Value;

dist_cntrl(Lat_in,Lon_in,P_out,r_pref,T_pref,speed,mass)

end

end

這些是您需要開始的三個庫,盡管我們將要制作我們自己的圖書館很快如果這些命令出現某種錯誤,請返回并確保已安裝庫并位于python文件夾中的Lib文件夾中。接下來我們將生成我所謂的pythonlogger庫。這個名稱不是必需的,您可以隨意調用它,它只是您創(chuàng)建的python文件(.py)的名稱。

打開一個文本編輯器,我使用Sublime3,但記事本工作正常,并輸入此代碼。

% App initialization and construction

methods (Access = private)

將文本另存為“在Lib文件夾中插入所需庫的名稱”.py。另請注意,def pythonprint()行定義了要調用的函數的名稱,因此您可以將其更改為def“為函數插入所需的名稱”()。保存庫后,我們可以繼續(xù)使用arduino代碼。

打開arduino IDE并打開兩個新的草圖窗口。將這兩個草圖文件保存在方便的地方,這些文件的名稱無關緊要。然后刪除所有默認代碼并將其替換為以下內容。

對于接收arduino:

% Create UIFigure and components

function createComponents(app)

P.S。//driver.printBuffer 。..。 etc行是測試代碼。除非你做診斷并想知道你是否真的在接收數據,否則無需擔心。

對于發(fā)射器arduino

% Create UIFigure

app.UIFigure = uifigure;

app.UIFigure.Position = [100 100 640 480];

app.UIFigure.Name = ‘UI Figure’;

include命令應該是足夠了,但是如果您以后在數據傳輸方面遇到任何問題,您可能需要查看RadioHead庫文件夾并以相同的格式包含其余文件名。

步驟5 :讓它工作

現在我們已經將所有代碼放在一起并且arduino已經組裝好了,我們可以將arduino連接到您的計算機并加載代碼。確保將正確的代碼發(fā)送到接收和發(fā)送微控制器。您可以在運行時將兩個arduinos連接到您的計算機,但是您必須確保選擇正確的端口向前移動,或者您可以斷開傳輸arduino并在代碼完成后從其他來源斷開電源。上傳。

說到這一點,你應該從IDE工具菜單中選擇連接到你的接收arduino的端口并運行python。

不要打開串行監(jiān)視器這樣做,python無法在顯示器打開時讀取序列。一旦python打開,調用pythonprint函數如下。

% Create TabGroup

app.TabGroup = uitabgroup(app.UIFigure);

app.TabGroup.Position = [1 1 640 480];

這將從arduino串口開始數據收集。如果現在打開python文件夾,您將看到創(chuàng)建了一個名為“test_data.csv”的新.csv文件,該文件包含所有時間和溫度信息。這將是Matlab訪問以執(zhí)行其所有計算和控制的文件。

另一個警告:在訪問或寫入數據時不要打開test_data.csv。如果這樣做,python和/或Matlab代碼將崩潰并發(fā)回錯誤。

如果您決定稍后打開.csv,您會注意到時間列只是一個非常大的數字串。這是因為time.time()命令寫入自1970年1月1日以來的秒數。

此時python應該打印從串口讀取的溫度數據。它應該類似于:

% Create SetupTab

app.SetupTab = uitab(app.TabGroup);

app.SetupTab.Title = ‘Setup’;

不要擔心額外的字符,即.csv文件第二列中五個值的Matlab代碼索引

既然所有的支持程序都在工作并且正在收集數據,我們就可以開始從之前設置的Matlab移動程序中收集GPS數據并運行Matlab GUI代碼。進入Matlab mobile的傳感器選項卡后,選擇GPS并點擊開始按鈕。

如果您不熟悉Matlab,請參閱步驟4并查看上面的屏幕截圖。如果仍有問題,請確保已連接到之前選擇的計算機(在設置選項卡中),并使用“connector on”命令中的鏈接檢查Matlab是否在線。

步驟6:使用程序

此系統(tǒng)的后臺正在進行多項操作。 Arduino和pyton正在收集和記錄溫度數據,Matlab正在從您的手機收集GPS數據并運行計算,以查看您離家有多遠,并根據所有信息設置恒溫器。你進來的地方是提供你的偏好。

運行Matlab GUI代碼。打開.mlapp文件并查看第一個選項卡。您需要自己收集信息,加熱/冷卻裝置的效率和額定功率通常可以在裝置上找到,而您的平均速度只是對您行駛速度的一個很好的估計。輸入值后,點擊“運行診斷”按鈕,程序控制恒溫器收集有關房屋的信息。

轉到下一個菜單。

步驟7:溫度控制

此菜單允許您在家中和離開時選擇您喜歡的溫度。將溫度#1設置為您的舒適溫度,將溫度#2設置為對您的家庭安全的高或低值(確保您在家中有狗等時不將其設置為100度)。

步驟8:歷史數據

最后,您可以使用自動控制來查看您節(jié)省的金額。這基本上估算了如果恒溫器24/7設定為您的首選溫度,然后減去實際使用的能量,將使用多少能量。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 恒溫器
    +關注

    關注

    4

    文章

    143

    瀏覽量

    21085
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    恒溫晶振OCXO在地面衛(wèi)星接收中的應用

    恒溫晶振(Oven-Controlled Crystal Oscillator,OCXO)是種通過恒溫控制技術實現超高頻率穩(wěn)定性的晶體振蕩。其核心原理是將晶體置于
    的頭像 發(fā)表于 06-05 13:51 ?246次閱讀
    <b class='flag-5'>恒溫</b>晶振OCXO在地面衛(wèi)星接收<b class='flag-5'>器</b>中的應用

    物聯(lián)網智能恒溫器解決方案

    想象下,如果家里的供暖和制冷系統(tǒng)不僅能自動運行,還能進行智能化管理,顯著提升舒適度和效率,將給我們的生活帶來怎樣的改變。這正是物聯(lián)網 (IoT) 智能恒溫器的使命,它正在重塑我們控制室內環(huán)境的方式。了解這發(fā)展對于經驗豐富的電
    的頭像 發(fā)表于 06-03 14:49 ?371次閱讀
    物聯(lián)網智能<b class='flag-5'>恒溫器</b>解決方案

    恒溫晶振對比其他晶振的優(yōu)勢有哪些?

    具有更高的頻率穩(wěn)定性。晶振的頻率穩(wěn)定性是衡量其性能的重要指標之恒溫晶振通過內部的溫度傳感和溫控電路,能夠實時監(jiān)測和調節(jié)晶振的工作溫度,以保持其頻率的穩(wěn)定性。相
    的頭像 發(fā)表于 05-06 15:46 ?303次閱讀
    <b class='flag-5'>恒溫</b>晶振對比其他晶振的優(yōu)勢有哪些?

    解決方案 | 恒溫器精準控溫 原來有這些“芯”科技!

    、總述:恒溫器種能精確調節(jié)和控制環(huán)境溫度的設備,內置傳感實時監(jiān)測溫度,旦偏離預設值,即自動啟動加熱或制冷裝置進行調節(jié)。廣泛應用于工
    的頭像 發(fā)表于 01-24 09:25 ?1670次閱讀
    解決方案 | <b class='flag-5'>恒溫器</b>精準控溫 原來有這些“芯”科技!

    電腦制作私有云盤,電腦制作私有云盤的教程,個人云電腦是什么以及怎么連接

    繳費,告別停車難困擾。無人駕駛出租車通過遠程云控保障行駛安全,未來出行因遠程連接變得智能、便捷、舒適。接下來和大家起探索電腦制作私有云盤的教程。 ? ?電腦
    的頭像 發(fā)表于 12-30 14:08 ?395次閱讀
    電腦<b class='flag-5'>制作</b>私有云盤,電腦<b class='flag-5'>制作</b>私有云盤的教程,個人云電腦是什么以及怎么連接

    傳感類型在智能家居中的應用

    中的應用。 1. 溫度傳感 應用場景: 智能恒溫器: 溫度傳感可以檢測室內溫度,并與智能恒溫器配合,自動調節(jié)室內溫度,以保持舒適的居住環(huán)境。 節(jié)能: 通過監(jiān)測室內外溫差,智能系統(tǒng)可
    的頭像 發(fā)表于 12-06 14:13 ?3271次閱讀

    松下KAIROS助力Globstream Media打造遠程制作解決方案

    電視轉播車進行長期的現場制作,既不現實也不經濟。因此,Globstream Media采用松下KAIROS及全系列攝像機系統(tǒng),為用戶打造了套高效的遠程制作解決方案。
    的頭像 發(fā)表于 11-27 09:37 ?531次閱讀

    使用CC3220 Simplelink單芯片Wi-Fi MCU SoC設計恒溫器

    電子發(fā)燒友網站提供《使用CC3220 Simplelink單芯片Wi-Fi MCU SoC設計恒溫器.pdf》資料免費下載
    發(fā)表于 10-29 09:47 ?0次下載
    使用CC3220 Simplelink單芯片Wi-Fi MCU SoC設計<b class='flag-5'>恒溫器</b>

    使用MSP430 MCU和TPS60313實現單節(jié)電池恒溫器

    電子發(fā)燒友網站提供《使用MSP430 MCU和TPS60313實現單節(jié)電池恒溫器.pdf》資料免費下載
    發(fā)表于 10-21 09:42 ?0次下載
    使用MSP430 MCU和TPS60313實現單節(jié)電池<b class='flag-5'>恒溫器</b>

    使用邏輯和轉換用例優(yōu)化智能恒溫器的設計

    電子發(fā)燒友網站提供《使用邏輯和轉換用例優(yōu)化智能恒溫器的設計.pdf》資料免費下載
    發(fā)表于 09-21 11:16 ?0次下載
    使用邏輯和轉換用例優(yōu)化智能<b class='flag-5'>恒溫器</b>的設計

    陶瓷PTC恒溫發(fā)熱片的阻值是多大?

    陶瓷PTC恒溫發(fā)熱片是種利用正溫度系數(Positive Temperature Coefficient,簡稱PTC)材料制成的加熱元件。它具有自動恒溫、安全、節(jié)能等特點,廣泛應用于家用電器、工業(yè)
    的頭像 發(fā)表于 09-20 17:37 ?4109次閱讀

    LM26單通道數字輸出、低功耗恒溫器數據表

    電子發(fā)燒友網站提供《LM26單通道數字輸出、低功耗恒溫器數據表.pdf》資料免費下載
    發(fā)表于 08-14 14:33 ?0次下載
    LM26單通道數字輸出、低功耗<b class='flag-5'>恒溫器</b>數據表

    LM26NV 采用 SOT-23 封裝、具有 ±3°C 精度的出廠預設恒溫器數據表

    電子發(fā)燒友網站提供《LM26NV 采用 SOT-23 封裝、具有 ±3°C 精度的出廠預設恒溫器數據表.pdf》資料免費下載
    發(fā)表于 08-13 09:18 ?0次下載
    LM26NV 采用 SOT-23 封裝、具有 ±3°C 精度的出廠預設<b class='flag-5'>恒溫器</b>數據表

    LM27 SOT-23,±3°C精確,120°C-150°C出廠預設恒溫器數據表

    電子發(fā)燒友網站提供《LM27 SOT-23,±3°C精確,120°C-150°C出廠預設恒溫器數據表.pdf》資料免費下載
    發(fā)表于 08-13 09:17 ?1次下載
    LM27 SOT-23,±3°C精確,120°C-150°C出廠預設<b class='flag-5'>恒溫器</b>數據表

    如何手搓自定義的RPC 遠程過程調用框架

    種常用的技術,能夠簡化客戶端與服務之間的交互。本文將介紹如何基于Netty(網絡編程框架)實現自定義的簡單的RPC框架。 首先簡單介紹
    的頭像 發(fā)表于 07-22 12:17 ?1232次閱讀
    如何手搓<b class='flag-5'>一</b><b class='flag-5'>個</b>自定義的RPC <b class='flag-5'>遠程</b>過程調用框架