物聯網聽上去是一個高大上的詞兒,還有什么大數據、雲、智能制造等等,今天我也往這方面稍微靠一靠,這篇文章主要介紹的是通過 wifi 模塊與傳感器組合,實現感應計數器,應用場景主要如下:
1.統計 SMT 機器過板數量。
2.監測 SMT 機器是否停止運行。
3.AGV障礙物感應預警。
在此之前我們需要准備必備的硬件,wifi模塊與傳感器,分別如下圖所示:
傳感器 + wifi
接線方式如下:
3V --> 3V/5V
OUT-->15
GND-->SND
開發工具為 Arduion 1.8.9,打開工具之后我們開始編程,主要代碼如下:
void loop(){ display.clear(); display.drawString(0, 16, WiFi.localIP().toString()); //顯示 IP 地址 display.display(); delay(300); }
void setup() { display.init(); display.flipScreenVertically(); display.setFont(ArialMT_Plain_16); //設置字體 display.clear(); display.drawString(0, 0, id); display.drawString(0, 20, "..."); display.display(); while(WiFiMulti.run() != WL_CONNECTED) { delay(500); } Serial.begin(115200); delay(10); Serial.print(digitalRead(16)); delay(5000); attachInterrupt(16, CountTimes, FALLING); //觸發條件 }
Api代碼比較簡單,一個寫入數據一個讀取數據:
public string SaveData(System.Web.HttpContext app) { System.Web.HttpRequest req = app.Request; var db = Entity.SqlDB.GetInstance("mts"); int i = 0; Entity.WIFI_AUTO_COUNT wic = new Entity.WIFI_AUTO_COUNT(); if (db.Queryable<Entity.WIFI_AUTO_COUNT>().Any()) { DataTable dt = db.Queryable<Entity.WIFI_AUTO_COUNT>().ToDataTable(); int curr_times = Convert.ToInt32(dt.Rows[0][0].ToString()); wic.TIMES = (curr_times + 1).ToString(); i = db.Updateable(wic) .UpdateColumns(it => new { it.TIMES }) .Where(it => it.FID == "test_key") .ExecuteCommand(); } else { wic.FID = "test_key"; wic.TIMES = "1"; i = db.Insertable(wic).ExecuteCommand(); } MesLog.Logs.AddHourLog(req.Url.ToString()); return "ok"; } public string GetData(System.Web.HttpContext app) { System.Web.HttpRequest req = app.Request; var db = Entity.SqlDB.GetInstance("mts"); var json = db.Queryable<Entity.WIFI_AUTO_COUNT>().Select(it => new { Times = it.TIMES }).ToJson(); if (req["callback"] != null) { return req["callback"].Trim() + "([" + json + "])";//支持Jsonp } return json; }
wifi連接這一部分可以選擇固定IP地址以及網關,也可以采用自動獲取,Api 需要根據實際需求來編寫,接收客戶端的調用。
將資料寫入至模塊以后,我們可以通過Arduion 里面的工具-->Serial Monitor 將調試信息輸出來,看看是否正確,最終的效果如下圖所示:
我也順應潮流,開通了微信公眾號,后續會將博客園的文章同步至公眾號!
關注以下公眾號,您將獲得更多資訊!
如果您覺得該文章對您有幫助,請幫忙點個贊,感謝!!