Inhaltsverzeichnis:

IronForge der NetBSD-Toaster - Gunook
IronForge der NetBSD-Toaster - Gunook

Video: IronForge der NetBSD-Toaster - Gunook

Video: IronForge der NetBSD-Toaster - Gunook
Video: Classic WOW - 5min way to Menethil Harbor from Ironforge as level 1 2024, Dezember
Anonim
IronForge der NetBSD-Toaster
IronForge der NetBSD-Toaster
IronForge der NetBSD-Toaster
IronForge der NetBSD-Toaster
IronForge der NetBSD-Toaster
IronForge der NetBSD-Toaster

Dieses Projekt begann nicht als Toaster, schließlich wurde es einer.

Die Idee kam, als mein Küchencomputer (ein alter Windows CE PDA), der zum Anzeigen meiner Kochrezepte verwendet wurde, starb. Zuerst dachte ich darüber nach, ein E-Ink-basiertes Low-Energy-Display zu entwickeln, das mit Magneten an meinem Kühlschrank befestigt werden würde und sehr lange von Batterien ausgehen würde, aber dann habe ich ein altes 2.1-Surround-System in die Küche gebracht, um Musik zu hören, als naja, also dachte ich mir, vielleicht sollte es ein Computer sein, der auch beides kann und dann kam mir ein anderes altes Projekt in den Sinn:

www.embeddedarm.com/blog/netbsd-toaster-powered-by-the-ts-7200-arm9-sbc/

Der ursprüngliche NetBSD-Toaster. Dieses Projekt an sich ist ein Geek-Witz, für diejenigen, die es nicht wissen:

„Es wurde lange angenommen, dass das UNIX-ähnliche Betriebssystem NetBSD auf jede Art von Maschine portierbar ist, außer vielleicht auf Ihren Küchentoaster.“

Erstellen wir also einen Toaster, auf dem NetBSD ausgeführt wird, und:

  • Die Temperatur und Röstzeit ist vom Benutzer vollständig fein einstellbar
  • Während es nicht toastet, zeigt es Wetterdaten von 2 Wetterstationen auf einem stilvollen Dashboard an
  • Während des Toastens werden die verbleibende Zeit und Temperatur sowohl in einer Grafik als auch in Ziffern angezeigt
  • Wenn es nicht toastet, kann es auch als Wecker verwendet werden und Musik hören, sogar Filme darauf abspielen
  • Zeigt Kochrezepte an oder kann zum regelmäßigen Stöbern verwendet werden

Schritt 1: Toasterbetrieb und Auswahl der Hardware

Toasterbetrieb und Auswahl der Hardware
Toasterbetrieb und Auswahl der Hardware
Toasterbetrieb und Auswahl der Hardware
Toasterbetrieb und Auswahl der Hardware
Toasterbetrieb und Auswahl der Hardware
Toasterbetrieb und Auswahl der Hardware
Toasterbetrieb und Auswahl der Hardware
Toasterbetrieb und Auswahl der Hardware

Hier, im Gegensatz zu meinem vorherigen Kaffee-Hack, glaube ich nicht, dass ich eine gute Wahl für Toaster getroffen habe, daher werde ich eine kurze Einführung in die innere Arbeitsweise von Toastern geben, Kriterien und Erfahrungen selbst auswählen und den Leser seinen eigenen Toaster auswählen lassen für diesen Hack.

Eines meiner Hauptkriterien für den Toaster war es, 4 Scheiben Brot gleichzeitig und automatisch machen zu können

Severin AT 2509 (1400W) Toaster

www.severin.de/fruehstueck/toaster/automati…

Dies ist eine in Deutschland weit verbreitete Marke, sie kostete zum Zeitpunkt des Schreibens als Neuware etwa 40-50 EUR.

Hauptmerkmale, mit denen der Hersteller wirbt:

● Wärmeisoliertes Edelstahlgehäuse

● integrierter Rollbratenaufsatz

● 2 Langschlitz-Bräter für bis zu 4 Brotscheiben

● Bratzeitelektronik mit Temperatursensor

● einstellbarer Bräunungsgrad

