从Microcontroller连接到SQL Server(Arduino或Fez与.Net Micro Framework)

时间:2010-09-16 21:55:36

标签: .net sql microcontroller arduino .net-micro-framework

我正在寻找示例,教程,或只是“这个+这个应该有用”,用于从诸如Arduino板之类的微控制器读取和写入SQL服务器(2008)。我还查看了(并且可能会使用)带有.Net Micro Framework的设备,例如Fez Cobra。 Micro Framework不包含ADO。 我确信这将涉及一些XML,但我无法弄清楚要进一步调查哪种技术。我不想让PC应用程序充当中间人。

谢谢!

6 个答案:

答案 0 :(得分:5)

老实说,我会创建一个位于数据库前面的瘦服务,并使用像protobuf这样的轻量级服务来将数据导入到您的数据库中。

我怀疑你是否能够在AVR的有限功率和内存中实现TDS

答案 1 :(得分:1)

还不确定你的问题是什么......标签“arduino”让我觉得你在询问Arduino代码,但下面的评论让我怀疑你是在问.NET的东西。如果问题是如何管理Arduino方面的问题,这是一个试探性的答案。

方法1:使用串行通信和代理

在Arduino上,我只是在串口上输出SQL查询,如下所示:

Serial.begin(115200);
Serial.println("INSERT INTO table_name VALUES (value1, value2, value3,...);");

在服务器端(或用于访问Internet的计算机一侧),我会编写一个简单的脚本,打开与DB的连接并将查询转发给它。这可以通过 CLI命令或在给定端口上打开网络连接来实现。我不使用Windows / .NET等...但是在GNU / Linux机器上,使用python和mysql,我会编写的概念验证代码看起来像(感觉:未测试!):

import os, serial

self.ser = serial.Serial("/dev/ttyUSB0", 115200)
query = self.ser.readline().strip()
return os.popen("mysql -u<my_usr> -hlocalhost -p<my_pass> -e" + query)

方法2:使用lan屏蔽或直接使用Arduino LAN板

后者有时会很快发货(如果您对此感到好奇,请参阅this presentation)。第一个是already available。为它编写代码应该很容易(参见docs)。结果应该是(UNTESTED):

Serial.begin(<speed>);
Ethernet.begin(<mac_number>, <ip>);
Client client(<server>, <port>);
client.println("GET <path> HTTP/1.0");
while (client.available()) {
  char c = client.read();
  Serial.print(c);
}

HTH!

答案 2 :(得分:0)

我不知道你是如何得到XML的想法的,但我建议你看一下Microsoft SQL Server protocol documentation,这会让你很清楚你实际需要实现什么来实现你的SQL服务器。

答案 3 :(得分:0)

取决于几个参数:

1.0您通过串口连接到主机PC。

在主机PC上构建一个客户端应用程序,它通过串口接收命令,并使用ADO或您喜欢的任何方式将这些命令转换为sql。

2.0您正在使用以太网屏蔽。

在这种情况下,您现在有几个选项:

2a上。连接到Web服务并使用Soap或类似的http协议发送命令,服务将转换为数据库命令。

2B。尝试至少实现TDS协议的一个子集并直接连接到sql server并直接向它发出命令。

答案 4 :(得分:0)

您可以在SQL Server中设置HTTP端点,然后向其发送HTTP put命令。

答案 5 :(得分:-1)

看看http://www.logicdata.it/sqleng,他们有一个很好的SQLServer for micros。