首页 > 分享 > 智能花盆(三)

智能花盆(三)

智能花盆(三)

最新推荐文章于 2024-10-08 01:13:38 发布

yuanS7 于 2019-03-26 17:31:31 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

数据库 id:varchar(20)nodemcu设备编号ip:varchar(20)nodemcu的ip地址temp:float(5.2)温度humi:float(5.2)湿度 Java Web开发

将对如下的代码文件进行讲解

SensorData

对应上面数据库的内容

OperateSql

进行数据库操作

AppRequestData_servlet

app向服务器请求数据时访问的servlet

String id = request.getParameter("id").toString();

SensorData data = OperateSql.queryData(id);

Gson gson = new Gson();

String st = gson.toJson(data);

try(PrintWriter out = new PrintWriter(response.getWriter())){

out.println(st);

out.flush();

}

app发送id号给这个servlet,servlet根据唯一的id号查询数据,然后返回给app。

SensorData_servlet

NodeMcu发送数据给这个servlet,同时在这个servlet中更新数据库。

AppControl_servlet

app发送信息给这个servlet来控制NodeMcu

String id = request.getParameter("id").toString();

String flag = request.getParameter("flag").toString();

SensorData data = OperateSql.queryData(id);

String ip = data.getIp();

boolean tick = false;

try {

Socket client = new Socket(ip, 80);

client.setSoTimeout(10000);

try(PrintStream out = new PrintStream(client.getOutputStream());) {

out.println(flag);

System.out.println("与设备:"+id+"通信成功");

tick = true;

}

client.close();

}catch(IOException e) {

System.out.println("与设备:"+id+"通信失败");

}finally {

try {

try(PrintWriter out = new PrintWriter(response.getWriter())){

if(tick)

out.println("success");

else

out.println("fail");

out.flush();

}

}catch(IOException e) {

}

}

}

app发送了id号和一个flag标志给这个servlet,但是我这里只是做了一个简单的控制,所以flag可有可无,只要能触发这个servlet就可以了。

servlet根据接收到的id查询数据库,得到对应设备的ip地址。

然后和NodeMcu间建立一个socket链接,发送flag过去,同样能触发NodeMcu的端口监听就行。

相关知识

智能花盆app
智能花盆设计报告
分布式一体化远程智能花盆
一种智能花盆的控制系统、智能花盆及其控制方法与流程
智能花盆app免费下载
智能花盆需求分析和项目计划书.docx
科技绿意,智慧养护 智能花盆 智能设备工业设计案例
基于单片机的智能花盆
内监控式智能花盆的制作方法
基于单片机的智能花盆系统设计

网址: 智能花盆(三) https://m.huajiangbk.com/newsview629048.html

所属分类:花卉
上一篇: 智能花盆(一)
下一篇: 用智能花盆可上网淋花