首页 > 行业应用 >其他行业电路 > 基于物联网的水管理系统设计方案

基于物联网的水管理系统设计方案

来源:互联网发布者:奥特man123 关键词: 传感器 物联网 远程控制 更新时间: 2024/08/02

一种基于物联网的水管理系统,设计使用远程控制的水传感器进行智能数据库和管理。

项目背景:

这个项目的源头是使用智能的智能水管理。

通过使用自动化的水量值,我们可以测量个人。该显示的金额在网站上测量。如果在网站上发布更多给定的水量通知,显示过度使用。

用户可以通过网站连接到服务器,或者关闭服务器。

如果据此,并通过报告通知用户通知报告中的流量显示检测。

这可以说今天房屋里的水量可以衡量,因为里面的学生对他们使用的水量没有把握。通知他们的使用情况浪费了。

一个漏水的估计每年水量会增加400滴,相当于一升水。平均一个人每天 浪费

0-45分钟。为了它,它是每人连接智能水量的30%。

是为主要城市或房屋定制型的(拥有大量用户)并为用户定制的系统,但,被创建为方便用户定制的系统。

步骤

1:连接将舵的连接到终端的终端进行数据传输3,将传感器的数据连接到终端的第4步。

第2步:在编辑连接的SSID和密码后,将上传到启动板。

3步:到Web浏览器第一次浏览IP复制地址。

第4步:通过传感器倒水,关闭页面查看流量值是否正在发生变化。点击和打开按钮以移动服务器。

关于所用硬件的进一步评论

CC3220

应用子系统一个频率为80 MHz的行业标准ARM Cortex内核。用于Wi-Fi网络证书处理器包、Wi-Fi证书和凭证包含的MCU运行服务管理器。

借助上Wi-Fi、强大的安全协议,无需任何Wi-Fi硬件就可以提升魔梯速度。CC3220MOD将所有必须的系统级组件(包括时钟、SPI设备、互联网设备的)集成到射频开关和无源设备LGA封装指南,以实现实现组件和程序中的PCB设计。CC320MOD作为完整的平台解决方案提供,软件、示例应用、工具、用户和编程、参考

CC3200000计数器(CC320000)立即调用(CC32000)上的输出端。然后,这个函数计算到的总数(检测)。

传传感器

这些水的实际测量需求太重要,因此测量水在中非常重要。有许多用于水的不同类型的水管测量系统的水量管理技术,但都涉及到水的流量管理,但都包含本文已经呈现出水感传感器的剧情介绍,并在开发中帮助制作了水幕的英雄。

霍尔静态水传感器

经济角度来看,是从非常被用于测量的系统翻译 2 和 0 传感器的性能证明。每个传感器与水线转水容易,并包含一个风传感器用于,通过它的测量量。有一个集成的天线天线,圈传感器,输出一个车的电流。传感器“脉冲”输入根线:红色/VCC(5-24V DC)/GND(0V)和OUT(输出),黑色/黑色/GND(黑色)。通过计算/计算

根据传感器的输出,我们可以使用适当的小时转换公式轻松计算出水流量(升/小时-L/)。

可以通过各种不同的技术预测确定水的速度。在这种基本情况下,流水关系是 Q=VxA,管道的水的总,流量的平均,A 是流量管道的管道(与管道的液体的粘度、密度和抑制力会影响水的接触)。

• 频率脉冲(Hz) = 4.5Q,Q 流量是升/分钟为单位的

• (分钟升/小时)频率频率 x 6.5Q

人:

• 传感器频率 (Hz) = 4.5* Q (升/分钟)

• 时间升= Q分钟*的(秒)/60(秒)

• 升频率(脉冲/秒)4.5)*时间的时间/秒)/60

• 升 = 脉冲 / (4.5 *60)

将水流传感器连接到CC(红色)和0传感器的连接。 P03。请注意,水流量传感器不是耗电型;它在5V DC输入时最大消耗15-20mA!

电机伺服器

Futaba S3003 - 伺服标准

规格

制作:模拟

尺寸:4.8V:44.00 oz-in (3.17 kg-cm);6.0V:57.00 英寸(4.10公斤-厘米)

速度:4.8V:0.23 秒/60°;6.0V:0.19 秒/60°

尺寸:长度:1.57英寸(39.9毫米)

宽度:0.79 英寸(20.1 毫米)

高度:1.42英寸(36.1毫米)

齿轮类型:塑料

旋转/支撑:衬套

旋转范围:60°

周期周期:30 ms

脉冲脉冲:500-3000 µs

连接器类型:J

因为电机使用反射来光的位置,所以您可以合理地使用伺服伺服器的位置,该位置被移动服务器非常地确定地光的、旋转的视线、或移动机器人的传感器、腿部、控制位置。等。伺服电机体积小,而且由于它们控制着其运动的电路,它们可以直接连接到CC3220。

具有以下连接的电机伺服器:

• 黑色/棕色地线。

• 红色电源线(约5V)。

•黄色或白色PWM线。

在将电源和接地端连接到接地端 20 到 CC32 5VPWM 输入端将连接到接地端。 CC 输出端之一。

项目清单:

代码:

#ifndef _CC3200R1M1RGC_
// 不包括 CC3200 LaunchPad 的 SPI
#include
#endif
#include

// 您的网络名称也称为 SSID
char ssid[] = "Nikhil";
// 你的网络密码
char password[] = "m3ch4l1f3";

// 您的网络密钥索引号(仅 WEP 需要)
int keyIndex = 0;
诠释伺服=3;
角度;
整数脉宽调制;
整数=0;
国际水=0;
volatile int flow_frequency;// 测量流量传感器脉冲
unsigned int l_hour; // 计算的升/小时
unsigned int flowsensor = 4; // 传感器输入
unsigned long currentTime;
无符号长循环时间;
整数标志=0;//跟踪当前抽头状态的变量 (ON/OFF)
int leak=0; //计算泄漏

WiFi服务器服务器(80);//连接服务器到80端口
void flow () //中断函数
{
flow_frequency++;
}
void setup() {
Serial.begin(115200); // 初始化串行通信
pinMode(RED_LED, OUTPUT); // 设置 LED 引脚模式
pinMode(servo,OUTPUT); //将伺服引脚设置为输出

//尝试连接到Wifi网络:
Serial.print(“尝试连接到名为的网络:”);
// 打印网络名称(SSID);
序列号.println(ssid);
// 连接到 WPA/WPA2 网络。如果使用开放或 WEP 网络,请更改此行:
WiFi.begin(ssid, password);
而(WiFi.status()!= WL_CONNECTED){
 // 在我们等待连接时打印点
 Serial.print(".");
 延迟(300);


 pinMode(流量传感器,INPUT_PULLUP);
//digitalWrite(流量传感器,高);// 可选内部上拉
attachInterrupt(digitalPinToInterrupt(4), flow, RISING); // 设置中断
// 启用中断

}

Serial.println(" 你已连接到网络");
Serial.println("等待IP地址");

while (WiFi.localIP() == INADDR_NONE) {
 // 在我们等待 IP 地址时打印点
 Serial.print(".");
 延迟(300);
}

Serial.println(" 获取IP地址");

// 你现在已经连接了,所以打印出状态
printWifiStatus();

Serial.println("在 80 端口启动网络服务器");
server.begin(); // 在端口 80 上启动 Web 服务器
Serial.println("Webserver 已启动!");
}

