热交换器被认为是工业过程中广泛使用的最常见类型的交换器之一。该交换器由一个不同尺寸的容器组成,其中包含许多管子。传递热量的速率取决于几个因素,例如进料温度和湿度、外壳直径、管的数量、管的几何形状、挡板间距和切割间距。因此,温度分析对于保持管内正确的温度并诊断其中的故障变得非常重要。采取正确的措施可以增加设备的容错能力。
无线传感器网络已安装在许多工业应用中,例如民用基础设施的结构监测、水轮机的振动分析等,并且在消除许多工业并发症方面做得非常好。
在本教程中,我们将介绍无线温度和湿度传感器及其在热交换器热分析中的优势。所以在这里我们将演示以下内容:
软件规范
硬件规格
这些是工业级长距离温度和湿度传感器,传感器分辨率为 ±1.7%RH ±0.6° C。仅由 2 节 AA 电池(随附)供电,使用寿命为 500,000 次无线传输,您可以期望实现高达长达 10 年的电池寿命取决于环境条件和传输间隔可以由您选择。可选地,该传感器可以由外部供电。这些传感器的范围为 2 英里,带有板载天线。使用网状网络架构,该范围可达到 28 英里。
我们从无线温度和湿度传感器获得以下值:
然后在 Azure IoT 中心对这些数据进行可视化和分析。若要开始设置 Azure IoT 中心,请阅读本教程。为了发送值 Azure IoT 中心,应遵循以下过程。
Azure IoT 中心遵循 MQTT 协议以发布和订阅数据。
public static async Task Run(HttpRequestMessage req, TraceWriter log)
{
double humidity;
int rawTemp;
double Ctemp;
double Ftemp;
double voltage;
string utcEnque;
string devFormat;
string utcProcess;
log.Info("C# HTTP trigger function processed a request: " + content);
JArray array = JArray.Parse($"{await req.Content.ReadAsStringAsync()}");//parsing the JSON array
foreach(dynamic message in array){
utcProcess = message.EventProcessedUtcTime;
utcEnque = message.EventEnqueuedUtcTime;
humidity = ((message.Humid1)*256 + (message.Humid2))/100;
rawTemp = ((message.Temp1)*256 + (message.Temp2));
Ctemp = rawTemp /100.0;
Ftemp = Ctemp *1.8 + 32;
int bat = ((message.Bat1)*256 + (message.Bat2));
voltage = 0.00322 * bat;
string utcTime = utcProcess.ToString();
DateTime localDateTime = DateTime.Parse(utcTime);
DateTime utcDateTime = localDateTime.ToUniversalTime();
string usTimeZone = "US Eastern Standard Time";
TimeZoneInfo ust = TimeZoneInfo.FindSystemTimeZoneById(usTimeZone);
DateTime dateTime = TimeZoneInfo.ConvertTime(utcDateTime, ust);
log.Info(dateTime.ToString("dd/MM/yyyy HH:mm:ss")); }return req.CreateResponse(HttpStatusCode.OK, "Executed"); } public class Message{
[JsonProperty("temp1")]
public int temp1 { get; set; }
[JsonProperty("temp2")]
public int temp2 { get; set; }
[JsonProperty("humid1")]
public int humid1 { get; set; }
[JsonProperty("humid2")]
public int humid2 { get; set; }
[JsonProperty("bat1")]
public int bat1 { get; set; }
[JsonProperty("bat2")]
public int bat2 { get; set; } }
我们正在使用 Power BI 来可视化数据。它提供了分析数据的交互式方法。此数据可以以折线图、条形图、饼图等形式进行解释。首先在 Power Bi 中创建一个帐户并登录到您的帐户。在上一篇文章中,我们设置了 Power Bi 并使用流分析作业将数据发送到 Power Bi。在这篇文章中,我们使用 Azure 功能将传感器数据发送给 Bi。要设置 Power Bi,请阅读此博客。
有四种方法可以将数据发送到 Power Bi:
在我们的例子中,我们使用 Power BI API 并从 azure 函数向 Power BI 发送 HTTP 响应。可视化面板中列出了不同的图形、折线图、Pi 图等。我们可以通过从可视化面板中选择任何图表来创建图表。
我们还可以将数据导出为 Excel 表格或 CSV 格式。在后期可用于数据分析。
从 JSON 中解析所有 JSON 对象,并获取温度、湿度等的真实值。这里的产品是一个产品类对象,我们在其中存储解析的值。
Product product = new Product();foreach(dynamic message in array){humidity = ((message.humid1)*256 + (message.humid2))/100;
rawTemp = ((message.temp1)*256 + (message.temp2));
Ctemp = rawTemp /100.0;
Ftemp = Ctemp *1.8 + 32;
int bat = ((message.bat1)*256 + (message.bat2));
voltage = 0.00322 * bat;
utcProcess = message.EventProcessedUtcTime;
utcEnque = message.EventEnqueuedUtcTime;
product.Ctemperature = Ctemp;
product.Ftemperature = Ftemp;
product.humid = humidity;
product.battery = voltage;
//product.dateTime = ;
product.EventProcessedUtcTime=utcProcess;
product.EventEnqueuedUtcTime=utcEnque; }public class Product{
public double Ctemperature{get; set;}
public double humid{get; set;}
public double battery{get; set;}
//public double dateTime{get; set;}
public string EventProcessedUtcTime { get; set; }
public string EventEnqueuedUtcTime { get; set; }
public double Ftemperature{get; set;}}
string connString = "https://api.powerbi.com/beta/***************"; HttpClient client = new HttpClient();
string output = JsonConvert.SerializeObject(product); HttpContent httpContent = new StringContent("[" + output + "]");
HttpResponseMessage response = await client.PostAsync(connString, httpContent); response.EnsureSuccessStatusCode();
在这里,我们在不同的日期和时间可视化我们的传感器数据。我们可以分别看到不同日子内湿度、温度和电池使用量的百分比变化。
软件即服务(Saas 应用程序)提供了另一个令人惊叹的功能,称为 SendGrid。在 Microsoft Azure 中,SendGrid 支持迅速将电子邮件通知传递给不同的用户。
此博客中描述了发送网格的设置。
在这里,我们将描述使用 Azure 功能发送电子邮件通知的代码。
#r "SendGrid"using Newtonsoft.Json;using Newtonsoft.Json.Linq;
using System.Net;using System.Net.Mail;
using SendGrid.Helpers.Mail;using Microsoft.Extensions.Logging;
string fromMail="enter from mail";string toMail="enter to mail";int smtpPort = 587;
string smtpUserName="Enter your smtp send grid username";
string smtpPassword = "enter sendgrid password";
string smtpHost = "smtp.sendgrid.net";
string subject = "Temperature Alert!!!";
string mailMessage = "Temperature has reached beyond 30";
MailMessage mail = new MailMessage(fromMail,toMail);SmtpClient smtpClient = new SmtpClient();
smtpClient.Port = smtpPort;smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = smtpHost;
smtpClient.Credentials = new System.Net.NetworkCredential(smtpUserName,smtpPassword);
mail.Subject = subject;mail.Body = mailMessage;
smtpClient.Port = smtpPort;smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = smtpHost;
smtpClient.Credentials = new System.Net.NetworkCredential(smtpUserName,smtpPassword);
mail.Subject = subject;mail.Body = mailMessage;
if(product.Ctemperature > 30.00){ smtpClient.Send(mail); }
此设置的固件可在此GitHub 存储库中找到。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !