Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Zonengesteuerte Klimatisierung mit MediaTeks LinkIt™ Smart 7688

Komponenten und Verbrauchsmaterialien

Espressif ESP8266 ESP-01
× 1
Arduino Nano R3
× 1
Mikrochip-Technologie ATtiny85
× 1
DHT22-Temperatursensor
× 1
Servos (Tower Pro MG996R)
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Der Winter kommt

Als meine Frau und ich im letzten Winter unser erstes Kind bekamen, bekamen wir eine elektrische Raumheizung, um die Umgebung um unser kleines Mädchen herum schön warm zu halten. Als wir von Zimmer zu Zimmer zogen, brachten wir die Heizung mit und dachten die ganze Zeit, dass wir mit einer Point-of-Use-Klimatisierung supereffizient sind. Einen Monat später bekommen wir die doppelte Stromrechnung und stellen fest, dass es günstiger gewesen wäre, das ganze Haus rund um die Uhr mit dem Gasofen zu heizen.

Der Winter steht vor der Tür, also habe ich dieses Mal auf ein WiFi-Thermostat umgerüstet, damit ich die Heizung einschalten kann, während ich unten bin oder warm unter die Decke gesteckt bin. Das ist viel bequemer, aber wir heizen immer noch das ganze Haus, obwohl wir uns die meiste Zeit alle in einem Teil des Hauses befinden.

Intelligenter arbeiten

Wenn man sich unsere Bewegungsmelderprotokolle ansieht, die unsere Beleuchtung steuern, ist es ziemlich offensichtlich, dass wir nach der Arbeit 4-5 Stunden unten als Familie verbringen und dann gegen 21 Uhr nach oben in unsere Schlafzimmer gehen, wo wir schlafen, bis wir am nächsten Morgen zur Arbeit gehen. Wochenenden sind etwas anders, aber Montag bis Freitag funktioniert wie am Schnürchen (besonders bei einem 10 Monate alten Kind mit einem strengen Schlafplan).

Ich habe mir HLK-Systeme angesehen, die über eine Mehrzonen-Temperaturüberwachung und drahtlos steuerbare Luftleitbleche verfügen, aber die Hardware ist sehr teuer und die gesamte Software sieht aus, als wäre sie ein nachträglicher Gedanke (mit wenig Support oder Updates, wenn die Technologie besser wird). Ich habe bereits einige WiFi-fähige Temperatursensoren in meinem Haus für Point-of-Use-AC-Einheiten-Controller und es hat mich aus einem Grund gejuckt, einige kleine Servos in einem Projekt zu verwenden. Alles, was ich brauche, sind über WLAN verbundene Servos, die die Lüftungsschlitze in meinem HLK-System öffnen / schließen können ... sollte einfach genug sein.

LinkIt™ Smart 7688 von MediaTek  

Der neue LinkIt Smart 7688 Duo HDK von MediaTek ist ein über WLAN verbundener Mikroprozessor, auf dem OpenWRT mit einem integrierten arduino-kompatiblen Mikrocontroller ausgeführt wird. Es ist perfekt für dieses Projekt, da es über alle I / O-Pins verfügt, die für mehrere Sensoren und Servomotoren benötigt werden, sowie eine WiFi-Fähigkeit, um mit meinen vorhandenen Temperatursensoren zu kommunizieren. Da OpenWRT bereits mit uHTTPd installiert ist, kann ich die WebApp auch direkt auf dem LinkIt Smart 7688 HDK für ein vollständig eigenständiges Paket ausführen.

Einrichten des LinkIt Smart 7688 HDK

Dies ist das erste Mal, dass ich ein Board mit integriertem WLAN verwende, also habe ich mich auf eine steile Lernkurve vorbereitet. Glücklicherweise besteht die Einrichtung buchstäblich aus 3 Schritten:

  • Schalten Sie den Linkit Smart 7688 ein und verbinden Sie sich von Ihrem Computer aus mit seinem WLAN-Zugangspunkt
  • Loggen Sie sich in das Webinterface ein und geben Sie die Einstellungen für Ihren WLAN-Zugangspunkt ein
  • Fügen Sie das Board "LinkIt Smart 7688 Duo" in der Arduino IDE hinzu

