我正在使用Arduino UNO。我想将arduino传感器值存储到SQL数据库,从该数据库我想通过ASP.NET Web浏览器向用户显示存储在数据库表中的值。我也在使用以太网盾。 我发现这个方法是由PHP完成的,但我想在C#中做到这一点。我怎么能这样做?
答案 0 :(得分:1)
取决于你想做什么......
如果你想在Arduino上运行一个C#应用程序,而你的Arduino有一个ARM Cortex处理器,那你就有机会了。如果它有英特尔夸克(x86-32)或Atmel AVR(8位),那么你运气不好。
因此,如果您有ARM处理器,则需要下载Visual Studio 2017(社区版 - 免费)。然后,您需要安装.NET Core 2.0预览。从那里,您可以编译一个独立的Linux二进制文件,目标是ARM。如果您的Arduino可以运行Linux发行版,结果应该运行。但是,我怀疑你会发现一个适合32K的linux版本 - 如果你这样做,你可以编译它并将其上传到Arduino。
如果您的意思是"如何从Arduino"获取传感器数据,那么您可以使用System.IO.Ports,也可以在此处使用C#Arduino USB驱动器: https://github.com/christophediericx/ArduinoDriver
接下来,您需要一个关系数据库或NoSQL数据库来存储传感器信息。 由于您可能只是一个刚启动的Windows用户,我建议您下载sql-server express和SQL-server management studio Express。如果您不是Microsoft的粉丝,如果您不想安装任何东西,也可以使用PostgreSQL或SQLite。 Firebird也是一个不错的嵌入式数据库。如果您的写入频率极高,并且需要多台计算机来存储结果,那么您应该使用Cassandra(NoSQL) - 但是,Cassandra不适合初学者,也不适合PostgreSQL,SQLite或Firebird。所以我建议你使用SQL-Server Management Studio和SQL-Server Express。
如果您还安装了SQL-Server-data-services,您还可以使用ReportingService输出您的测量结果,它具有易于过滤和多种输出格式(HTML,Excel,PDF,PowerPoint,Word,TIFF)的额外好处,图形,XML,CSV),你自己没有太多的工作。那你就不需要任何ASP.NET应用程序了。
但是,如果要在自己的数据库表中输出数据,则需要SQL-Server ADO.NET驱动程序(System.Data.SqlClient)来访问SQL-Server express数据库。对于PostgreSQL,您需要PostgreSQL-ADO.NET驱动程序(Npgsql),而对于SQLite,您需要System.Data.SQLite。
您可以使用DataGridView在ASP.NET Web表单中输出表,并在Page_Load事件中执行DataBind。或者您可以使用更现代的ASP.NET Core框架,编写REST服务,并使用JavaScript和AJAX / JSON显示表(使用像HandsonTable或SlickGrid这样的JavaScript网格)。您需要使用Newtonsoft.JSON将数据序列化为JSON。
或者您可以使用Web套接字和Web套接字实时DataGrid实时显示该表。