无效循环(){

flow_frequency = 0;
中断();
延迟(1000);//等待1秒
noInterrupts(); //禁用Arduino上的中断

//开始数学
l_hour = (flow_frequency * 2.25); //将最后一秒的脉冲数乘以 2.25mL
// l_hour= l_hour* 60; //将秒转换为分钟,得到毫升/分钟
//l_hour = l_hour / 1000; //将毫升转换为升,得到升/分钟
总计+=l_hour;//假设流量等于每秒离开水龙头的平均水量,我们将每一秒的流量相加并将它们存储在这个变量
water+=l_hour;
//Serial.println(flowRate); //将变量flowRate打印到Serial
  Serial.print("流量频率为:");
  Serial.println(flow_frequency);

Serial.print("流速为:");
  Serial.println(l_hour,DEC); // 打印毫升/小时
  Serial.print("Total:");
  序列号.println(总计);
 
  //Serial.println("L/小时");
  if (flag==0 && l_hour>0){
泄漏=1;
  }
  if(water>=2000){ //如果流出的水超过阈值,则关闭水龙头
for(angle=60;angle>=0;angle-=5){
servoPulse(servo,angle);}
water=0;
标志=0;
  }
int i = 0;
WiFiClient 客户端 = server.available(); // 监听传入的客户端

if (client) { // 如果你有一个客户端,
 Serial.println("new client"); // 从串口打印一条消息
 char buffer[150] = {0}; // 创建一个缓冲区来保存传入的数据
 while (client.connected()) { // 在客户端连接时循环
  if (client.available()) { // 如果有字节要从客户端读取,
char c = client.读(); // 读取一个字节,然后
Serial.write(c); // 将其打印到串行监视器
if (c == ’ ’) { // 如果字节是换行符

// 如果当前行为空,则连续有两个换行符。
// 这是客户端 HTTP 请求的结束,所以发送一个响应:
if (strlen(buffer) == 0) {
 // HTTP 标头总是以响应代码(例如 HTTP/1.1 200 OK)
 // 和内容开头-type 让客户端知道接下来会发生什么,然后是一个空行:
 client.println("HTTP/1.1 200 OK");
 client.println("内容类型:文本/html");
 客户端.println();

// HTTP 响应的内容跟在头后面:
 /*client.println("

");
 client.println("

欢迎使用CC3200 WiFi Web服务器

");
 client.print("红色 LEDHIGH");
 client.println("LOW
");*/
 client.println(" ");

 client.println("");
 client.println("

虽然我们在海滩附近并且被水包围,但我们在夏天缺水,哦,讽刺的是。SW(a)mp 提供了一些小解决方案来应对这些问题问题。

");
 client.println("

控制点击

开启

");
 client.println("

检测到泄漏:");
 client.println(泄漏);
 client.println("

<



  client.println("

请注意:过度使用

");
 }
 client.println("

");

// HTTP 响应以另一个空行结束:
 client.println();
 // 跳出while循环:
 break;
}
else { // 如果有换行符,则清除缓冲区:
 memset(buffer, 0, 150);
 我 = 0;
}
}
else if (c != ’ ’) { // 如果你得到了除了回车符之外的任何东西,
buffer[i++] = c; // 将其添加到 currentLine 的末尾
}

// 检查客户端请求是 "GET /H" 还是 "GET /L":
if (endsWith(buffer, "GET /H")) {
digitalWrite(RED_LED, HIGH); // GET /H 打开 LED
for(angle=0;angle<=140;angle+=5){ // 切换到
servoPulse(servo,angle);}
flag=1;

}
if (endsWith(buffer, "GET /L")) {
digitalWrite(RED_LED, LOW); // GET /L 关闭 LED
for(angle=140;angle>=0;angle-=5){ //关闭抽头
servoPulse(servo,angle);
标志=0;


}
}
  }
 }
 // 关闭连接:
 client.
 Serial.println("客户端断开");
}
}

//
//一种检查一个数组是否以另一个数组结尾的方法
//
boolean endsWith(char* inString, char* compString) {
int compLength = strlen(compString);
int strLength = strlen(inString);  //比较inString int i

的最后一个“compLength”值;  for (i = 0; i < compLength; i++) {     char a = inString[(strLength - 1) - i];     char b = compString[(compLength - 1) - i];     if (a != b) {       return false;     }   }   返回真; }









void printWifiStatus() {
// 打印您连接的网络的 SSID:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());

// 打印你的 WiFi IP 地址:
IPAddress ip = WiFi.localIP();
Serial.print("IP地址:");
序列号.println(ip);

// 打印接收到的信号强度:
long rssi = WiFi.RSSI();
Serial.print("信号强度 (RSSI):");
串行打印(rssi);
Serial.println("dBm");
// 打印在浏览器中的去向:
Serial.print("要查看此页面,请打开浏览器访问 http://");
序列号.println(ip);
}

void serverPulse(intservo, int angle){ //servo.h 库没有运行,所以这个函数是用来控制舵机使用 pwm
pwm=(angle*11)+500;
数字写入(伺服,高);
延迟微秒(pwm);
数字写入(伺服,低);
延迟(50);
}

提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2024-11-13 08:50

请教看懂原理图需要什么样的基础?
要看懂原理图需要哪些学科知识作为基础? 想学偏软件方面,C和汇编基础比较好,电路理论的基础比较差。 数电模电没学,能不能学嵌入式呢? 请教看懂原理图需要什么样的基础? 顶 当然能学!数电模电 知识是必须的 ,不过你在看某一个具体 的 电路的时候,不懂的部分可以边查边学 。
 h_g_y嵌入式系统
MAX36643667 单电源高速驱动激光二极管
MAX36643667 单电源高速驱动激光二极管 MAX36643667 单电源高速驱动激光二极管
 tonytong电源技术
ADS 下用AK100配置LPC3250环境
新手上路,请教高手! 我使用JTAG提示无法连接,猜想是我电脑并口的问题,因手头有AK100,则想用这个设置,但苦于没有找到相关datasheet。图中所涉及的就是我要设置的东西,希望各位大虾不惜赐教,能贴图最好了 ADS 下用AK100配置LPC3250环境 没搞过帮不上,自己
 暖暖90615ARM技术
10kW全桥移相ZVSPWM整流模块的设计
10kW全桥移相ZVSPWM整流模块的设计 谢谢分享。。。学习一下。
 czf0408电源技术
请问当arm通过网口下载了映像后,为什么tshell执行i没有问题,串口一执行i就死掉?
请问当arm通过网口下载了映像后,为什么tshell执行i没有问题,串口一执行i就死掉? 为了验证串口是否好用,在映像起来后,做了个周期打印的程序,可以在串口打印,没有问题,但是只要一执行i,马上打出部分东东,串口就死掉了,同时通过tshell可以知道tshell任务被挂起了,为
 无域思维ARM技术
EVC4.0支持链表吗?
EVC4.0支持链表吗? EVC4.0支持链表吗? 当然支持了。 可以用stl。 用sort排序,系统不支持,而且定义一个vector的示例变量后, 支持push_back但是不支持.at(i). 斑竹,你如何联系,这样交流方便点,我也在做嵌如式,很快出产品了 都支持啊。 你打开
 jason_zzh嵌入式系统

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved