生产追溯系统-Wifi+传感器,实现计数器以及监控机器是否停止
物联网听上去是一个高大上的词儿,还有什么大数据、云、智能制造等等,这篇文章主要介绍的是通过 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 将调试信息输出来,看看是否正确,最终的效果如下图所示:
我也顺应潮流,开通了微信公众号,后续会将博客园的文章同步至公众号!
关注以下公众号,您将获得更多资讯!
如果您觉得该文章对您有帮助,请帮忙点个赞,感谢!!
作者:Allen Chen无影
邮箱:allen0717@163.com 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?