Se connecter à SQL Server à partir d'un Microcontrôleur (Arduino ou Fès .Net Micro Framework)
Je suis à la recherche d'exemples, tutoriels, ou tout simplement "ce+ceci+cela devrait fonctionner pour la lecture et l'écriture sur un serveur SQL server (2008) à partir d'un microcontrôleur comme la carte Arduino. J'ai aussi regardé (et sera probablement aller avec) des dispositifs avec la .Net Micro Framework tels que la Fès Cobra. Le Micro Framework ne comprend pas ADO.
Je suis sûr que cela va impliquer un peu de XML, mais je n'arrive pas à comprendre la technologie à approfondir. Je ne veux pas avoir une application PC pour faire le lien entre les deux.
Merci!
De la sorte? Comment avez-vous finalement de gérer cela? 🙂
J'ai pas encore fait l'achat d'un Fez. Ils sont souvent en rupture de stock. Je pense que je vais rédiger un service/application pour s'asseoir entre les deux. De ce que j'ai déterminé, SQL Express ne permet pas de services web. Si je me trompe à ce sujet, n'hésitez pas à le dire (je serais ravi d'apprendre que!). Sinon, ce serait la meilleure approche.
J'ai pas encore fait l'achat d'un Fez. Ils sont souvent en rupture de stock. Je pense que je vais rédiger un service/application pour s'asseoir entre les deux. De ce que j'ai déterminé, SQL Express ne permet pas de services web. Si je me trompe à ce sujet, n'hésitez pas à le dire (je serais ravi d'apprendre que!). Sinon, ce serait la meilleure approche.
OriginalL'auteur Tim | 2010-09-16
Vous devez vous connecter pour publier un commentaire.
Honnêtement, je voudrais faire un mince service qui serait de s'asseoir en face de votre base de données et utiliser quelque chose de léger, comme protobuf obtenir les données dans votre micro.
Je doute que vous serez en mesure de mettre en œuvre TDS dans le peu de mémoire et de puissance de un AVR.
en œuvre un webservice client dans arduino/avr semble que ce serait un peu gonflé?
OriginalL'auteur joshperry
Toujours pas sûr de ce que votre question est au sujet de... La balise "arduino" permettez-moi de penser que vous posez sur code Arduino, mais le commentaire ci-dessous me font douter de moi que vous demandez .NET des trucs. Voici une tentative de réponse à la question sur la façon de gérer les choses sur l'Arduino côté.
Méthode 1: en utilisant la communication série et un proxy
Sur l'Arduino, je voudrais simplement la sortie des requêtes SQL sur le port Série, comme ceci:
Sur le côté serveur (ou sur le côté de l'ordinateur que vous utilisez pour accéder à Internet), je voudrais écrire un script simple qui ouvre la connexion avec la base de données et transférer la requête à elle. Cela pourrait être réalisé par commandes CLI ou de l'ouverture d'un connexion réseau sur un port donné. Je n'utilise pas Windows/.NET, etc... mais sur un GNU/Linux, à l'aide de python et mysql, la preuve-de-concept de code que je voudrais écrire ressemblerait à quelque chose comme (ATTENTION: pas testé!):
Méthode 2: utilisation d'un lan bouclier ou directement un Arduino LAN conseil d'administration
Ce dernier sera expédié parfois rapidement (voir cette présentation si vous êtes curieux à ce sujet). La première est déjà disponible. L'écriture de code pour il devrait être mort facile (voir docs ici). Le résultat devrait être quelque chose en bas de la ligne de (non testé):
HTH!
Mise à jour en réponse à votre edit: je mentionner à la fois Arduino et .Net Micro plates-formes, mais le problème est le même. Ni soutenir un moyen intégré de la connexion à SQL, et j'ai de la difficulté à comprendre comment se connecter à SQL sur un bas-niveau. Tout le monde se connecte à SQL à l'aide de classes existantes: pour .NET, il y a ADO, etc.; pour PHP, il y a des classes. Pour Arduino/.Net Micro, il n'y a pas de classes. (suite)
Votre post suppose que vous pouvez vous connecter via une requête GET. C'est super si cela va fonctionner, mais pouvez-vous nous citer un exemple de ce qu'est un complet requête GET ressemblerait un particulier SELECT/INSERT/mettre à JOUR la commande SQL?
Comme indiqué à l'avance, je ne travaille pas sur les plates-formes microsoft, donc je ne peux pas vous donner une testé réponse, encore googler "accès à microsoft SQL server via HTTP", vous bénéficiez de: tinyurl.com/2uh8rev qui (au moins pour un GNU/Linux guy) semble correspondre au projet de loi. Méfiez-vous que mon exemple de code a été conçu comme une preuve de concept: si vous optez pour la solution, je préfère utiliser les POST ou GET over https pour des raisons de sécurité. [un autre commentaire]
TIm - quant à l'existence de classes: Arduino utilise C++, donc vous devriez être en mesure d'utiliser une classe comme ceci: cql.com/cppint.html si vous le souhaitez. J'ai aussi lu sur ce fil: tinyurl.com/32qh6wb que SQL prend en charge un XML/SOAP interface, de sorte que vous pouvez également regarder dans que l'on.
OriginalL'auteur mac
Je ne sais pas comment vous avez eu le XML idée, mais je vous conseille de jeter un coup d'oeil à la Microsoft SQL Server documentation du protocole, ce qui vous donne une assez bonne idée de ce que vous auriez à mettre en œuvre de façon native parlez-en à votre serveur SQL server.
OriginalL'auteur Jim Brissom
En fonction de quelques paramètres:
1.0 Vous êtes connecté via le port série d'un PC hôte.
Construire une application client sur le pc hôte qui commandes reçues sur le port série et se traduit par ces commandes en sql, en utilisant ADO ou ce que vous préférez.
2.0 Vous utilisez un ethernet shield.
Dans ce cas, vous avez maintenant plusieurs options:
2a. Se connecter à un service web et d'utiliser du Savon ou un objet similaire protocole http pour envoyer des commandes, le service sera traduit en commandes de base de données.
2b. Tentative de mettre en œuvre au moins un sous-ensemble du protocole TDS et directement se connecter à sql server et d'exécuter des commandes directement.
OriginalL'auteur Brady Moritz
Vous pouvez définir une adresse HTTP du point d'arrivée dans SQL Server et ensuite l'envoyer HTTP put commandes.
OriginalL'auteur cyberloco
Regarder http://www.logicdata.it/sqleng, ils ont une belle SQLServer pour micros.
OriginalL'auteur Mauro Zanin