● Abtaustufe mit Kontrollleuchte

● Aufwärmphase ohne zusätzliche Bräunung mit Kontrollleuchte

● separater Auslöseknopf mit Kontrollleuchte

● Brotschneidezentrierung zum gleichmäßigen Bräunen beider Laibseiten

● automatische Abschaltung bei verklemmter Brotscheibe

● Krümelschublade

● Kabelaufwicklung

Obwohl der Hersteller nicht behauptet, dass die Temperatur einstellbar ist, machen sie 2 irreführende Punkte:

● Aufwärmphase ohne zusätzliche Bräunung mit Kontrollleuchte

● Bratzeitelektronik mit Temperatursensor

Um diese Behauptungen zu zitieren, sehen wir uns an, wie die Maschine funktioniert:

1, Im Normalzustand ist das 230-V-Netz vollständig getrennt, kein Teil des Toasters wird mit Strom versorgt.

2, Wenn der Benutzer den Hebel herunterzieht (der auch die Brote herunterzieht), verbindet er das Heizelement auf beiden Seiten.

Was sie hier gemacht haben, ist ein billiges, aber auch cleveres Design. Es gibt keinen Transformator im Inneren des Toasters, so dass Sie sich vielleicht fragen, wie er dann seine niedrige (10 V AC ~) Spannung bekommt. Es gibt eine separate Spule, die mit einem der Heizelemente auf der linken Seite des Toasters gekoppelt ist und wie ein Abwärtstransformator wirkt, der 10 V AC erzeugt.

Dann verwendet es einen einzelnen Diodengleichrichter, um 10 V DC zu erzeugen, die die Hauptsteuerplatine des Toasters mit Strom versorgen.

3, Was ich zuerst dachte – dass es ein Solenoid + Transformator zusammen ist – stellte sich als ein einzelner Solenoid direkt unter dem Hebel heraus, der jetzt von der Steuerschaltung gespeist wird und nur für eine Sache verantwortlich ist (den Hebel nach unten gezogen zu halten).

Sobald dieser Magnet das Brot freigibt, ist alles vorbei, der Toaster schaltet im Grunde seinen eigenen Strom ab und beendet damit den Toastvorgang.

Man könnte sich also zu Recht fragen, was diese ausgefallenen Knöpfe und Behauptungen auf dem Datenblatt sind, dass es auftauen, vorheizen, aufwärmen kann und was auch immer… Ich würde sagen, es ist reines Marketing-BS. Sie könnten einen Zeitregler und einen einzigen Knopf darauf setzen, denn am Ende des Tages ist diese Schaltung nichts anderes als ein Timer. Da dieser Stromkreis von der gleichen Stromquelle wie das Heizelement gespeist wird und das einzige, was in dieser Maschine wichtig ist (die Heizung), nicht steuern kann, habe ich mich nicht einmal die Mühe gemacht, diesen Stromkreis weiter zu modifizieren, sondern ihn einfach dorthin geworfen, wo er hingehört, zu der Mülleimer.

Jetzt, da der Kontrollkreis nach Militärstandard aus dem Weg geräumt ist, übernehmen wir die VOLLE KONTROLLE über den Toaster.

Schritt 2: Hardwareliste

Hardwareliste
Hardwareliste
Hardwareliste
Hardwareliste
Hardwareliste
Hardwareliste

Dies ist wiederum keine Vollkommenheit, beinhaltet nicht alle Grundlagen wie Drähte und Schrauben:

  • 1x AT 2509 (1400W) Toaster oder ein anderer Toaster Ihrer Wahl
  • 1x Arduino Pro Micro
  • 1x 5 Zoll resistives Touchscreen-LCD-Display HDMI für Raspberry Pi XPT2046 BE
  • 1x Raspberry PI 2 oder Raspberry PI 3
  • 1x SanDisk 16GB 32GB 64GB Ultra Micro SD SDHC Karte 80MB/s UHS-I Class10 mit Adapter (für den PI)
  • 2x SIP-1A05 Reed-Schalter-Relais
  • 1x 1PCS MAX6675 Modul + K-Typ Thermoelement-Temperatursensor für Arduino (empfohlen, Ersatzteile zu kaufen)
  • 1x Ausgang 24V-380V 25A SSR-25 DA Halbleiterrelais PID-Temperaturregler
  • 1x Mini-DC-DC-Abwärtswandler-Abwärtswandler-Netzteil für den Flugmodellbau (kaufen Sie mehr davon als Ersatz).
  • 2x Rotary Encoder Module Brick Sensor Development Board für Arduino (Rotary + Middle Switch, empfohlen, mehr davon als Ersatz zu kaufen)
  • 2x WS2812B 5050 RGB LED Ring 24Bit RGB LED
  • 1x 1mm A5 transparent Plexiglas Acrylglasplatte Kunststoff Plexiglas Cut 148x210mm Lot
  • 1x12V 2A DC Adapter (1A sollte auch für das Pi+Screen+Ardu ausreichen, aber es ist besser, wenn Sie zusätzliche Geräte über USB anschließen, werden sie zusätzlichen Strom verbrauchen)
  • 1x PCS HC-SR501 IR Pyroelektrisches Infrarot IR PIR Bewegungssensor-Detektormodul
  • 2x Jumper Wire 5 Pin Buchse auf Buchse Dupont Kabel 20cm für Arduino (für die Rotaries lohnt es sich mehr davon zu kaufen)
  • 2x Aluminiumlegierung Lautstärkeregler 38x22mm für 6mm Potentiometerwelle Silber
  • 1x 230V Relais
  • Bündel einreihiger 2,54 mm weiblicher + männlicher brechbarer Header-Steckverbinder für die Anschlüsse
  • Optional für Xbee-Mod: 1X10P 10pin 2mm Buchse, einreihig, gerade Stiftleiste, XBee-Buchse
  • Optional für Xbee-Mod: 1 Xbee
  • Optional für Xbee Mod: 1x Jumper Wire 4 Pin Buchse auf Buchse Dupont Kabel 20cm für Arduino (zwischen Xbee Raspi)

Für die Stromversorgung müssen Sie 12 V anstelle von 5 V verwenden, da das Solenoid nicht auf diesem niedrigen Spannungspegel hält. Vergessen Sie nicht, eine Flyback-Diode auf dem Solenoid hinzuzufügen.

Wenn Sie sich entscheiden, andere Komponenten zu verwenden, z. B.: anderes Buck-Modul für Spannungsabsenkung von 12V->5V müssen Sie das Board neu entwerfen, es wurde für diesen einen speziellen kleinen quadratischen Buck-Konverter entwickelt.

Schritt 3: Modifizierung des Gehäuses: Rückseite ist die Vorderseite

Modden des Gehäuses: Rückseite ist die Vorderseite
Modden des Gehäuses: Rückseite ist die Vorderseite
Modden des Gehäuses: Rückseite ist die Vorderseite
Modden des Gehäuses: Rückseite ist die Vorderseite
Modden des Gehäuses: Rückseite ist die Vorderseite
Modden des Gehäuses: Rückseite ist die Vorderseite

Nach dem Entfernen des Hauptsteuerkreises gab es immer noch ein großes hässliches Loch, das auf die Stelle der Schalter schaute Heizungssteuerung) + 230-V-AC-Relais (zur Stromerkennung) + der 12-V-Adapter, der den gesamten Stromkreis versorgt.

Dieses Toastermodell war etwas schwer zu zerlegen und wieder zusammenzubauen. Ich habe keine andere Möglichkeit gefunden, das Gehäuse zu entfernen, als mit einem Dremmel direkt unter dem Hauptziehhebel einzuschneiden, um das Gehäuse nach dem Abschrauben und Entfernen der Hebel anheben zu können (zum Glück, da an diesem Teil eine äußere Kunststoffbeschichtung angebracht ist) das wird nicht auffallen).

Ich habe das Detektorende des MAX6675 Thermoelements an der Unterseite des Toasters an der gegenüberliegenden Kante des Haupthebels eingeführt (wo es in Konflikt mit dem Hebelmechanismus wäre).

Das Innengehäuse ist aus feinem Aluminium, es muss nicht einmal gebohrt werden, ein kleines Loch kann leicht mit einem Schraubendreher erweitert werden und dann den Sensor einstecken, der knifflige Teil war, ihn von der Innenseite her gegenzuschrauben. Dazu muss ich mir eine clevere Lösung einfallen lassen, wie auf den Bildern gezeigt.

Das Zerlegen des inneren Toaster-Hauptgehäuses mit dem Heizelement ist nur für Leute mit starken Nerven und absolut nicht zu empfehlen. Da muss man sowieso nichts mehr machen.

Die Drähte des MAX6675 waren gerade lang genug, um leicht durch den Boden der Maschine zu dem Loch geführt zu werden, wo die Kabel herausgeführt wurden.

Alle notwendigen Kabel von einem zum anderen zu bringen, war eine der schwierigsten Modding-Aufgaben. Ich musste auf der (jetzt Rückseite) Seite kein weiteres Loch bohren, da die Kabel nur das Loch von den Schaltern verwenden konnten. Dann mussten die Kabel an der Gehäusewand befestigt und durch einen sehr engen Raum nach unten geführt werden, wo sie mit einigen zusätzlichen Drähten von der Hochspannungssteuerplatine verbunden werden, nämlich:

  • 1 Draht vom Heizelement -> Geht zu SSR
  • 1 Draht vom 230V (vorzugsweise heißer brauner Punkt) -> Geht zu SSR
  • 2 Drähte von 230V mit geschlossenem Schalterzustand -> Geht zu Startrelais
  • 2 Drähte vom 230V Haupteingang -> Geht zum 12V Adapter auf der Rückseite
  • Abgeschirmte Drähte vom Thermosensor

Und das ist alles, was Sie brauchen, um den Toaster zu steuern.

Aufgrund des industriellen Lötens habe ich mich entschieden, einfach den Draht zwischen dem Heizelement und einem Ende der Hauptleitung (nach dem Schalter) zu durchtrennen und mit Klemmleisten an das SSR anzuschließen.

Es wird ein Relais benötigt, das mit 230V (der Netzspannung) arbeitet. Dies ist das Startrelais, das den Arduino darüber informiert, dass der Benutzer den Hebel heruntergezogen hat, auch bekannt als der Toastvorgang. Vergessen Sie nicht, dass der Steuerkreis nicht mehr vorhanden ist, der Magnet keinen Strom erhält, was den Hebel gedrückt halten würde, und die Heizung wird ebenfalls getrennt (gesteuert über das SSR). All dies wird ab diesem Zeitpunkt die Aufgabe des Arduino sein.

Der 12-V-DC-Adapter wird direkt an das Stromnetz angeschlossen (ich habe einen zusätzlichen EIN / AUS-Schalter auf der Rückseite hinzugefügt). Dadurch wird die Schaltung konstant mit Strom versorgt. Der Toaster verbraucht im Standby-Modus nur: 5,5 W bei eingeschaltetem Bildschirm und 5,4 W bei ausgeschaltetem Bildschirm.

Schritt 4: Vorderes arzyklisches Board

Vorderes arzyklisches Brett
Vorderes arzyklisches Brett
Vorderes arzyklisches Brett
Vorderes arzyklisches Brett
Vorderes arzyklisches Brett
Vorderes arzyklisches Brett

Ich bin kein Experte in der Arbeit mit diesem Material, ich habe den Rat bekommen, die Löcher mit einem Dremmel mit hoher Drehzahl unter fließendem Wasser zu schneiden, aber ich wollte es nicht über-perfektionieren, also habe ich nur das normale Bohren gemacht Löcher, verzichte komplett auf das Herausdremmeln des Teils zwischen Raspi und Sieb, stattdessen habe ich nur an den Abstandshaltern des Siebs und am Anschluss des Raspi Löcher gebohrt und dann die restliche Substanz zu einem Quadrat für den Anschluss gefeilt durch.

Sie können sehen, dass die Plexiglasplatte um einige Bohrungen herum winzige Risse aufweist, sodass Sie wissen, was Sie vermeiden sollten, wenn Sie ein perfektes Design anstreben.

