Daher fahren wir mit dem zweiten Teil unserer Geschichte über die Integration der drahtlosen Steuerung nooLite in Hausautomationssysteme fort. In diesem Teil werden wir über das Steuermodul nooLite MT1132 und seine Integration in das beliebte Arduino Mega Server-System sprechen. Dies erweitert die bereits hoch entwickelten AMS-Funktionen durch die drahtlose Steuerung von Lichtern und Elektrogeräten in Ihrem Smart Home.Über den ersten Teil
Im ersten Teil dieser Serie wurde erläutert, wie die drahtlose Steuerung von nooLite funktioniert und wie Sie diese Geräte anhand von Skizzen auf Arduino steuern können. Im ersten Teil wurden detaillierte Informationen zum Anschluss des MT1132-Moduls und seiner Programmierung gegeben. Und es wird uns jetzt sehr helfen.Warum?Weil Arduino Mega Server Arduino ist. Und alles, was im vorherigen Artikel geschrieben wurde, gilt auch für Arduino Mega Server. Bevor Sie diesen Artikel lesen, sollten Sie sich daher mit dem ersten Teil des Zyklus vertraut machen.Ein paar Worte zu Arduino Mega Server
Arduino Mega Server ist ein multifunktionales System mit vielen einzigartigen Funktionen. Mehr dazu erfahren Sie auf der Projektwebsite. Es beschreibt klar und mit "Bildern" seine Hauptmerkmale. Kurz gesagt, dies ist das Betriebssystem für Arduino-Controller. Die Funktionen des Bare-Controllers unterscheiden sich von den Funktionen des Controllers mit integriertem AMS in etwa genauso wie die Funktionen des Bare-Computers von den Funktionen eines Computers mit Windows oder Linux an Bord.Dies ist ein bildlicher Vergleich, aber es gibt eine gute Vorstellung davon, was der Arduino Mega Server ist.Integration
Schauen wir uns nun an, wie das Steuermodul MT1132 in das System integriert ist. Das Anschließen des Moduls unterscheidet sich physisch nicht vom Anschließen an ein Arduino Mega oder Arduino Due, wie in einem vorherigen Artikel beschrieben. Deshalb verweise ich Sie erneut auf den vorherigen Artikel, um hier nicht dasselbe zu wiederholen.Mit Kabeln - Strom, Masse und RX zum Empfangen von Steuerbefehlen von Arduino und das Modul ist betriebsbereit. NooLite MT1132 ist der Meister in der einfachen Verbindung von Geräten mit dem Mikrocontroller.Der Software-Teil ist auch dem im vorherigen Artikel beschriebenen sehr ähnlich und stimmt zu 85% überein. Die Unterschiede bestehen nur in AMS-spezifischen Variablen und Funktionen, die wir in diesem Artikel ausführlich untersuchen werden.NooLite Management Kernel
Mit dem nooLite-Steuerungskern ist Code gemeint, der die Grundfunktionen zum Generieren von Befehlen und zum Steuern des MT1132-Moduls ausführt (das wiederum Befehle an die Luft sendet).Dieser Code ist gemäß der Ideologie des modularen AMS-Aufbaus als separates Modul konzipiert und eine separate logische Einheit des Systems. Dieses Modul kann aktiviert (wenn Sie keine nooLite-Steuerung benötigen) oder ausgeschaltet (wenn Sie keine nooLite-Steuerung benötigen).
Dies ist insofern vorteilhaft, als es wertvollen Speicher des Mikrocontrollers spart und dieses Modul nicht für diejenigen verwendet, die keine nooLite-Steuerung benötigen. Das Modul kann dynamisch ausgeschaltet werden (während der Speicher nicht gespeichert ist) und in der Kompilierungsphase durch einfaches Kommentieren einer Codezeile ausgeschaltet werden.
In diesem Fall bleibt der gesamte vom Modul belegte Speicher frei. Das System ist so konzipiert, dass es das kompilierte Modul automatisch erkennt oder nicht und dieses Ereignis korrekt verarbeitet.
Zur Vereinfachung der Benutzer werden Informationen zum Status aller Systemmodule im Dashboard in der Kopfzeile der Site angezeigt. Und dort können Sie sofort ihren Status im Moment sehen. Dies funktioniert sowohl in der Arduino Mega-Version als auch in der Arduino Due-Version.Code des NooLite-Kernelmoduls
Schauen wir uns nun den Code für das "noo" -Modul des Arduino Mega Server-Systems an. Die Funktionen, die im vorherigen Artikel besprochen wurden, werde ich hier weglassen. Wenn Sie plötzlich etwas nicht mehr verstehen, kehren Sie zum vorherigen Artikel zurück und lesen Sie ihn erneut.Der Code des Moduls ist in den Anweisungen der bedingten Kompilierung festgelegt, mit denen der Code des Moduls gemäß Ihren Anweisungen für die Kompilierung aktiviert oder deaktiviert wird.#ifdef NOO_FEATURE
…
#endif
Als nächstes werden die Schlussfolgerungen festgelegt, an die das MT1132-Modul angeschlossen ist (der 19. Ausgang ist optional und dient dazu, das erfolgreiche Senden des Befehls durch das Modul zu bestätigen).byte const PIN_TX = 18;
byte const PIN_RX = 19;
Und die Beschriftung der Kanäle ist festgelegt (nur zur Vereinfachung der Verwendung)byte const NOO_CHANNEL_1 = 0;
byte const NOO_CHANNEL_2 = 1;
Derzeit werden nur zwei Kanäle verwendet, aber nichts hindert Sie daran, ein paar Codezeilen hinzuzufügen und alle 32 Kanäle zu verwenden.Das Modul wird von der Funktion initialisiertvoid nooInit() {
Serial1.begin(9600);
modulNoo = MODUL_ENABLE;
started("nooLite");
}
Wenn Serial1 mit einer Standardfrequenz von 9600 initialisiert wird, erhält das Modul den Status „ENABLE“ und in Serial wird eine Testmeldung angezeigt, um den Initialisierungsprozess zu steuern.Die "Haupt" -Funktion, die die Befehle bildet, und die "Wrapper" -Funktionen, die Befehle bis zum Limit vereinfachen, werden im vorherigen Artikel ausführlich beschrieben. Das ist der ganze Kern des nooLite-Steuerelements. Jetzt können wir von überall im Arduino Mega Server-Code frei auf alle Steuerfunktionen zugreifen. Und steuern Sie die nooLite-Geräte auf irgendeine Weise.Hier ist der vollständige NooLite-Steuerungskernelcode.Vollständiger Kernel-Code/*
Modul nooLite
part of Arduino Mega Server project
*/
#ifdef NOO_FEATURE
byte const PIN_TX = 18; // TX PIN (to RX noolite)
byte const PIN_RX = 19; // RX PIN (to TX noolite)
byte const NOO_CHANNEL_1 = 0; // channel (address) 0...31 (MT1132)
byte const NOO_CHANNEL_2 = 1;
byte const NOO_CHANNEL_3 = 2;
byte const NOO_CHANNEL_4 = 3;
byte const NOO_CHANNEL_5 = 4;
void nooInit() {
Serial1.begin(9600);
modulNoo = MODUL_ENABLE;
started(«nooLite»);
}
void nooWork() {
}
void nooSendCommand(byte channel, byte command, byte data, byte format) {
byte buf[12];
for (byte i = 0; i < 12; i++) {
buf[i] = 0;
}
buf[0] = 85;
buf[1] = B01010000;
buf[2] = command;
buf[3] = format;
buf[5] = channel;
buf[6] = data;
int checkSum = 0;
for (byte i = 0; i < 10; i++) {
checkSum += buf[i];
}
buf[10] = lowByte(checkSum);
buf[11] = 170;
for (byte i = 0; i < (12); i++) {
Serial1.write(buf[i]);
}
}
void nooBind (byte ch) {nooSendCommand(ch, 15, 0, 0);}
void nooUnbind (byte ch) {nooSendCommand(ch, 9, 0, 0);}
void nooOn (byte ch) {nooSendCommand(ch, 2, 0, 0);}
void nooOff (byte ch) {nooSendCommand(ch, 0, 0, 0);}
void nooTrigger(byte ch) {nooSendCommand(ch, 4, 0, 0);}
void nooCancel (byte ch) {nooSendCommand(ch, 10, 0, 0);}
void nooUp (byte ch) {nooSendCommand(ch, 3, 0, 0);}
void nooDown (byte ch) {nooSendCommand(ch, 1, 0, 0);}
void nooRevers (byte ch) {nooSendCommand(ch, 5, 0, 0);}
void nooValue (byte ch, byte v) {nooSendCommand(ch, 6, v, 1);}
#endif // NOO_FEATURE
Schnittstelle zum Binden und Lösen
Da der Arduino Mega Server uns eine luxuriöse Schnittstelle bietet, können wir ihn für alle Funktionen der Arbeit mit dem Modul und dem nooLite-System selbst verwenden. Wir müssen nichts manuell tun. Die Kommunikation mit allen Funktionen des nooLite-Systems erfolgt über Standardschnittstellenelemente, die Ihnen bei der Arbeit mit Websites im Internet bekannt sind. Dies sind Schaltflächen, Dropdown-Listen usw.Beginnen wir mit den Schnittstellenblöcken zum Binden und Lösen der Benutzeroberfläche. Hier ist alles sehr einfach: In der Dropdown-Liste wählen Sie die gewünschte Kanalnummer aus, wählen dann die Art der Aktion aus - "Binden" oder "Binden" und klicken auf "Senden". Hier finden Sie kurze Anweisungen, was nach dem Klicken auf die Schaltfläche "Senden" zu tun ist. Im Allgemeinen wird alles sehr einfach und elegant gemacht.
Sie können Blöcke in beliebiger Anzahl und auf beliebigen Kanälen „binden“ und „lösen“ (auf einem Kanal können sich ebenso viele Leistungsblöcke befinden, die gleichzeitig eingeschaltet werden, da sie sich auf demselben Kanal befinden).Hier müssen Sie nur daran denken, dass in 0.14 die Baugruppensteuerung über zwei Kanäle implementiert ist. Wenn Ihnen zwei Kanäle nicht ausreichen, können Sie analog die Steuerung für eine beliebige Anzahl von Kanälen hinzufügen (bis zu 32).Steuerschnittstelle
Schauen wir uns nun an, wie die nooLite-Geräteverwaltungsoberfläche in AMS organisiert ist. Im Systemmenü befindet sich ein Punkt „Management nooLite“. Wenn Sie darauf klicken, wird eine Seite geöffnet, mit der Sie die nooLite-Geräte drahtlos ein- und ausschalten können. Wie gesagt, in 0.14 ist die Versionskontrolle auf zwei Kanälen organisiert. Sie werden als "Block 1" und "Block 2" bezeichnet (dh NooLite Wireless Power Dimer-Blöcke).
Wir klicken auf "Block 1" und sehen eine schöne Schaltfläche - dies ist die Steuerschnittstelle des ersten Powerblocks. Sie können eine Beleuchtung oder ein elektrisches Gerät (mit entsprechender Stromversorgung) an dieses Gerät anschließen und ... das Ein- und Ausschalten bequem und bequem durch Drücken dieser Taste steuern.Die Arduino Mega Server-Oberfläche ist anpassungsfähig, was bedeutet, dass Sie das Ein- und Ausschalten von Elektrogeräten direkt von Ihrem Smartphone aus steuern können - die Schnittstelle „klappt“ und der Bagger ist groß und lässt sich leicht auf dem Smartphone drücken.
Das ist noch nicht alles. Mit dem nooLite-System können Sie nicht nur die Geräte einfach ein- und ausschalten, sondern auch viele andere Dinge tun, z. B. die Helligkeit der Lampen verringern (sanft ändern) oder die erforderliche Lastleistung einstellen. Hierfür wurde ein weiteres Schnittstellenelement entwickelt - ein Widget zum Einstellen der Leistung und zum Dimmen.Power- und Dimm-Widget
Auf dem zweiten Kanal befinden sich zwei Schnittstellenelemente - eine Ein- und Aus-Taste und ein Widget für die Leistungseinstellung. Mit diesem Widget können Sie die Leistung festlegen, die als Prozentsatz des Maximums eingestuft wird. Dies ist eine universelle Lösung, die für die meisten Fälle geeignet ist.Sie können auch einen Kronleuchter in Ihrem Zimmer oder ein elektrisches Gerät, das eine Leistungsanpassung (innerhalb der Nennleistung Ihres Netzteils) erfordert, mit dem nooLite-Funkdimer (z. B. SU111-300) verbinden und jede gewünschte Leistung direkt von der Webseite installieren.
Wenn Sie die Leistung auf andere Weise anpassen müssen, z. B. mit größerer Genauigkeit oder nicht linear, können Sie das Standard-Widget ändern, indem Sie den Quellcode anpassen (auf den natürlich vollständig zugegriffen werden kann).Das Bild zeigt den Moment, in dem die Leistung auf 20% des Maximums eingestellt ist. Gleichzeitig können Sie die Leistung von der Skizze zum Arduino automatisch ändern. Zum Beispiel ist es mit diesem System nichts wert, den "Morgenwecker" so modisch zu organisieren, wenn die Helligkeit der Lampen langsam zunimmt und Sie morgens "natürlich" aufwachen. Und ohne Kabel! Kraft und Kontrolle reicht es aus, das Dimer in eine Lampe oder einen Kronleuchter zu integrieren.Das Widget und die Schaltfläche arbeiten unabhängig voneinander. Dies bedeutet, dass Sie die benötigte Leistung (Helligkeit) einstellen können und nach dem Aus- und Wiedereinschalten die installierte Energie gespart wird, was sehr praktisch ist.Andere Funktionen
Das Nootekhnika- Dokument , das die Steuerbefehle des nooLite-Instruments beschreibt, enthält viele zusätzliche Befehle, von denen einige bereits im Kernel vorhanden sind und andere nicht. Wenn Sie andere Befehle benötigen, können Sie diese selbst hinzufügen, da dies überhaupt nicht schwierig ist und das System bereits viele Beispiele hat.Fazit
Daher untersuchten wir die Integration des Steuerungsmoduls nooLite MT1132 in den Arduino Mega Server und das Prinzip der Organisation der nooLite- Hardwareverwaltungsschnittstelle . Mit einem integrierten Steuerungskern können Sie die nooLite-Geräte einfach über AMS in Ihrem Smart Home steuern.Damit ging der zweite Artikel zu Ende, und im dritten Artikel der Serie lernen Sie das absolut fantastische Konzept des Arduino Mega Server- Systems „100 in 1“ kennen, wenn ein Controller mit AMS an Bord Sie durch viele Geräte und Systeme ersetzt und Ihnen Kosten spart.Und es wird am Beispiel einer Lötstation gezeigt, die wir buchstäblich aus dem Nichts herstellen - aus einem drahtlosen nooLite-Dimer.PSArduino Mega Server ist ein vielseitiges und flexibles System, das in nahezu alles integriert werden kann. Daher sind Unternehmen, die an der Verbreitung ihrer Technologien und der Erweiterung der Benutzerbasis interessiert sind, zur Zusammenarbeit eingeladen. Ihre Geräte können auch problemlos in das beliebte Arduino Mega Server-System integriert werden.Es ist eine sehr gute Idee, ein eigenes Modul (und eine eigene Website) im Arduino Mega Server zu haben.Der erste , dritte und vierte Teil des Zyklus.Ergänzung . Ein Youtube-Kanal ist geöffnet und hier ist ein Promo-Video des Arduino Mega Servers, das zeigt, wie man mit einem realen System arbeitet.