传感器连接mysql_获取传感器数据并传入数据库-HTTP/POST/ASP.NET

获取传感器数据并传入数据库-HTTP/POST/ASP.NET

很久前,做过传感器数据采集相关的小项目,需求是通过单片机IO收集传感器数据,然后通过网络模块(GSM/WI-FI)作为客户端,将数据(JSON)通过TCP/IP协议上传至服务器TCP端口。同时,服务器上运行监听程序,解析JSON随后转存到数据库。

047f753206af09d8ebf9cb42b306e180.png

这种模式在实际应用中的效果并不理想,当时遇到的问题有:

Client/Server之间建立连接需要较长时间。 需要维持心跳,如果使用GSM模块会产生较多数据流量。 Server需要监听/解析/转存TCP端口数据的程序,如果数据量较大,稳定性未知。

最近想到用HTTP POST请求,将传感器获取的数据直接POST到Web服务器后,通过后台服务处理存储到数据库,且现在部分项目获取传感器数据后有通过Web方式展现(数据可视化)的需求,编码简单,逻辑清晰。

f4583328cebe2667855d081f8ef03dab.png

建立数据库

fc2fc02809e28838ee65837de82989aa.png

Web服务端(ASP. NET)

建立ASP.NET空网站,目标框架 .NET Framework4.0,添加一个Web服务。

dbbb324a806c838fc96b3badcd8b75b9.png

这里的WebService.asmx作为之后的请求接口

using System;

using System.Data;

using System.Configuration;

using System.Data.SqlClient;

using System

  • 5
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用C#实现HTTP POST请求,设置Header并获取JSON数据并保存到MySQL数据库的示例代码: ```csharp using System; using System.Net; using System.IO; using System.Text; using MySql.Data.MySqlClient; using Newtonsoft.Json; namespace HttpPostExample { class Program { static void Main(string[] args) { // 设置POST请求的URL地址 string url = "https://example.com/api/data"; // 设置POST请求的Header WebRequest request = WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/json"; request.Headers["Authorization"] = "Bearer your_access_token_here"; // 构造POST请求的JSON数据 string postData = JsonConvert.SerializeObject(new { name = "John", age = 30 }); // 将JSON数据写入请求流中 byte[] byteArray = Encoding.UTF8.GetBytes(postData); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); // 发送POST请求并获取响应 WebResponse response = request.GetResponse(); dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); string responseFromServer = reader.ReadToEnd(); // 关闭流 reader.Close(); dataStream.Close(); response.Close(); // 解析JSON数据并保存到MySQL数据库 dynamic data = JsonConvert.DeserializeObject(responseFromServer); string connectionString = "server=localhost;database=mydatabase;uid=myusername;password=mypassword;"; using (MySqlConnection connection = new MySqlConnection(connectionString)) { connection.Open(); MySqlCommand command = connection.CreateCommand(); command.CommandText = "INSERT INTO mytable (name, age) VALUES (@name, @age)"; command.Parameters.AddWithValue("@name", data.name); command.Parameters.AddWithValue("@age", data.age); command.ExecuteNonQuery(); connection.Close(); } Console.WriteLine("Data saved to database successfully."); } } } ``` 在上面的示例代码中,我们首先设置POST请求的URL地址和Header,然后构造POST请求的JSON数据并将其写入请求流中。接下来,我们发送POST请求并获取响应,并将响应的JSON数据解析并保存到MySQL数据库中。最后,我们输出一条消息表示数据已成功保存到数据库中。 请注意,示例代码中使用了Json.NET库来处理JSON数据。如果您没有安装此库,请使用NuGet包管理器安装它。您还需要将MySQL.Data.dll添加到您的项目引用中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值