Das ist es! Wenn Sie in der Arduino IDE das Board "LinkIt Smart 7688 Duo" auswählen, können Sie Ihre Skizze entweder wie jedes andere Board seriell pushen oder über WLAN hochladen (dies wird später sehr praktisch sein). Der Linkit Smart 7688-Leitfaden für die ersten Schritte und der Entwicklerleitfaden können auch für Sie hilfreich sein.

Wenn Sie dem Mikrocontroller erlauben möchten, das WiFi direkt in Ihrem Arduino-Sketch zu verwenden (was wir tun werden), müssen Sie einfach in das HDK ssh und ein wenig umdrehen, um die Arduino Yun-Bibliothekskompatibilität zu aktivieren.

Sie können die Zeilen einfach von hier aus kopieren / einfügen:

WiFi-Client und Servocontroller

Da dies die Kompatibilität mit der Yun-Bridge-Bibliothek integriert hat und die Arduino IDE verwendet, ist es wirklich einfach, vorhandenen Code anzupassen. Mit der Bridge-Bibliothek kann ich das HDK den Onboard-Webserver nach der Lüftungskonfiguration abfragen lassen (entweder oben, unten oder das ganze Haus) und dann die beiden Servos entsprechend anpassen. Im folgenden Video hatte ich dies auf einem Raspberry Pi 2 laufen lassen, aber ich konnte die WebApp auf den LinkIt Smart 7688 portieren, um sie noch effizienter zu machen (Code am Ende enthalten).

Meine WebApp läuft auf PHP, daher habe ich nur den opkg-Paketmanager verwendet, um sie zu installieren, da sie in OpenWRT auf dem LinkIt Smart 7688 enthalten ist:

Ich habe dann die Datei /etc/config/uhttpd aktualisiert, um PHP zu interpretieren, indem ich diese Zeile hinzugefügt habe:

und uHTTPd neu gestartet

Hardware 

Ich befestigte das Servohorn direkt an der Entlüftung und fertigte eine Aluminiumhalterung an, um das Servo mit einigen Edelstahlabstandshaltern in Position zu halten. Es gibt noch ein wenig Spiel, also werde ich einige Kabelbinder hinzufügen, um dies ein wenig dauerhafter zu machen.

Software

Dieser Build läuft wirklich auf drei Komponenten hinaus:

  • Temperatursensoren im ganzen Haus senden regelmäßige Updates an den uHTTPd-Webserver, der auf dem LinkIt Smart 7688 läuft.
  • Eine auf dem LinkIt Smart 7688 ausgeführte WebApp, die den aktuellen Status anzeigt und Ihnen ermöglicht, die Lüftungsöffnungen manuell neu zu konfigurieren.
  • Die MCU auf dem LinkIt Smart 7688, die die Lüftungsöffnungen steuert, um warme Luft je nach Tageszeit entweder nach oben oder nach unten zu leiten.

Die Temperatursensoren sind nur ATtiny85s oder Arduino Nanos, die mit einem DHT11 oder DHT22 verbunden sind und diese Temperatur- / Feuchtigkeitsinformationen über einen ESP8266 über eine serielle Software an einen Webserver senden. Ich habe hier eine vollständige Beschreibung dieser Sensoren, da sie ursprünglich als Phase II meines Point-of-Use-Klimaanlagenprojekts entworfen und entwickelt wurden (dieser Teil ist vollständig optional, bietet Ihnen jedoch zusätzliche Metriken, die zum Abstimmen verwendet werden können das System und schließlich automatisieren).

Der LinkIt Smart 7688 HDK selbst ist auf meinem Dachboden direkt an die Lüftungsschlitze angeschlossen. Auf der OpenWRT-Seite aktualisiert ein Cronjob die Vent-State-Textdatei. Die MCU-Seite, auf der die Arduino-Skizze ausgeführt wird, überprüft diese Textdatei regelmäßig und passt die Belüftungsöffnungen entsprechend an.

Um den Status der Lüftungsschlitze zu überprüfen und manuell neu zu konfigurieren, habe ich eine kleine WebApp erstellt, die direkt auf dem LinkIt Smart 7688 gehostet wird.  Mit Dyndns und Portweiterleitung kann ich all dies bei Bedarf von außerhalb des Hauses einsehen und steuern.

