前言: 話說前陣子爸爸家陽台不斷出現米奇老鼠,立刻清理陽台所有東西,然後又跟市政部門反映問題,可是情況還沒有好轉,米老鼠來完一隻又一隻,我爸陽台在老鼠界應該是網紅打卡聖地(誤),要不然就是米奇老鼠版米奇林三星餐廳(?) 雖然我們抓到了三隻,到上兩個禮拜為止還有至少一隻一直抓不到,每天淩晨還會來吃事後煙留下老鼠屎,真_北。 這隻老鼠對傳統攻擊有抗性,有IT9朋友前陣子用Raspberry pi自製了一台electric mouse trap ,用pi的超聲波雷達放在鞋盒裡,鞋盒裡有一堆食物,底部佈了鐵網,偵測到有老鼠進去以後立即關門通9V電,通個1分鐘再放牠離開,大推我自己也造一台 (Youtube片搜尋一大堆,人類真變態啊,朋友好變態啊)。可是我覺得這樣又好像有點太殘忍,不如先偵測牠們什麼時候來,嚇嚇牠們看看有沒有效果再說吧。 目的: 用Raspberry pi及手上有的感測器弄一隻放陽台用來偵測和嚇嚇老鼠的東西,並把紀錄圖像化到雲端給老爸使用。 邏輯及設計: 當老鼠進入偵測範圍,Motion Sensor偵測到生物活動Raspberry pi 處理來自Motion Sensor的訊號,如果夠強的話開始準備作出回應 Raspberry pi在Angry cats sounds中隨機選出叫聲,再經由Speaker輸出貓叫聲 Raspberry pi指示強光元件發出強光束照射目標 把偵測計數上傳到雲端圖表 材料: Sensor 在網路上看了一些Raspberry pi wild animal camera ,很多也是用Motion Sensor先偵測動物再來,我用的是PIR Motion Sensor被動式紅外線感測器,有低耗電成本便宜的好處。[1],而且可手動調整靈敏度及反應時間。 PIR Motion Sensor就是下面這個 圖片來源: learn.adafruit.com 可手動調整敏感度還有反應時間,這個有點不好調,要試好多遍才找到最佳位置。 可以在Raspbian中輸入pinout查詢GPIO避免插錯 圖片來源: learn.adafruit.com . 一台Raspberry pi 這次使用較舊的Raspberry pi model B+ 萬一老鼠生氣被咬爛錢包也不太痛 . 一張
連接資料庫的方法
基本概念:
- 視覺方式,使用設計階段工具。
- 程式設計方式。
基本概念:
- ADO.NET
- ADO.NET 可讓您以一致的方式存取資料來源 (如 Microsoft SQL Server 與 XML),以及透過 OLE DB 和 ODBC 所公開的資料來源。資料共用的消費者應用程式可使用 ADO.NET 連接至這些資料來源並擷取、操作及更新其中所含的資料。
- 元件:
- .NET Framework 資料提供者
- DataSet
- 架構
- 在.NET中, 我們使用System.Data這個namespace為存取資料的主要方法。
- 當存取任何形態的外部資料, 程式一定包含下列物件:
- Connection物件
- Command物件
- 資料載體
- 資料載體包括
- DataReader
- 能從資料庫擷取順向唯讀資料流資料。
- 好處是提高應用程式的效能,方法是立即擷取可用的資料,及 (依預設) 一次只將一個資料列儲存到記憶體中,從而減少系統負荷。
- DataAdapter
- 表示 SQL 命令集和資料庫連接,用來填入 DataSet 並更新資料來源。
- 是 DataSet 和資料來源之間的橋接器 (Bridge) ,用來擷取和儲存資料。
- DataSet
- 種離線運作的資料庫快取,存放在主機的記憶體裡面。DataSet是透過DataAdapter(資料配接器)來執行SQL指令,功能非常強大,幾乎就是資料庫的翻版(如:DataView、DataTable、Relationship等等都作得到)。可以把資料庫複製到主機的記憶體裡面,如此一來面對關係複雜的多重資料表,就能快速地處理。缺點是:使用DataSet比較消耗資源。[2]
- DataSet 由 DataTable 物件的集合所組成.
內部是用XML來描述數據的。
- DataTable
- DataSet內的元素。一個DataSet 可由一至多組 DataTable物件組成。
- DataSet, DataReader比較如下[2](資料來源,以MS SQL Server為例)ADO.NET兩大物件的比較DataSetDataReader連接資料庫(Connection)(不需要,因為SqlDataAdapter會自動開啟連結,使用後自動關閉)SqlConnection.Open()執行SQL指令1. Select2. Delete/Update/InsertSqlDataAdapter1. .Fill()方法2. .Update()方法SqlCommand1. .ExecuteReader()方法2. .ExecuteNonQuery()方法資料指標的 移動DataSet類似資料庫行為的資料快取。這些資料將存放在記憶體裡面,所以可以自由靈活地操作內部資料。讀取資料時,只能「唯讀、順向(Forward)」的動作。如何處理資料庫與 資料表?可以處理複雜的資料庫關聯與多個DataTable、DataView。透過使用者自訂的SQL指令來存取。適合處理單一的資料表。消耗資源較大小,而且快速分頁功能(Paging)有無
[程式設計] 連結資料基本Steps(以連結SQL Server為例):
- 建立SqlConnection.
- 建立SqlCommand
- 把資料放入載體(如datareader)
- 流程如下圖所示[3]
[程式設計] 連結Oracle資料庫 [4]
- 在 [伺服器總管] 中,以滑鼠右鍵按一下 [資料連接],再按一下 [加入資料連接]。
- 在 [資料提供者] 中,按一下 [.NET Framework Data Provider for OLE DB] ,然後資料來源選擇 [Oracle資料庫],按一下[確定]。
- 鍵入您要存取的資料庫所在的伺服器位置。
- 在登入至資料來源時,鍵入要用於驗證的密碼。
- 請按一下 [確定]。
參考資料:
1. http://msdn.microsoft.com/zh-tw/library/ms254509(v=vs.80).aspx msdn台灣
2. http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/15/4919.aspx MIS2000 Lab.的 ASP.NET 4.0 專題實務/教學與分享 (Official Site)
2. http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/15/4919.aspx MIS2000 Lab.的 ASP.NET 4.0 專題實務/教學與分享 (Official Site)
3. moodle.ncnu.edu.tw/mod/resource/view.php?id=96526 C#與資料庫連線與存取
4. http://msdn.microsoft.com/zh-tw/library/cc437980(v=vs.71).aspx 建立到Oracle資料庫的連接
持續更新中....
Comments
Post a Comment