Guten Tag, Habravchane! Heute werde ich Ihnen über die Integration von Arduino in einen PC unter Windows und anderen Geräten berichten. Es war bereits 2018, meine Arduino-Boards verschiedener Modelle kamen endlich zu mir.
Ich wollte schon lange ein Smart Home bauen und habe mich für diese spezielle Plattform entschieden. Warum? Nun, ich kenne C # ziemlich gut und ein bisschen C ++, aber wie Sie wissen, ist die Firmware für Arduino auf den geänderten Pluspunkten geschrieben. Darüber hinaus verfügt die Plattform über einen Digital-Analog-Wandler, der die Arbeit mit analogen Sensoren vereinfacht. Darüber hinaus ist die Plattform sehr bekannt und verfügt über eine große modulare Basis.
Bei all meiner Liebe zu Mikrocontrollern ziehe ich es vor, alles unter Windows zu berechnen, und meine ganze Stärke liegt in .NET-Anwendungen. Das war mein Problem. Ich konnte die Arduino IDE-Entwicklungsumgebung einfach nicht erfassen. Ich musste mich daran gewöhnen. Einfache Aufwärmprojekte funktionierten jedoch immer noch hauptsächlich auf einem PC. Wer sich für das Thema interessiert, bitte um einen Schnitt!
Mein erstes Experiment war ein einfacher Informationsaustausch über USB (serielle Schnittstelle), über den ich Pakete mit einfachen Befehlen sendete, um Aktionen auf dem Mikrocontroller auszuführen. Zum Beispiel habe ich das Arduino UNO-Modell verwendet.

Dies ist die Programmoberfläche für Windows. "Quietschen" - Geben eines Signals an einen Pin (Arduino-Pin) an Nummer 10 eines konstanten elektrischen Signals, das von dem von mir angeschlossenen Summer gespeist wird. „LED“ - Gleichstromversorgung für Pin 13, der standardmäßig am Controller mit der eingebauten LED verbunden ist, die zum Debuggen von Skizzen (Firmware) dient.

All diese Funktionen liegen jedoch genau auf der Steuerung.
Was macht das Programm? Sendet einfach Nummern an den Port! "0" bedeutet deaktivieren
LED, "1" - LED einschalten, "2" - Summer ausschalten, "3" - einschalten
Summer. Alles wird mit den Grundelementen von Windows Forms erledigt. Wenn
Bei Interesse beträgt der Datenaustausch 115200 Baud. Danke
Dazu kann ich einfach den Inhalt von Nachrichten vom Mikrocontroller in anzeigen
Arduino IDE.

Ich denke, dass viele jetzt wissen wollten, was in der Firmware des Mikrocontrollers war. Da es relativ lange her ist, war es nicht einfach, nach dem Arduino-Firmware-Code zu suchen, aber die Datei wurde immer noch gefunden!
Ganzer CodeAß etwas, dies ist eine alte Version der Datei, ohne Summer, nur mit einer 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); }
Dies ist jedoch nur ein Beispiel. Das einzige - dieses System sollte einen Hub haben - ist der Schnittpunkt aller Geräte. Und das zerstört sofort die gesamte Dezentralisierung des Systems.
Daher die Schlussfolgerung: Die Methode zur Verwendung des Hubs ist nur für die Erfassung und Verwaltung von Informationen geeignet. Ein Hub wird beispielsweise benötigt, um auf Geräte im Internet zuzugreifen, jedoch nicht als zentraler Kommunikationspunkt zwischen ihnen.
Angenommen, wir können alle Geräte über I2C oder über unser eigenes Protokoll verbinden. Aber wie kann man Daten im Hub ablegen? Und was wird im Allgemeinen als Drehscheibe dienen? Option 3:
- Hub vom Router.
- Hub von einem anderen Arduino-Board.
- Hub von Raspberry Pi.
Betrachten wir alles der Reihe nach. Also der Router. Zunächst wird der Router nicht nur benötigt, sondern auch mit Linux an Bord und einem USB-Anschluss zum Anschließen eines
beliebigen Arduino-Boards vom System. Alle, da das Netzwerk aus einer großen Anzahl von Geräten und einem allgemeinen „Chat“ besteht, in dem alle Geräte Nachrichten über ihren Status senden. Für Router ist beispielsweise „Linksys E2100L 802.11b / g / n“ geeignet.