Raum zum Verbessern

Da die Nächte bereits kälter wurden, musste ich dieses so schnell wie möglich zum Laufen bringen, also wurden im Namen eines schnellen Einsatzes einige Zugeständnisse gemacht. Auf der Hardware-Seite werde ich die richtigen Halterungen für die Servos in 3D drucken, da meine Hack-Job-Halterungen ein wenig Spiel haben. Außerdem hat das kleine RC-Servo, das ich in der Demo verwendet habe, alle Plastikzahnräder, von denen ich nicht erwarte, dass sie jahrelang halten. Da ich also nicht so schnell wieder auf den Dachboden klettern möchte, werde ich tauschen sie für größere Servos mit Metallgetriebe heraus.

Vielleicht füge ich eines Tages den Lüftungsöffnungen in jedem Raum zusätzliche über WLAN verbundene Servos hinzu und lasse sie alle wieder mit dem einzelnen LinkIt Smart 7688 verbinden.  

Derzeit geben die Temperaturfühler die Messwerte nur in eine CSV-Datei aus, damit ich sie leicht verfolgen und grafisch darstellen kann. Es wäre schön, wenn es im Haus besonders kalt ist, die Heizung früh anzumachen, aber mein WiFi-Thermostat hat noch keine API. Ich würde mich auch gerne in mein Hausautomationssystem einbinden, damit sich die Lüftungsöffnungen automatisch basierend auf der Echtzeit-Raumbelegung, die von Bewegungssensoren abgeleitet wird, anpassen, anstatt ausschließlich auf der Tageszeit (insbesondere an Wochenenden aufgrund unserer dynamischen Zeitpläne) zu basieren.

Code

  • LinkIt Smart Duo WiFi Vent
  • WiFi-Temperatursensor
  • Vent.php
  • LinkIt Smart Vent Android WebApp
LinkIt Smart Duo WiFi VentC/C++
Diese Skizze verwendet die Bridge- und HTTP-Client-Bibliotheken von Arduino Yun, um einen Webserver abzufragen und HVAC-Entlüftungen nach Bedarf zu öffnen / zu schließen.
/* Angepasst an das Sweep-Servobeispiel von BARRAGAN  und Yun HTTP-Client-Beispiel erstellt von Tom igoe ** Beide sind gemeinfrei.*** Code Adapted for HAI (Home Automation w/ Intelligence) von Buddy Crotty ** Diese Arduino-Skizze basiert auf einem Webserver, um die ganze schwere Arbeit zu erledigen. Dies kann ein separates Gerät wie ein Raspberry Pi sein, oder Sie können es auf der MPU-Seite von LinkIt Smart in OpenWRT ausführen.** Der Webserver sammelt Temperaturwerte im ganzen Haus und bestimmt, wo heiße/kalte Luft basierend auf der Zeit von Tag, Außenwetter (einschließlich Vorhersage) und Wohnungsbelegung.** Es gibt dann „oben“, „unten“ oder „ganzes Haus“ aus, je nachdem, wohin die Luft geschickt werden soll. */#include  #include #include  Servo-Upservo; // Servo-Objekt erstellen, um das Servo im Obergeschoss zu steuern Servo downservo; // Unten Lüftungsklappenservo Int uppos =0; // Variable zum Speichern der (oben) Servoposition Int downpos =0; // Servoposition unten const char* host ="192.168.1.80"; // Interne IP des Home Automation Webserverint dopenangle =80; // Gradzahl, die Ihr Servo zwischen Öffnen / Schließen am Ventint drehen muss dcloseangle =0; int uopenangle =140; int ucloseangle =0; Void setup () { upservo.attach (9); // Pin für Servo an der oberen Entlüftungsklappe downservo.attach (10) befestigt; // Pin für Servo an der unteren Lüftungsklappe befestigt // Brücke zu OpenWRT starten pinMode (13, OUTPUT); digitalWrite(13, LOW); Bridge.begin(); digitalWrite(13, HIGH);} void Wholehouse(){ if (downpos <=dcloseangle){// Stellen Sie sicher, dass die Entlüftung nicht bereits in Position ist // Öffnen Sie die Entlüftung im Erdgeschoss für (downpos =dcloseangle; downpos <=dopenangle; downpos + =1) // Bewegen Sie sich Schritt für Schritt vom eingestellten Schließwinkel zum offenen Winkel { downservo.write (downpos); Verzögerung (20); // wartet zwischen den Schritten, bis das Servo die Position erreicht hat. Verzögerung (20); } }}void downstairs () { if (downpos <=dopenangle) {// öffnen Sie die Entlüftung im Erdgeschoss für (downpos =dcloseangle; downpos <=dopenangle; downpos +=1) {downservo.write (downpos); Verzögerung (20); aufrechtzuerhalten. aufrechtzuerhalten. Verzögerung (20); aufrechtzuerhalten. aufrechtzuerhalten. Verzögerung (20); aufrechtzuerhalten. aufrechtzuerhalten. Verzögerung (20); } }} Void Schleife () { HttpClient-Client; // Erstellen und stellen Sie eine HTTP-Anfrage:String cmd ="http://"; cmd +=Host; cmd +="/vent.txt"; client.get(cmd); // Eingehende Bytes vom Server lesen while (client.available()) { int c =client.read(); if (c =='2') upstairs(); if (c =='1') downstairs(); if (c =='0') ganzes Haus(); } Verzögerung(60000);}
WiFi-TemperatursensorC/C++
Angeschlossener Temperatur- und Feuchtigkeitssensor. Protokolliert Daten auf dem zentralen Home-Automation-Server.
/* * Angepasster Code für HAI (Home Automation w/ Intelligence) von Buddy Crotty * * Sendet Daten über HTTP-GET-Anfragen an Ihren HAI-Server * * Die Konnektivität erfolgt über eine serielle Softwareverbindung zu einem ESP8266 WiFi * Schnittstelle bereits für die Verbindung mit Ihrem wLAN konfiguriert, * aber Sie können die WiFi-Einstellungen auskommentieren, um SSID/Passwort zurückzusetzen * */const char* host ="192.168.1.80"; // Interne IP des Home Automation Webserverconst char* devID ="downstairs"; // Geräte-ID (Einzelwort, keine Leerzeichen, keine Sonderzeichen) #include SoftwareSerial ser(10, 11); // (RX, TX) // Softwareseriell zur Steuerung des ESP8266-Moduls // Hardwareseriell zum Debuggenlong utime =300000; // Zeit zwischen Updates // 900000 =15 Minuten (für Batterie-/Solarstrom) // 300000 =5 Minuten (für Wechselstrom) // 5000 =5 Sekunden (für Tests) // Muss länger als 10000 sein für ESP8266 to Ruhemodus verlassen (Batteriemodus) // Temperatur- und Feuchtigkeitssensor #include #define DHTPIN 2 //Pin für Temperatur-/Feuchtigkeitssensor#define DHTTYPE DHT22 // DHT11, DHT22 (AM2302 oder DHT21 (AM2301 .) ) DHT dht (DHTPIN, DHTTYPE);void setup () { Serial.begin (9600); ser.begin (9600); //ser.listen(); /* // Kommentar zum Zurücksetzen der WLAN-Einstellungen entfernen delay(1000); ser.println("AT+CWMODE=1"); ser.println("AT+CWJAP=\"SSID\",\"Passwort\""); */ ser.println("AT+RST"); / / ESP8266 zurücksetzen, da Arduino zurückgesetzt wurde delay (10); dht.begin (); // DHT starten Serial.println ( "Alles eine Chance zum Aufwärmen geben"); // 25 Sekunden warten, bis WiFi Serial.println ( "|----------------------------------|"); Serial.print("|"); for(int x =0; x <25; x++) {Serial.print("#"); delay(1000);} Serial.println("|"); Serial.println("Done");} float t =0; inth =0; float hi =0;void loop () { Serial.println (); // Temp und Luftfeuchtigkeit float t =dht.readTemperature (true); int h =dht.readHumidity(); float hi =dht.computeHeatIndex (t, h); // Ausgabewerte werden an ThingSpeak Serial.print gesendet ("Temperatur:"); Serial.print (t); Serial.print(" *F\t"); Serial.print ( "Heatindex:"); Serial.print (hallo); Serial.println(" *F"); Serial.print ("Luftfeuchtigkeit:"); Seriendruck (h); Serial.println("%\t"); Serial.print ( "... Verbindung mit "); Serial.println (Host); // TCP-Verbindung String cmd ="AT+CIPSTART=\"TCP\",\""; cmd +=Host; cmd +="\",80"; ser.println(cmd); Verzögerung (1000); if (ser.find ( "Fehler")) { Serial.println ( "AT + CIPSTART-Fehler"); Rückkehr; } else{ } // GET-String vorbereiten String getStr ="GET /tempupdate.php?ID="; getStr +=devID; getStr +="&field1="; //Temp getStr +=t; getStr +="&field2="; //Feuchte getStr +=h; getStr +="&field3="; //Wärmeindex getStr +=hi; getStr +="\r\n\r\n"; Serial.print ( "Daten-URL senden:"); Serial.println (getStr); // Datenlänge senden cmd ="AT+CIPSEND="; cmd +=String(getStr.length()); ser.println(cmd); if(ser.find(">")){ser.print(getStr); Serial.println ("Erfolg!"); } else{ ser.println("AT+CIPCLOSE"); Serial.println ("Verbindung fehlgeschlagen"); // Benutzer alarmieren }Serial.print("Nächstes Update in ");Serial.print(utime / 1000);Serial.println(" Sekunden");delay(utime); //zwischen den Updates warten}
Vent.phpPHP
Überprüfen Sie den Status und überschreiben Sie die Belüftungskonfiguration manuell.
Nur im Obergeschoss

Ganzes Haus

Nur unten

Ventile derzeit geöffnet für ";if ($status ==="0 ") drucke "das ganze Haus";if ($status ==="1") drucke "Nur unten";if ($status ==="2") drucke "Nur oben";drucke "
"; fclose($myfile);if ($_GET["zone"] =="");else {$myfile =fopen("vent.txt", "w+") or die("Datei kann nicht geöffnet werden!"); if ($_GET["zone"] !="") print "

Sendebefehl zum Öffnen von Lüftungsöffnungen für ";if ($_GET["zone"] ==="0") print "das ganze Haus"; if ($_GET["zone"] ==="1") print "Nur unten";if ($_GET["zone"] ==="2") print "Nur oben";print "

";fwrite($myfile, $_GET['zone']);fclose($myfile);}?>
LinkIt Smart Vent Android WebAppJSON
Manifestdatei, damit Chrome auf Android den Vent Controller als Web-App öffnet.
{ "name":"LinkIt Smart Vent", "icons":[ { "src":"LinkIt_icon_36.png", "sizes":"36x36", "type":"image/png", "density":0.75 }, { "src":"LinkIt_icon_48.png", "sizes":"48x48", "type":"image/png", "density":1.0 }, { "src":"LinkIt_icon_128.png", "sizes":"128x128", "type":"image/png", "density":1.0 }, { "src":"LinkIt_icon_192 .png", "sizes":"192x192", "type":"image/png", "density":1.0 } ], "start_url":"vent.php", "display":"standalone", "orientation ":"Porträt"}

Schaltpläne

ATtiny85 oder Arduino Nano ziehen Temps von einem DHT11/22 und WiFi, das mit einem ESP8266 verbunden ist.

Herstellungsprozess

  1. DATENMODUL:23,1-Zoll-Ultra-Stretch-TFT-Display mit intelligenter Steuerung
  2. Zutrittskontrolle mit QR, RFID und Temperaturüberprüfung
  3. Bessere Qualitätskontrolle mit 3D-gedruckten Teilen
  4. Smart Procurement gleicht KI mit HI aus
  5. Münzprüfer mit Arduino steuern
  6. Batteriebetriebene TV-Fernbedienung mit 3D-bedrucktem Gehäuse
  7. Arduino mit Bluetooth zur Steuerung einer LED!
  8. Arduino Nano:Steuerung von 2 Schrittmotoren mit Joystick
  9. GÖPEL verbessert mit Universal Robots die Qualitätskontrolle in der Automobilfertigung
  10. Drehmaschine mit CNC