生产追溯系统-Wifi+传感器,实现计数器以及监控机器是否停止
2019-06-19 15:38
1896 查看
物联网听上去是一个高大上的词儿,还有什么大数据、云、智能制造等等,今天我也往这方面稍微靠一靠,这篇文章主要介绍的是通过 wifi 模块与传感器组合,实现感应计数器,应用场景主要如下:
1.统计 SMT 机器过板数量。
2.监测 SMT 机器是否停止运行。
3.AGV障碍物感应预警。
在此之前我们需要准备必备的硬件,wifi模块与传感器,分别如下图所示:
传感器 + wifi
接线方式如下:
3V --> 3V/5V
OUT-->15
GND-->SND
开发工具为 Arduion 1.8.9,打开工具之后我们开始编程,主要代码如下:
#include "SSD1306Wire.h" 这类似C#里面的引用 #include <WiFiMulti.h> #include <HTTPClient.h> char* ssid = ""; // wifi 名称 char* password = ""; // wifi 密码 void loop(){ display.clear(); display.drawString(0, 16, WiFi.localIP().toString()); //显示 IP 地址 display.display(); delay(300); String url="http://192.168.1.166/api.ashx"; HTTPClient http; http.begin(url); int httpCode = http.GET(); if(httpCode > 0){ Serial.println("Submitted"); } if(httpCode==200){ Serial.println("Result OK"); } http.end(); }
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 将调试信息输出来,看看是否正确,最终的效果如下图所示:
我也顺应潮流,开通了微信公众号,后续会将博客园的文章同步至公众号!
关注以下公众号,您将获得更多资讯!
如果您觉得该文章对您有帮助,请帮忙点个赞,感谢!!
相关文章推荐
- Face++在线接口在Android下的使用,以及简单的Demo实现(判断两张脸是否为同一个人)
- 【分布式系统工程实现】如何检测一台机器是否宕机?
- 实现LVS的持久连接以及健康状态监控功能
- cocos2dx实现橡皮擦效果以及判断是否擦除完毕
- 自定义异步线程池,实现异步请求以及监控当前线程运行情况
- PHP关于检测用户是否登陆,以及设置拦截器(简单实现)
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- ASP.NET MVC中利用AuthorizeAttribute实现访问身份是否合法以及Cookie过期问题的处理之IIS WebSite anonymous Authentication
- c#实现网站监控查看是否正常示例
- js阻止浏览器的默认行为以及停止事件冒泡(用JQuery实现回车提交,兼容IE、FF浏览器) 转
- Javascript实现计数器,定时警告和停止
- js阻止浏览器的默认行为以及停止事件冒泡(用JQuery实现回车提交)
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
- 利用cacti和性能计数器实现自定义远程监控
- 【java项目实践】详解Ajax工作原理以及实现异步验证用户名是否存在(java版)
- 07、一步一步学thinkjs之实现注销以及判断是否登录
- 一起动手实现Windows服务程序(监控网站是否能访问)
- Javascript实现计数器,定时警告和停止
- css的content属性,以及如何通过css content属性实现css计数器?
- 用JS实现的控制页面前进、后退、停止、刷新以及加入收藏等功能