Wie Sie sehen können, verfügt dieser Router über einen USB-Anschluss, und die Eigenschaften zeigen, dass sich unter Linux alles dreht. Ich persönlich habe es nicht benutzt, aber je nach den Eigenschaften wird es uns passen. Und das ist
KEINE Werbung.
Im Fall eines Routers können Sie Daten auf einer seriellen Schnittstelle wie unter Windows ablegen und einen Skript-Nachrichten-Handler unter Linux ausführen (Entschuldigung, wenn etwas nicht so heißt, bin ich mit Linux einfach nicht vertraut).
Betrachten Sie Option 2. Ein weiteres Arduino-Board. Nano-, Mini- und Micro-Modelle sind hier nicht mehr geeignet. Benötigen Sie ein Arduino-Modell, entweder UNO oder MEGA. Verbinden Sie die Karte jedoch nicht mit dem Netzwerk. Verwenden Sie optional Arduino UNO WI-FI oder das zuverlässigere Arduino Yun oder Tian. Die Probleme der letzteren sind ein relativ langer Download und Preis, und aufgrund ihrer Funktionalität sehen sie wie der gleiche Router aus, da sie unter Linux funktionieren.
Verwenden Sie am besten das sogenannte Ethernet Shield. Dies ist eine Erweiterungskarte für Arduino, die oben getragen wird und es Ihnen ermöglicht, einen einfachen WEB-Server auf Ihrem Gerät mit einfachen PHP-Skripten zu erstellen, um Informationen von anderen Geräten im Netzwerk zu verarbeiten.

Einige Modelle dieser Erweiterungskarte sind mit einem Steckplatz für eine Micro-SD-Speicherkarte ausgestattet, der neben der Fernbedienung auch die lokale Protokollierung ermöglicht.
Option 3. Fast das gleiche wie das vorherige und am wenigsten gefällt mir. Verwenden eines Mikrocomputers Raspberry Pi. Es ist ein Computer. Stimmen Sie zu, einen ganzen Computer für diese Aufgabe aufzuhängen, wenn auch einen sehr schwachen - eine zusätzliche Verschwendung von Ressourcen. Sowohl Geld als auch Computer. Persönlich würde ich Raspberry Pi nur als Videoüberwachungsserver oder als vorgefertigtes Programm zur Verwaltung eines Smart Homes wie Major DoMo und dergleichen verwenden. Sie können es auch für Aufgaben wie Bots in Instant Messenger und komplexe Algorithmen zur Steuerung des Mikroklimas verwenden oder im unwahrscheinlichsten Fall künstliche Intelligenz dort einsetzen.

Wie Sie sehen können, hat der Raspberry Pi 3:
- 4 USB-Anschlüsse
- 1 Ethernet-Port;
- 1 HDMI-Anschluss
- Wi-Fi
- DSI-Schnittstelle zum Anschließen eines Raspberry Pi-Displays mit einem Touchscreen;
- Steckplatz für Micro-SD-Karten.
Und vieles mehr. Trotz aller Vorteile eignet sich der Raspberry Pi nicht als Hub.
Fazit: Arduino UNO + Ethernet Shield eignet sich für mich persönlich eher als Hub. Von allen in Betracht gezogenen Optionen ist dies die billigste und am einfachsten zu implementierende.

In dieser Konfiguration hängt die Funktionsfähigkeit des Systems nicht vom Hub ab. Und selbst wenn der Hub abstürzt, hat dies keine Auswirkungen auf die Leistung des Netzwerks. Das Netzwerk verliert nur den Zugang zum Internet.
Ich denke, der erste Teil kann hier abgeschlossen werden. Bis dann!