Aufgrund der Hitze kann man jedoch nichts in das Gehäuse des Toasters legen, die gesamte Elektronik muss in sicherer Entfernung vom Ofen montiert werden.

Ich habe keine richtigen Konstruktionszeichnungen für die 148 x 210 mm Plexiglasplatte erstellt, sondern nur versucht, alles symmetrisch und in einer Linie anzupassen. Ich habe jedoch 1 Rat:

Bevor Sie die LED-Ringe aufkleben, schalten Sie sie mit einem Arduino ein und leuchten Sie auf und markieren Sie mit einem Stift die ERSTE und LETZTE LED auf der Rückseite, damit Sie sie nicht wie ich leicht gedreht montieren (dies ist jedoch von der Software aus korrigierbar))

Es gibt 6 Abstandshalter, die die gesamte Frontplatte an Ort und Stelle halten, aber am Ende werden die beiden unteren aufgrund der kurzen Länge der Drehscheiben nicht durch die Platte geführt.

Ich habe normale PC-Motherboard-Abstandshalter zwischen den Drehknöpfen und dem Plexi-Panel verwendet, auch 2-2 weitere hinter dem Drehknopf hinzugefügt, um zusätzliche Stabilität beim Drücken der Tasten zu geben.

Schritt 5: Toaster-Steuerkreis

Toaster-Steuerkreis
Toaster-Steuerkreis
Toaster-Steuerkreis
Toaster-Steuerkreis
Toaster-Steuerkreis
Toaster-Steuerkreis

Dies war eines dieser Projekte, das tatsächlich ALLE Arduino-Pins ausgereizt hat:) RX und TX waren für zukünftige Kommunikationsmodulerweiterungen reserviert.

Die Hauptplatine liefert Strom für alles über einen Abwärtswandler (Arduino, Raspi, Screen, SSR, Relais). Hier möchte ich anmerken, dass dieser Spannungsregler nicht gerade auf dem neuesten Stand der Technik ist, er kann die Eingangsspannung von 12 V DC nicht zu stark überschreiten. Wenn Sie sich entscheiden, genau den gleichen Typ zu verwenden, stellen Sie sicher, dass Ihr Adapter eine stabile 12-V-Leerlaufspannung liefert (nicht wie ein WRT54G-Adapter, mit dem Sie den magischen Rauch in Sekundenschnelle entweichen sehen).

Ich habe die Platine so modular wie möglich gemacht und Steckdosen verwendet, wo ich konnte. Abgesehen von den 2 Reed-Relais kann alles andere einfach ausgetauscht werden.

Beide exzellenten Reed-Relais sind mit eingebauten Flyback-Dioden ausgestattet und verbrauchen nicht mehr als 7 mA, sodass sie direkt an alle Arduino-Pins angeschlossen werden können (ich werde diese auch in meinen zukünftigen Projekten empfehlen). Die Funktion der Relais:

Einer dient zum Einschalten des Solenoids zu Beginn des Toastvorgangs (um den Hebel nach unten gezogen zu halten).

Einer dient zum automatischen Ein- und Ausschalten des Bildschirms, falls eine Bewegung erkannt wird.

