⑴ 如何為Arino設備構建遠程配置
如果你只能在本地控制一個智能設備,那麼它並不能被稱之為智能。那有什麼用呢?你需要的是遠程式控制制設備的功能。而這正是遠程配置發揮作用的地方。
遠程配置能夠讓開發人員和用戶觸發行動,進而在任何地點控制他們的設備。設備狀態解析通過網路(在本案例中為PubNub)傳送的信號,並根據信號指令永久地改變裝置的狀態(如燈泡從關到開)。
A 遠程配置的消息傳遞層
在本教程中,我們將展示如何在[基於Atmel的]Arino聯網設備上實現遠程配置。在開發的過程中,我們遇到了兩個問題。
1. 網設備的狀態(如在線/離線狀態)
2. 連接到雲的設備的狀態
通過使用Presence API,第一個問題迎刃而解,因此,我們將著重關注第二個問題。我們將採用存儲和回放的方法,存儲並檢索用於家庭自動化解決方案的聯網設備的狀態。如此,我們就能夠遠程式控制制智能設備,實時發送信號。
jsON對象就是一個典型的示例,如下所示:
{"狀態":[
{"通電":"真"},
{"咖啡量: 一半"},
{"溫度":""}
]}
遠程配置的整體流程
● 注冊一個免費的PubNub賬戶。如此便可獲得獨特的發表/訂閱鍵,用於激活PubNub。這些鍵位於開發人員控制台。
● 利用Arino通過PubNub物聯網網路發布消息,控制智能設備。
● 通過web瀏覽器,訪問這些消息。
了解教程!
步驟一:連接PubNub
例如,控製冰箱的溫度。如下參數可存儲為設備的狀態,如查看冰箱門的開啟狀態、溫度、功耗,甚至還有冰箱的容積。
在Arino IDE上運行,並查看步驟二中關於連接PubNub至Arino的教程,獲得更多詳情。
步驟二:在Arino中創建JSON對象
為在Arino中創建json對象,我們需要使用JSON.h庫。創建上文所述的JSON對象可參照如下步驟:
aJsonObject *msg = aJson.createObject();
aJson.addStringToObject(msg, "姓名", "Arino");
aJson.addNumberToObject(msg, "外部溫度", 34);
步驟三:向設備發送信號
除此之外,只需再利用Arino IDE發布消息即可。要做到這一點,可參照如下代碼:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char pubkey[] = "demo";
char subkey[] = "demo";
char channel[] = "設備狀態";
//setup
void setup()
{
Serial.begin(9600);
Serial.println("串口設置");
while (!Ethernet.begin(mac)) {
Serial.println("乙太網設置錯誤");
delay(1000);
}
Serial.println("乙太網設置");
PubNub.begin(pubkey, subkey);
Serial.println("PubNub 設置");
}
// establishing internet connection to the Arino and publishing the state建立Arino網路連接並發布狀態
void loop()
{
Ethernet.maintain();
EthernetClient *client;
client = PubNub.publish(channel, msg);
if (!client) {
Serial.println("發布錯誤");
} else {
client->stop();
}
delay(5000);
}
另外,如果只能在web瀏覽器上查看設備狀態怎麼辦?在瀏覽器控制台中粘貼如下代碼,並查看狀態填寫。
// 發布和訂閱鍵初始化
var pubnub = PUBNUB.init({
publish_key: 'PUBLISH_KEY_HERE',
subscribe_key: 'SUBSCRIBE_KEY_HERE',
uuid: 'devices_state設備狀態'
});
// 通過歷史記錄檢索已經發布到該渠道的消息。
pubnub.history({
channel: '歷史記錄_渠道',
callback: function(m){console.log(JSON.stringify(m))},
});
就是這樣!還有一點:PubNub並不限制你發布或通過歷史記錄檢索消息的數量。你可以利用多個Arinos進行嘗試,並遠程查看其狀態。
遠程配置的用例數之不盡,從農業到運輸和物流,再到家庭自動化。它使你能夠在地球上的任何地方完全控制你的智能設備,功能異常強大。
⑵ 如何實現遠程遙控Arino的PWM調光
Arino實現PWM 調控燈光亮度
Pulse Width Molation 就是通常所說的PWM,譯為脈沖寬度調制,簡稱脈寬調制。脈沖寬度調制(PWM)是一種對模擬信號電平進行數字編碼的方法,由於計算機不能輸出模擬電壓,只能輸出0 或5V 的的數字電壓值,我們就通過使用高解析度計數器,利用方波的占空比被調制的方法來對一個具體模擬信號的電平進行編碼。PWM 信號仍然是數字的,因為在給定的任何時刻,滿幅值的直流供電要麼是5V(ON),要麼是0V(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復脈沖序列被加到模擬負載上去的。通的時候即是直流供電被加到負載上的時候,斷的時候即是供電被斷開的時候。只要帶寬足夠,任何模擬值都可以使用PWM 進行編碼。輸出的電壓值是通過通和斷的時間進行計算的。輸出電壓=(接通時間/脈沖時間)*最大電壓值。
Arino 控制器有6 個PWM 介面分別是數字介面3、5、6、9、10、11,前面我們已經做了按鍵控制小燈的實驗,那是數字信號控制數字介面的實驗,我們也做過電位計的實驗,這次我們就來完成一個用電位計控制小燈的實驗。
需要的元器件有:
電位計模塊*1
紅色M5 直插LED*1
220Ω直插電阻
麵包板*1
麵包板跳線*1 扎
電位計即為模擬值輸入我們接到模擬口,小燈我們接到PWM 介面上,這樣通過產生不同的PWM 信號就可以讓小燈有亮度不同的變化。
我們先按照下面的原理圖連接實物圖。
在編寫程序的過程中,我們會用到模擬寫入analogWrite(PWM 介面,模擬值)函數,對於模擬寫入analogWrite()函數,此函數用法也很簡單,我們在本實驗中讀取電位計的模擬值信號並將其賦給PWM 介面使小燈產生相應的亮度變化,再在屏幕上顯示出讀取的模擬值,大家可以理解為此程序是在模擬值讀取的實驗程序中多加了將模擬值賦給PWM 介面這一部分,下面給大家提供一段參考源程序。
參考源程序:
int potpin=0;//定義模擬介面0
int ledpin=11;//定義數字介面11(PWM 輸出)
int val=0;// 暫存來自感測器的變數數值
void setup()
{
pinMode(ledpin,OUTPUT);//定義數字介面11 為輸出
Serial.begin(9600);//設置波特率為9600
//注意:模擬介面自動設置為輸入
}
void loop()
{
val=analogRead(potpin);// 讀取感測器的模擬值並賦值給val
Serial.println(val);//顯示val 變數
analogWrite(ledpin,val/4);// 打開LED 並設置亮度(PWM 輸出最大值255)
delay(10);//延時0.01 秒
}
運行程序後,我們旋轉電位計的旋鈕不但可以看到屏幕上數值的變化還也可以清楚的看到我們麵包板上的LED 小燈的亮度也在隨之變化。
⑶ arino 328與arino uno有什麼區別與arino mega1280呢
UNO是328的升級版(2011年升級,2012年初出的R3版)主要升級就是USB 轉串口模塊,採用了 16U2 或者是8U2 的單片機來模擬轉換晶元,速度更快更穩定(16U2比8U2性能好,但是8U2也夠了) 如果不在乎20多塊錢的話,8U2的是很好的選擇。
UNO升級了328的USB通訊模塊,更快,當然成本高了自然價格高了
mega1280性能和328相同,都是16M的8位單片機,區別在於引腳數量,可以接更多的外圍設備
RAM和FLASH擴大了很多 其中的1280指的是128K的FLASH空間,328指的是32K, 可以包含更大的程序(上面說的FLASH空間不是所有都可用,一般會有幾K作為BOOTLOADER 就是引導程序 幾K,可以忽略不計,多數程序都沒有那麼大,32K對於單片機來說已經很大了)。
arino產品序列性能更好的 還有2560。
挑選的時候主要要看做工,價格,還有就是周邊元件,很多1280或者2560使用的還是FT32的USB晶元,那就是老款了,用16U2單片機或者8U2的都是很好的選擇,畢竟新,支持的功能更多(當然目前功能相同,以後可能會開發出來虛擬滑鼠或者鍵盤之類的通訊代碼,只有單片機作為通訊的才支持,官網上說「當然,這一切有待於團隊的後續開發」)。
目前本人玩的是2560 ,數字IO 模擬口都多很多.
⑷ 如何遠程無線操控arino主板 使在遠處通過遙控器或按鈕完成不同插口上電機的控制
你要先確定好無線的方案是走網路還是串口之類的
⑸ 如何用電腦遠程式控制制arino uno智能小車
點擊labview程序面板左上角燈泡狀的按鈕,進入調試狀態看數據流,看看程序是否執行到了visa寫入的那個case框。 另外,visa寫入的數據為何要加上單引號? 單引號應該是不需要的。 你說的輸入框是不是指「寫入緩沖區」? 這個不是用來輸入的,是用來。
⑹ arino uno r3可以使用wifi或區域網實現遠程式控制制嗎,詳細說一下
可以的,但是通常需要外網上有一個伺服器之類的才能實現
⑺ ubuntu 系統下arino mega 如何通過藍牙遠程自動燒錄程序
肯定可以抄啊,藍牙透傳數據再通過SPI介面寫入到Flash,道理上沒問題。肯定需要額外一個晶元來處理,通過板子上那塊ATmega16應該也可以實現。 不過考慮到328本身的性能,是否值得費事這么做就要考慮一下了。
⑻ arino網路澆花器怎麼聯網
吧Arino設置成一個net server,然後遠程用網頁連接就行。
這個需要你有比較熟練的網頁編程知識,並且了解net server和瀏覽器的連接握手規則
⑼ 親們,Arino之間通訊採用什麼方式比較好
現在一般使用的都是UNO,UNO是328的升級版(2011年升級,2012年初出的R3版)主要升級就是USB
轉串口模塊,採用了ATMEL
16U2
或者是8U2
的單片機來模擬轉換晶元,速度更快更穩定(16U2比8U2性能好,但是8U2也夠了)
如果不在乎20多塊錢的話,8U2的是很好的選擇。
UNO升級了328的USB通訊模塊,更快,當然成本高了自然價格高了
mega1280性能和328相同,都是16M的8位單片機,區別在於引腳數量,可以接更多的外圍設備
RAM和FLASH擴大了很多
其中的1280指的是128K的FLASH空間,328指的是32K,
可以包含更大的程序(上面說的FLASH空間不是所有都可用,一般會有幾K作為BOOTLOADER
就是引導程序
幾K,可以忽略不計,多數程序都沒有那麼大,32K對於單片機來說已經很大了)。
arino產品序列性能更好的
還有2560。
挑選的時候主要要看做工,價格,還有就是周邊元件,很多1280或者2560使用的還是FT32的USB晶元,那就是老款了,用16U2單片機或者8U2的都是很好的選擇,畢竟新,支持的功能更多(當然目前功能相同,以後可能會開發出來虛擬滑鼠或者鍵盤之類的通訊代碼,只有單片機作為通訊的才支持,官網上說「當然,這一切有待於團隊的後續開發」)。