Bonjour, habravchane! Aujourd'hui, je vais vous parler de l'intégration d'Arduino avec un PC sous Windows et d'autres appareils. C'était déjà en 2018, mes cartes Arduino de différents modèles sont finalement venues à moi.
Je voulais depuis longtemps construire une maison intelligente et j'ai décidé d'utiliser cette plate-forme particulière. Pourquoi? Eh bien, je connais assez bien C # et un peu de C ++, mais comme vous le savez, le firmware pour Arduino est écrit sur les avantages modifiés. De plus, la plateforme dispose d'un convertisseur numérique-analogique, ce qui simplifie le travail avec des capteurs analogiques. De plus, la plate-forme est très célèbre et possède une grande base modulaire.
Avec tout mon amour pour les microcontrôleurs, je préfère tout calculer sur Windows, et toute ma force réside dans les applications .NET. C'était mon problème. Je ne pouvais tout simplement pas saisir l'environnement de développement Arduino IDE. Je devais m'y habituer. Cependant, les projets d'échauffement simples fonctionnaient toujours principalement sur un PC. Qui s'intéresse au sujet, je demande une coupe!
Ma première expérience a été un simple échange d'informations via USB (port série), à travers lequel j'ai envoyé des paquets avec des commandes simples pour effectuer des actions sur le microcontrôleur. Par exemple, j'ai utilisé le modèle Arduino UNO.

Il s'agit de l'interface du programme pour Windows. "Squeak" - donnant un signal à une broche (broche Arduino) au numéro 10 d'un signal électrique constant, qui est alimenté par le buzzer que j'ai connecté. «LED» - alimentation en courant continu vers la broche 13, qui par défaut sur le contrôleur est connectée à la LED intégrée, qui sert à déboguer les croquis (firmware).

Cependant, toutes ces fonctionnalités reposent précisément sur le contrôleur.
Que fait le programme? Envoie simplement des numéros au port! "0" signifie désactiver
LED, "1" - allumer la LED, "2" - éteindre le buzzer, "3" - allumer
buzzer. Tout se fait à l'aide des éléments de base de Windows Forms. Si
qui sont intéressés, le taux d'échange de données est de 115200 bauds. Merci
Pour cela, je peux facilement visualiser le contenu des messages du microcontrôleur dans
Arduino IDE.

Je pense que beaucoup voulaient maintenant savoir ce qu'il y avait dans le firmware du microcontrôleur. Comme c'était il y a relativement longtemps, il n'était pas facile de rechercher le code du firmware Arduino, mais le fichier était toujours trouvé!
Code entierA mangé quelque chose, il s'agit d'une ancienne version du fichier, sans buzzer, uniquement avec une LED.
int i = 0; // int led = 13; void setup() { Serial.begin(115200); // pinMode(led, OUTPUT); // 13- } void loop() { i = i + 1; // String stringOne = "Info from Arduino "; stringOne +=i; // Serial.println(stringOne); // char incomingChar; if (Serial.available() > 0) { // incomingChar = Serial.read(); // LED switch (incomingChar) { case '1': digitalWrite(led, HIGH); break; case '0': digitalWrite(led, LOW); break; } } delay(300); }
Cependant, ce n'est qu'un exemple. La seule chose - ce système devrait avoir un concentrateur - c'est-à-dire le point d'intersection de tous les appareils. Et cela détruit instantanément toute la décentralisation du système.
D'où la conclusion - la méthode d'utilisation du hub ne convient qu'à la collecte et à la gestion des informations. Un concentrateur est nécessaire, par exemple, pour accéder aux appareils sur Internet, mais pas comme point de communication clé entre eux.
Supposons que nous pouvons connecter tous les appareils en utilisant I2C ou en utilisant notre propre protocole. Mais comment déposer des données dans le hub? Et en général, qu'est-ce qui servira de hub? Option 3:
- Hub depuis le routeur.
- Hub d'une autre carte Arduino.
- Hub de Raspberry Pi.
Examinons tout à tour de rôle. Donc, le routeur. Pour commencer, le routeur est nécessaire non seulement, mais avec Linux à bord et un port USB pour connecter
n'importe quelle carte Arduino du système. Tout cela parce que le réseau se composera d'un grand nombre d'appareils et d'un «chat» général, où tous les appareils envoient des messages sur leur état. À partir des routeurs, par exemple, «Linksys E2100L 802.11b / g / n» convient.

Comme vous pouvez le voir, ce routeur a un connecteur USB, et les caractéristiques montrent que tout tourne sous Linux. Personnellement je ne l'ai pas utilisé, mais selon les caractéristiques il nous conviendra. Et ce n'est
PAS une publicité.
Dans le cas d'un routeur, vous pouvez supprimer des données sur un port série, tout comme sous Windows, et sous Linux, vous pouvez exécuter un script - un gestionnaire de messages (désolé, si quelque chose n'est pas appelé de cette façon, je ne suis tout simplement pas familier avec Linux).
Considérez l'option 2. Une autre carte Arduino. Les modèles Nano, Mini, Micro ne conviennent plus ici. Besoin d'un modèle Arduino, UNO ou MEGA. Mais ne connectez pas la carte au réseau. En option, utilisez Arduino UNO WI-FI, ou ce qui est plus fiable Arduino Yun ou Tian. Les problèmes de ce dernier sont un téléchargement et un prix relativement longs, et par fonctionnalité ils ressemblent au même routeur, car ils fonctionnent sous Linux.
Il est préférable d'utiliser le soi-disant Ethernet Shield. Il s'agit d'une carte d'extension pour Arduino, qui est portée sur le dessus et vous permet de créer un simple serveur WEB sur votre appareil avec de simples scripts PHP pour traiter les informations d'autres appareils sur le réseau.

Certains modèles de cette carte d'extension sont équipés d'un emplacement pour une carte mémoire micro-sd, qui permet une journalisation locale en plus de la télécommande.
Option 3. Presque la même que la précédente et encore moins que j'aime. Utilisation d'un micro-
ordinateur Raspberry Pi. C'est un ordinateur. D'accord, pour raccrocher un ordinateur entier pour cette tâche, même s'il est très faible - un gaspillage supplémentaire de ressources. À la fois monétaire et informatique. Personnellement, j'utiliserais Raspberry Pi uniquement comme serveur de surveillance vidéo ou comme programme prêt à l'emploi pour gérer une maison intelligente comme Major DoMo et autres. Vous pouvez également l'utiliser pour des tâches telles que les bots dans les messageries instantanées et les algorithmes complexes pour contrôler le microclimat, ou dans le cas le plus improbable, vous pouvez y mettre de l'intelligence artificielle.

Comme vous pouvez le voir, le Raspberry Pi 3 a:
- 4 ports USB
- 1 port Ethernet;
- 1 port HDMI
- Wi-Fi
- Interface DSI pour connecter un écran Raspberry Pi à un écran tactile;
- Emplacement pour cartes micro-sd.
Et bien plus. Mais malgré tous les avantages, le Raspberry Pi ne convient pas comme hub.
Conclusion: Arduino UNO + Ethernet Shield est plus approprié comme hub pour moi personnellement. De toutes les options envisagées, c'est la moins chère et la plus simple à mettre en œuvre.

Dans cette configuration, l'opérabilité du système ne dépend pas du concentrateur. Et même si le concentrateur tombe en panne, cela n'affectera pas les performances du réseau lui-même. Le réseau ne perdra que l'accès à Internet.
Je pense que la première partie peut être complétée à ce sujet. A très bientôt!