Ich dachte, dass der Betrieb dieses HDMI-Bildschirms rund um die Uhr keine lange Lebensdauer bieten würde (insbesondere das, was ich verwende, ist nur eine billige Fälschung, nicht das Original WaveShare:

Und kann Ihr PC auch den Bildschirm einschalten, wenn Sie den Raum betreten? Ich glaube nicht, der BSD-Toaster kann das!

Der Bildschirm ist im Grunde auf einem 10-Minuten-Halte-Timer, der jedes Mal automatisch hochgefahren wird, wenn es wieder eine Bewegung gibt. Nehmen wir an, es ist eingeschaltet und 9 Minuten später gibt es wieder Bewegung, das heißt, es bleibt weitere 10 Minuten eingeschaltet. Das Ein- und Ausschalten ist für keinen Stromkreis außer dem SSR fehlerfrei.

Damit kommen wir zum 3. und letzten Bedienelement zur Steuerung der Heizung. Diese kleinen Geräte wurden speziell für das Ein- und Ausschalten entwickelt, um die Temperatur unter Kontrolle zu halten. Was ich wähle, wird direkt von einem Arduino-Ausgangspin aus gut laufen.

Im ursprünglichen Design hätte es ein weiteres Relais auf der Platine gegeben, um ein 2.1-Lautsprecherset einzuschalten, bevor der Raspberry Pi morgens den Alarmton abspielt (auch es ist sehr einfach, ein Lied hinzuzufügen, wenn das Toasten beendet ist), aber da dies der Grund für IoT ist sich kümmern? Es bittet nur einen anderen Raspi in meinem Netzwerk, dies für mich mit einem Standard-433Mhz-RCSwitch zu tun.

Wie üblich gab es bei der 0.4-Version des Boards einige kleinere Fehler, was auf den Bildern zu sehen ist. Nämlich 2 weitere 5V-Anschlüsse und ein Anschluss für das Eingangsrelais an Arduino Pin 10 wurden weggelassen.

Ich habe diese in Version 0.5 korrigiert und auch eine Nicht-Xbee-Version erstellt.

Da dies eine 2-Schicht-Platine ist, nur durch das Herunterladen dieser Layouts und DIY schwierig wäre, müssen Sie die 2 Seiten genau drucken, die Platine ätzen und einen Weg finden, die Seiten zu verbinden, damit ich später das gemeinsame Easyeda-Projekt verlinken werde. Es wird empfohlen, es direkt bei ihnen zu bestellen.

Schritt 6: Xbee-Mod

Der Xbee ist nur dazu da, die Kaffeemaschine direkt über ihn zu steuern, da er relativ nah an ihm ist und es keine Hindernisse zwischen den beiden gibt.

Es hat absolut nichts mit dem Toaster oder dem Toastercode zu tun.

Über den Xbee-Mod: Dies ist völlig optional, deshalb füge ich die Schaltpläne für dieses Board mit und ohne Xbee hinzu. Der Xbee ist direkt in den RX / TX-Hardware-UART-Port (ttyAMA0) des Raspberry PI gelötet, der zwar an die Anschlüsse des Bildschirms herausgenommen wird, der Bildschirm ihn jedoch nicht verwendet (er verwendet die SPI-Schnittstelle, um die Berührungskoordinaten zwischen dem PI und sich selbst zu kommunizieren)..

Ich habe einen separaten seriellen Port auf dem PI für die Xbee-Kommunikation reserviert, anstatt die Nachrichten über den Raspberry -> Arduino -> 5v3v-Konverter -> Xbee -> andere Geräte zu leiten. Auf diese Weise ist es auch kein Problem, dass der Toastvorgang die gesamte MCU blockiert.

Schritt 7: Toaster-Steuercode

Der Code ist ziemlich einfach, was daran liegt, dass es grundsätzlich eine Einweg-Kommunikation zwischen dem Arduio -> Raspberry PI gibt.

Dieses Gerät kann im Gegensatz zur Kaffeemaschine nicht von einem Telefon oder Computer aus nur manuell mit einigen ausgefallenen Bedienelementen gesteuert werden.

Die einzige Funktion des PI ist hier die Datenprotokollierung und die Anzeige schöner Grafiken. Es ist kein Fläschchen für den Betrieb des Toasters, es kann vollständig ausgeschaltet oder sogar aus diesem Projekt entfernt werden, der Arduino erledigt die ganze Arbeit.

Zu Beginn setzt der Code die LED-Ringe zurück, startet die verschiedenen Hold-Timer und in jeder Schleife sucht er nach den Eingaben der 2 Drehschalter. Dieser Eingang kann eine Drehung im oder gegen den Uhrzeigersinn oder das Drücken eines der 2 Schalter bedeuten (der im Leerlaufmodus nur einen Basisbefehl IRONFORGE_OFF_ALARM an den Computer sendet und dann in den normalen IRONFORGE_OFF-Zustand zurückkehrt).

Innerhalb von rotation_read_temp() und rotation_read_time() werden die Variablen global_temp und global_time geändert. Dies ist die EINZIGE Stelle im Code, an der diese Werte geändert werden können und ihre Werte zwischen Toasting-Ereignissen gespeichert werden.

Innerhalb dieser beiden Funktionen wird rotary_memory() aufgerufen, sobald eine Positionsänderung erkannt wird. Dies dient dazu, die LED-Status der Ringe zurückzuladen, da sie nach dem Toastvorgang wieder auf Schwarz zurückgesetzt werden, um keinen Strom zu verschwenden und ihre Lebensdauer zu verlängern.

Die LED-Leuchten werden auch regelmäßig alle 10 Minuten ausgeschaltet, falls in letzter Zeit kein Drehereignis aufgetreten ist.

Die Konjunktion dieser 2 Funktionen ergibt folgendes:

1, Ruhezustand annehmen

2, Jeder der Drehregler wurde verschoben (wenn sie zuvor angepasst wurden, werden diese Werte aus dem Speicher wiederhergestellt und auf den LEDs angezeigt)

3, Wenn der Toastvorgang nicht startet und keine Anpassungsereignisse mehr auftreten, werden die Lichter wieder schwarz

Ich habe sie auch auf einen separaten Hold-Timer vom Bildschirm verschoben, da der Computer viel zum Anzeigen von Wetterdaten verwendet wird, aber ich möchte nicht, dass die rotierenden LEDs ständig wiederhergestellt werden, weil ich nicht eine Million Toasts machen möchte Tag.

Der wichtigste Toastprozess (Arduino Side):

Dies wird eingeleitet, wenn das System vom Eingangsrelais (230 V) ausgelöst wird (und sowohl die Zeit als auch die Temperatur von Null abweichen). Der Programmablauf ist auf der Arduino-Seite wie folgt:

1, Schalten Sie das Magnetventil ein, um den Hebel gedrückt zu halten

2, SSR zum Aufheizen einschalten

3. Starten Sie je nach Uhrzeit eine Toastschleife, die herunterzählt. Senden Sie in jeder Schleife die folgenden Daten an den Computer:

-TEMPERATURE (ursprünglich Gleitkommawert, aber als 2 CSV-Strings gesendet)

-TIME bleibt (in Sekunden, diese wird am anderen Ende wieder in das mm:ss-Format konvertiert)

4, schalten Sie in jeder Schleife abhängig von der eingestellten Temperatur das SSR ein oder aus, um den Toastprozess zu steuern

5, Am Ende der Toastschleife wird der Befehl IRONFORGE_OFF an den Computer gesendet

6, SSR ausschalten und das Solenoid loslassen

7, LED-Spiel für Angeber spielen (hier können Sie auch Spielmusik oder eine andere gewünschte Aktion hinzufügen)

8, Blackout-LEDs

Wie ich bereits sagte, blockiert die Haupttoastschleife die MCU vollständig, während dieser Zeit können keine anderen Aufgaben ausgeführt werden. In dieser Zeit werden auch Dreheingaben ignoriert.

Der wichtigste Toastprozess (Raspberry PI Side):

Der Raspberry Pi führt das Steuerprogramm Head C mit einem unprivilegierten Benutzer aus, der für alle Interaktionen auf dem Desktop verantwortlich ist.

Ich habe mich entschieden, Conky für alle Diagrammanzeigen zu verwenden, weil ich es seit einem Jahrzehnt verwende und es für den Job am einfachsten zu verwenden schien, aber es hat einige Haken:

-Granularität der Grafik nicht veränderbar, die Grafik ist zu feinkörnig, selbst nach der maximalen Röstzeit (5 Minuten) erreicht sie nur die Hälfte des Balkens

-Conky stürzt gerne ab, besonders wenn du sie immer wieder tötest und nachlädst

Aus dem zweiten Grund habe ich beschlossen, alle Conkies durch separate überwachte Prozesse zu spawnen, um sie zu überwachen.

Das grundlegende Idle-Lua verwendet 2 separate Conkies (1 für die Wetterdaten und ein anderer für die Uhr).

Sobald das Toasten beginnt:

1, Arduino signalisiert das Himbeer-Pi-C-Programm seriell mit IRONFORGE_ON

2, Das Steuerprogramm C stoppt die 2 Conky-Threads und lädt die 3. Conky-Lua zum Toasten

3. Das Steuerprogramm C schreibt sowohl die Temperatur- als auch die Zeitwerte in separate Textdateien auf der Ramdisk (um keine unnötigen RW-Operationen auf der SD-Karte durchzuführen), was die Conkies automatisch einlesen und anzeigen. Das Programm ist auch dafür verantwortlich, die verbleibende Zeit im MM:SS-Format zu erstellen.

4, Am Ende des Toastens stoppt das C-Programm den aktuellen Toast-Thread und startet die 2 Conkies neu, um wieder zur Wetter- und Zeitanzeige zurückzukehren

5, Zur Alarmerkennung kann das C-Programm den Prozess der Musikwiedergabe von Cron direkt stoppen, wenn im Ruhezustand einer der Drehregler gedrückt wird

Schritt 8: Alle Ihre Toasts gehören uns: NetBSD vs Raspbian

Alle Ihre Toasts gehören uns: NetBSD vs. Raspbian
Alle Ihre Toasts gehören uns: NetBSD vs. Raspbian

Obwohl der Toaster hauptsächlich für NetBSD und die Bildschirmanzeige, Sound, Arduino entwickelt wurde, arbeiten alle damit, es gibt jedoch keine Touchscreen-Unterstützung. Ich würde mich über Hilfe von jedem freuen, der daran interessiert ist, einen Treiber dafür zu schreiben.

Der Touch-Chip des LCD ist XPT2046. Der Bildschirm verwendet SPI, um die Cursor-Eingabekoordinaten zurück an den Raspberry zu senden.

www.raspberrypi.org/documentation/hardware…

  • 19 TP_SI SPI Dateneingabe des Touch Panels
  • 21 TP_SO SPI-Datenausgabe des Touch Panels
  • 22 TP_IRQ Touchpanel-Interrupt, niedriger Pegel, während das TouchPanel eine Berührung erkennt
  • 23 TP_SCK SPI-Takt des Touch Panels
  • 26 TP_CS Touch Panel Chipauswahl, niedrig aktiv

Zum Zeitpunkt dieses Schreibens ist mir kein Raspberry PI-kompatibler (Shield) Touchscreen bekannt, der über einen funktionierenden NetBSD-Treiber für das Touchpad verfügt.

Schritt 9: Abschluss und ToDo-Liste

Abschluss und ToDo-Liste
Abschluss und ToDo-Liste

Wie immer jede Hilfe, Beitrag, Korrekturen im Code sind willkommen.

Dies war ein kürzlich abgeschlossener Hack, daher werde ich das Projekt später mit den fehlenden Codeteilen aktualisieren (Raspberry pi C-Steuerungscode, Conky luas usw.). Außerdem plane ich, automatisch veränderbare 8 GB / 16 GB SD-Kartenbilder zu erstellen, die alles enthalten. Aufgrund der Tatsache, dass der Raspberry PI Standardhardware ist, könnte jeder, der sich dazu entschließt, das Projekt zu erstellen, einfach die Images herunterladen, auf eine SD-Karte schreiben und der Toaster würde nach dem Hochfahren genauso funktionieren wie meiner. Das Einrichten der Vernetzung ist nur für die korrekte Uhrzeit (NTP) und die Temperaturanzeige erforderlich.

Ein verbleibender Schritt besteht darin, die Temperaturen im Inneren mit einem FLIR zu messen und die Anpassungen zur Anzeige des MAX-Thermosensors hinzuzufügen, da er sich meiner Meinung nach für die kleine Toastzeit von maximal 5 Minuten zu langsam erwärmt.

Außerdem ist geplant, den Zeitraum in Abhängigkeit von der eingestellten Temperatur automatisch zu skalieren, um dieses maximale Zeitfenster von 5 Minuten verlängern zu können, wenn die Temperatur gesenkt wird.

Empfohlen: