arduino 

25.10.2018 : Das aktuelle Entwicklungsprojekt mit Sonnenzeiten am Standort

ARDUINO-Uhr

      

ARDUINO, Scope-Clock, Wetterdaten & RasPi

Darum soll es auf dieser Seite gehen. Auch wenn die Reihenfolge nicht chronologisch ist, so kann es dem Leser an sich auch egal sein. Angefangen hat nämlich alles auf dieser Seite mit Microcontroller ARDUINO-UNO und dem MEGA2560. Dann folgte an sich der RasPi in der Version 2b, auf dem dann die Wetterdaten verarbeitet werden sollen. Und so wuchs das Interesse – bei all den Fehlversuchen, die ich über Jahre erleiden musste – ob das nicht im zweiten Anlauf mit einem „RasPi 3“ besser zu machen ginge. Und zwischendurch war dann immer auch wieder irgend ein Detail zum Thema Scope-Clock auf meiner Agenda.
Im Folgenden gebe ich zu den einzelnen Punkten mal den aktuellen Stand der Dinge bekannt, sowie auch (früher oder später) meine Mitschriften und Anleitungen zu den einzelnen Themen.

Raspberry Pi, V3

Hier werde ich beizeiten mal eine komplette Installationsanleitung einstellen. Dabei braucht man als Neuling nur etwa 3 Stunden Zeitaufwand und hat dann problemlos ’seinen neuen RasPi‘ als Desktop-PC per LAN, oder WLAN im eigenen Heimnetz im Rennen. Sehr coole Sache !!! Tolle Bildqualität, extrem schnelles Hochfahren beim Neustart, schnelles Internet-Surfen, …. und vieles mehr.

Der aktuelle Stand hier (24.01.2018) ist der, dass ich den RasPi-3 am TV-Gerät zum Surfen im Internet nutze. So kann man ausgezeichnet Youtube-Filme sehen, oder auch Sprtsendungen, die anderswo kostenpflichtig sind.
Den RasPi-2b nutze ich als Web-Server für die Wetterstation, die auf einer anderen Unterseite meines Web-Auftrittes zu sehen ist.

Und noch ’ne Uhr – diesmal mit Sonnenzeiten am Standort

(28.März 2018) Naja – Die Aussage ’noch ’ne Uhr‘ stimmt nicht ganz. Ziemlich unten auf der Seite ist die Grundversion dieser Uhr schon beschrieben. Mich interessierte aber, als ein Entwicklungsschritt, eine umfangreiche Berechnung zur Ermittlung der Sonnenauf- und untergangszeiten auf den ARDUINO zu übertragen. Und das macht an sich auch dann nur Sinn, wenn diese Berechnung nicht auf festen Daten beruht, sondern tatsächlich tagesaktuell, automatisch ermittelt wird. Und da diese bestehende Uhr auf einer RTC (DS3231) beruht, die ziemlich genau ist, stellt das eine gute Basis da.

SD_TFT7-Anzeige –> durch anklicken vergrößern
Das Ergebnis ist überzeugend. Klappt ausgezeichnet. Dafür mussten hier aber auch die rechts unten angezeigten Werte der Aussen-Sensorik weichen. Da stehen dann nun die drei Werte für ‚SU‘, ‚SA‘ und die Anzeige für  ‚MEZ/MESZ‘. Der nächste Schritt wäre damit dann, diese neue Funktionalität auf die ‚GPS-Uhr‘ zu übertragen. Denn die verfügt ja auch (der Name sagt es schon) auch über die aktuellen Geo-Koordinaten, sodass diese dann auch sofort übernommen werden können und dann daraus die SA-/SU-Zeiten ermittelt werden. Egal, wo die Uhr gerade steht.
Naja, und dann sind da auch noch die Idee der Weiterentwicklung auf die Mondzeiten, die Mondphasen, die Dämmerungszeiten, …  Ideen gibt es immer genug.

… und hier ist dann schon die „TFT8.ino“ mit QTH-Locator

(14. Mai 2018)  In dieser Programm-Version ist nun auch noch die Berechnung des QTH-Locator (Maidenhead-Locator) als zusätzlich Funktionen hinzugekommen. Die Idee kam zum einen durch einen Hinweis von Carsten, DL8AAP, sowie der schlichten Erkenntnis, das für die Berechnung des Locator auch die schon für die Sonnenauf- und untergangszeiten nötige Position benötigt wird. Zudem habe ich gleich noch die SA/SU-Zeiten um eine ‚vorlaufende Null, sofern die Minute im einstelligen Bereich liegt‘ erweitert.

Jetzt auch mit Locator-Berechnung

07.Juni 2018
Auch hier gibt es schon wieder eine weitere Version. So bat mich ‚OM Hubert‘ um den Bau dieser weiteren Uhr für ihn – jedoch mit einer 2.4″-Anzeige. An sich ‚kein Problem‘ sollte man meinen. Aber die Umstellung der Display-Größe und des Display-Typ machen solche Aufgaben zu einer zeitaufwendigen Angelegenheit. Und die Sensorik mit einem ‚GY-87‘ geht gar nicht, denn die verträgt sich im Bereich der i2c-Anbindung gar nicht mit der DS3231, die nämlich beide die gleiche Adresse ‚0x87‘ nutzen. Und die aktuelle (!) Adafruit_GFX-Library hat zu Beginn eine entscheidende Script-Zeile nicht, die noch 2014 mit dabei war – auf die die angeschlossene, mitgenutzte Library SWTFT durchaus noch Wert legt. ……..    Solche Dinge halt.
Hubert hat seine Uhr; es hat alles geklappt – und belohnt worden bin ich auch reichlich von ihm (!).
Nun will ich aber auch so eine 2.4″-Uhr haben. Und dort soll zudem die ‚RTC‘ über GPS – sofern verfügbar – regelmäßig kalibriert werden. Und die Laufbahn-Berechnungen von Sonne und Mond sollen noch sehr viel weiter  ausgebaut werden. Dazu gibt es in der CQ-DL 06/2018 einen hervorragenden Beitrag von Thomas, DL1DUZ. Der hat nämlich auch so eine GPS-Uhr gebaut und vorgestellt, wie ich das gemacht habe. Nur, ….. der hat eine eigene Library für die astronomischen Berechnungen mit eingebunden !!!!! Und er hat eine interessante Außendaten-Übertragung via 433MHz realisiert. Das hatte ich ja auch schon mal gemacht – klappte auch – kostete aber reichlich Strom.
Das könnte ich nun nochmals auf Basis seiner Überlegungen angehen. Dann aber im Bereich 2,4 GHz die Übertragung durchführen.
Und SD-Karte dann auch wieder. Und TouchScreen endlich auch mal. Und ein Foto als Hintergrund auch endlich mal.

Wieder genügend Ideen-Futter für die nächste TFT-Uhr = „TFT9_24.ino“ so der neue Projekt-Name.

Uhren (Scope-Clock)

Uhren in jedweder Form – ob mechanisch, oder Quarz-gesteuert, am Handgelenk, oder als Tischuhr, funkgesteuert (DCF77, oder GPS), oder nicht…   aber auch als schlichter Kauf, als Erbstück, oder als Selbstbau. Ich bin immer wieder fasziniert.
Zum einen ist da die weiter unten aufgeführte Version der GPS-Uhr, bzw. RealTimeFrequenz(RTF)-Uhr, mit einer Anzeige über ein (unterschiedlich großes) TFT-Display, oder alternativ auch über eine LCD-Anzeige. Im nächsten Abschnitt beschreibe ich kurz die derzeit letzte Version einer GPS-Uhr, die soeben fertig geworden ist.
Und dann gibt es da noch ein anderes wunderbares langjähriges Bastel-Objekt die Scope-Clock.
                
Die Oszilloskop-Uhr – Linkes Foto: Auf einem Hameg 203. Anstelle der unten angezeigten numerischen Uhrzeit, kann dort auch das Datum stehen. Und anstelle von ‚Sparkfun‘ kann dort der Wochentag angezeigt werden. Zudem können auch ‚römische Zahlen‘ verwendet werden.
Rechtes Foto: Hier im Vordergrund eine Alternative – eine Bildröhreneinheit aus dem Philips-Experimentierkasten EE-2007, von 1975. Die kleine rote Platine ganz vorne ist übrigens die eigentliche Zeit-Steuereinheit.
Dabei erfolgt die Anzeige der Uhrzeit auf einer Bildröhre – was die Thematik gerade heute ziemlich exotisch anmuten lässt. Wie überall, so auch hier, gibt es verschiedene Ansätze, die aber letztlich immer das gleiche Ziel haben. Dabei liegen dann die Kosten zwischen 50,- € und bis zu 500,- €; je nach dem , was man denn haben will und was man denn schon als Equipment zuhause hat.
Ist schon eine Ozilloskop vorhanden, kann man (zunächst) schlicht nur die kleine Platine erwerben und an den beiden Eingängen von Kanal 1 und Kanal 2 anschließen. Dann den X-Y-Modus wählen ….. und fertig. Kosten: 50,- €.
Wer kein Oszilloskop besitzt, kann sich das für ‚kleines Geld‘ gebraucht bei eBay besorgen. So ein Gerät kostet keine 100,- €. Damit sind die Gesamtkosten bei ca. 150,- €. Auch hier fällt keinerlei Lötarbeit an. Anschließen, einstellen, Fertig.
Die Variante mit der BRE aus dem Philpis EE-2007 ist dagegen schon eine sehr teure Angelegenheit, wenn eine solche Röhre nicht schon im eigenen Fundus ist. Man kommt so gut wie nie mehr an diese Einheit – und wenn, dann zu durchaus ‚komfortablen‘ Preisen bis zu 700,- €.
Dann aber gibt es wieder eine andere ‚ähnliche Variante‘. Alles neu – alles genau auf das Projekt hin konfektioniert – auf Wunsch auch teilaufgebaut – mit Bildröhren von 2,3 cm bis zu 18 cm Durchmesser (in blau. oder grün) – ….. zum Preis von 300,- € bis 500,- € (je nach Ausbaustufe, Gehäuse, DCF77-gesteuert, etc. ) . Allein die Kunden-Fotos sind wirklich sehenswert –>www.die-wuestens.de und dann auf die ‚Scopeclock-Seite‘ wechseln.
Der aktuelle Stand (12.09.2017) hier ist der, dass ich noch eine zweite, ungebrauchte Philips-BRE vor geraumer zeit erstehen konnte. Zudem habe ich mir einen Ring-Trafo bei Jan Wuesten bestellt, mit dem ich beim späteren neuen Aufbau die Stromversorgung für die 12V-Betriebsspannung, als auch für die 6V Heizspannung sicherstellen kann.

Wetter

Diese Thematik ist an sich komplett fertig und funktionsfähig im Netz zu sehen –> www.bschnare.de/wetter . Das klappt soweit ausgezeichnet. Hier sind allenfalls noch grafische Details zu ändern.
Vom Dach per 432-MHz zum Basisgerät im Haus. Von dort per USB in den Raspberry PI (2b). Dort verarbeitet und aufbereitet und halbstündlich auf die Webseite hochgeladen. Das ganze arbeitet zudem mit einem 50-Watt-Solar-Paneel unabhängig vom üblichen Netzstrom.
Ich werde hier beizeiten eine Anleitung zur Verfügung stellen – und damit dann auch den etwas älteren, folgenden Text überarbeiten, da sich manches wohl davon erlegt haben wird. So habe ich mit der Software CUMULUS MX auf dem normalen PC begonnen und dann aber auf WEEWX, auf dem RasPi weitergemacht. Die CUMULUS-Version ist bei mir nicht mehr in Gebrauch.
……..
Hier gibt es auch eines meiner an sich immerwährenden Projekt-Ideen – die manchmal niemals fertig zu werden scheinen. Trotzdem geht es von Zeit zu Zeit in großen Schritten voran – und dann wieder monatelang gar nicht. So haben die im Folgenden aufgeführten Uhren auch immer einen Wettersensor – zuletzt sogar einen Funk-Außensensor.
Zielplanung ist (seit jeher) : Die eigenen Wetterdaten vom Dach per Funk an die Basis-Station im Haus zu schicken. Dort sollen die dann auf dem PC gespeichert werden. Und vom PC aus ins Internet auf die eigenen Web-Seite geladen werden. Zuhause dann parallel noch die eigenen Daten mit denen von kommerziellen Stationen erweitern (Regenradar, DWD, Wetter.de), um sie dann auf einem Bildschirm dauerhaft anzuzeigen. Gemessen werden sollen aber nicht nur Temperatur und Luftfeuchte, sondern auch Luftdruck, Windrichtung, Windstärke, Regenmenge. Ggf. auch noch UV-Wert, Helligkeit in Lux und Wolkenhöhe (ist nur eine Formel basierend auf dem Taupunkt).
Die Arbeit des PC’s soll dabei aber ein kleiner Raspberry Pi übernehmen, der dauerhaft im Netz ist und mit der Basis-Station verbunden arbeitet. Zudem soll die Stromversorgung über eine batteriegepufferte Solarzelle abgewickelt werden. Wenn die dann auch noch dazu ausreicht, die Vollversion der GPS-Uhr zu versorgen (was kaum das Problem sein dürfte), dann wäre ich zunächst mal an einem meiner Etappen-Ziele angekommen.
All das will ich hier auch gerne veröffentlichen.
Der aktuelle (Zwischen-)Stand ist der folgende –> www.bschnare.de/wetter . Da läuft es schon soweit schon auf einem normalen PC und ohne Solarstrom. Nächste Etappe (28.05.2017) ist aktuell der Betrieb über den RasPi.
Stand Januar 2018: RasPi läuft, Webcam kam hinzu, wie auch die DWD-Wetterwarnung und die europaweite Windanzeige, mit seinen weiteren Anzeige-Möglichkeiten. Viel gibt es da jetzt tatsächlich nicht mehr zu tun.
Parallel habe ich noch eine interne Web-Seite aufgebaut, die ich nicht ins Netz stelle, die aber im Wesentlichen die gleichen Inhalte zeigt und später auf einem eigenen Bildschirm im Haus die Wettersituation anzeigt. Dabei aktualisiert sich die Seite alle 10 Minuten automatisch, um so auch die jeweils aktuellen Bilder der Wetterdienste liefern zu können.

GPS-Uhr mit dem Crius Neo m8n

Der hier beschriebene Stand ist der vom 23.01.2018.
 Hier der entsprechende Code dazu
GPS-Uhr
Dabei handelt es sich um die modifizierte Version, wie ich sie auch weiter unten nochmals beschreibe und mit der ich vor 2 Jahren begonnen hatte. Der Unterschied besteht nun aber darin, dass mich die langen Zeiträume gestört haben, die der Empfänger (Neo 6) benötigte, um ein zuverlässiges Sat-Signal zu finden. Daher habe ich mir letzten November den neuen Neo m8n gekauft. Dieser ist extrem viel leistungsfähiger. Und dann habe ich das gesamte Programm-Script nochmals bei der Gelegenheit überarbeitet. Rausgefallen sind dabei zunächst der 433-MHz-Aussensensor, als auch die SD-Kartenspeicherung. Und es ist noch kein Luftdrucksensor (BMP085) eingebaut, sowie auch kein Temperatur- und Feuchte-Sensor (DHT22). Das kann aber später noch erfolgen, da sich an dem Aufbau ansonsten nichts ändert. Zudem ist es reine Software-Entwicklung den Kartenspeicher, oder auch den Touchscreen zu aktivieren.
Hinzugekommen ist aber aktuell der ‚Magnet-Kompass, der Bestandteil des GPS-Empfängers ist. Die 4.3″-Anzeige ist geblieben; die dafür notwendigen Bibliotheken sind auch die gleichen.
Durch die Verwendung des NEO m8n sind kleine Änderungen im Programm nötig. So arbeitet der sehr viel kommunikativere Empfänger nicht mehr 9.600 Baud, sondern 38.400 Baud. Und es ist so, dass die seriellen Text-Zeilen nicht mehr mit ‚GP‘ beginnen, sondern mit ‚GN‘. Es heißt nun also GNGGA und GNRMC. Man kann also an sich auch das vorherige Script nehmen und ändert dort nur diese beiden Punkte – sofern man nur den Empfänger austauschen möchte. Dann ist eben auch der Kompass im Script mit hinzugekommen.
Und letztlich hat mich (wiedereinmal) Volker, DL9VDV, auf die Optimierung im Bereich der zeitlichen Verzögerung des Empfangs der GPS-Daten aufmerksam gemacht. So nutze ich nun auch im neuen Script die Möglichkeit der ‚größeren‘ ARDUINO’s, einen anderen seriellen Eingangs-Port zu nutzen. Hier ist es nun ‚Serial1‘ für ‚RX1‘ an Pin19. Bisher war das ‚Serial‘ für RX(0) an Pin0.

GPS-Uhr auf dem Laptop

(Stand: 08.10.2017) Dies ist die aktuellste, letzte, bisherige Version – bzw. dessen Aufbau. Dabei ging es mir zum einen darum die bisherige GPS-Uhr nochmals zu überarbeiten und dabei dann auch einen neuen, empfindlicheren Empfänger zu nutzen. Das ist dann augenblicklich offenbar der NEO-M8N von u-blox.
Bei den Recherchen fiel mir aber auf, dass man einen solchen Empfänger auch ganz prima am Laptop betreiben kann. Dazu bedarf es dann der entsprechenden Software von u-blox (U-Center), einem FTDI-Adapter, der das serielle Signal auf USB-Niveau umsetzt, sowie einen entsprechenden Treiber für den Adapter.
Kostenpunkt für alle Komponenten: ca. 25,- €. Dafür bekommt man dann aber auch eine ziemlich umfangreiche Spielerei.
Und dann sieht die Welt so aus :

Anleitung und Bezugsquellen, bzw. Links folgen hier in Kürze.
Zudem werde ich auch noch die ursprünglich geplante ARDUINO-Variante erstellen und dann hier vorstellen.

Und hier dann die Version bis Juli 2016 nicht schlechter (!) – aber anders

OLYMPUS DIGITAL CAMERA

GPS-(Stations-)Uhr

 

Weiterentwicklung der GPS-(Stations) Uhr

Wie es dazu kam, wurde bereits im vorherigen Beitrag beschrieben. So haben wir zu Ostern 2015 mit einem ARDUINO-Kurs im OV begonnen und diesen dann nach dem Sommer mit einem ‚handfesten‘ Projekt, der GPS-Uhr‘ weitergeführt. Anfang Dezember war es dann soweit, dass 12 Teilnehmer ihre eigene funktionsfähige, satellitengesteuerte Uhr mit nach Hause nehmen konnten. Und ein jeder hatte zudem das Wissen darüber, wie er denn eine eigene, individuelle Version für sich erstellen konnte. Individuell in der Form, als dass die Zusammensetzung der angezeigten Werte geändert werden konnte, oder auch die Farbe, die Schriftgröße, etc. Und es konnten nun die ersten individuellen Gehäuse erstellt werden.
Meinen Prototyp aus dem Sommer 2015 habe ich in ein Kunststoffgehäuse eingebaut und unserem OVV Norbert (DJ7JC) auf seine Reise nach DownUnder Australien im November mitgegeben, um so mal Praxis-Erfahrung bei diesem Entwurf zu gewinnen. ‚Leider‘ habe ich das Gerät danach nur noch auf dem Foto sehen dürfen. Es fand im Süden Australiens einen neuen Freund (VK3HJ), der es nicht mehr wieder abgeben wollte.  😉

Bild2
Bild1
Bild3
Bild4

           erster Test im Allgäu                                                                    … und dann in Australien (gut zu sehen die Zeitdifferenz zu UTC

Also wurde ein weiteres Gerät gebaut, damit dann an den Bastel-Abenden ein Demonstrations-Modell zur Verfügung stand, sodass man sehen konnte wie & was zusammengesetzt werden muß und wie es funktioniert. Dabei wurden dann auch gleich weitere Neuerungen und Erweiterungen mit eingebaut. So wurde nun die ‚Verzögerungsschaltung‘ mit den beiden Transistoren grundsätzlich eingesetzt, anstelle weiterhin mit einem Relais zu arbeiten. Und es kam auch gleich der Luftdruckmesser (BMP085) mit hinzu.
Zwischenzeitlich (04.Febr.2016) ist noch eine weitere Erweiterung hinzugekommen, die unsere Geräte-Anordnung an sich schon von Grund auf mit sich bringt, und bei der damit keine weiteren Kosten und Installationsarbeiten mehr entstehen.

Die SD-Karten-Speicherung

Dabei werden die gesammelten Sensor-Daten zusammen mit der Lokalzeit Datum und Uhrzeit in vorbestimmten Intervallen auf eine handelsübliche 2 GB SD-Karte gespeichert.
Und dem weiteren Ausbau sind auch keinerlei Grenzen gesetzt. So könnten weitere Sensoren hinzugefügt werden, da räumlich noch genügend Platz auf der Platine, oder dem Steckboard ist. Zudem steht auch noch ausreichend Kapazität und Rechnerleistung bei dem MEGA2560 zur Verfügung, sodass da zunächst einmal noch nicht so schnell die Grenzen der Leistungsfähigkeit überschritten werden (was beim Einsatz eines UNO R3 schon lange der Fall gewesen wäre).
Hier nun noch ein paar Beispiele, wie die Uhren heute aussehen können :
                
Das ist mein Nachbau der von Reiner vorgestellten Version (weiter unten), jedoch mit nur 2 Träger-Platinen und Löt-Aufbau, sowie Steckverbindungen für die Anschlüsse der Komponenten, um die spätere Servicefähigkeit und den weiteren Ausbau zu gewährleisten.
             
Im schlichten Pappkarton mit separater LCD-Anzeige für Temperatur und Feuchte (DL6EAZ) , sowie mit anderem Layout.
              ... und hier mit Gehäuse
Im schicken Plexiglas-Design und mit ‚Sandwich-Aufbau‘, von Reiner (DL9RV), der mich auch im Nachbau begeistert hat und den ich hier nur empfehlen kann!! Damit ist ein solcher Aufbau absolut ausbaufähig, ohne dass die Gesamterscheinung beeinträchtigt wird. Und daneben nochmals das gleiche Gerät im Gehäuse.
Ich habe im Nachbau diese Vorgabe dahingehend noch etwas verändert, dass ich auf die letzte Platine verzichtet habe und die externen Bauteile auf der hinteren Lochraster-Platine verlötet habe. Das mit dem Löten bringt zudem die nötige Sicherheit gegen Verbindungsprobleme, die sich durch die Handhabung ergeben könnten. So führt alleine das Anschließen von USB-, oder Stromanschluß aufgrund der damit verbundenen Bewegung an den Boards schnell zu Problemen. Für den ersten Aufbau-Versuch reicht der Steckboard-Aufbau allerdings allemal.

GPS-Uhr-Displayfarbe_w

Und das hier ist die Version von Dietrich (DJ2IO) mit angepasster Farbgebung
Im Folgenden noch einige Informationen, sowie das aktuellste Skript. Bei dem Script stelle ich an dieser Stelle eine TXT-Datei zur Verfügung. Diese ist dann in die Arduino-IDE zu kopieren. Die PDF’s sollen Arbeitshinweise und -hilfen bieten. Eine Gewähr auf Richtigkeit und Funktionsfähigkeit gebe ich hier ausdrücklich nicht. So kann bspw. die Belegung auch zwischenzeitlich leicht geändert worden sein, was im Script seinen Niederschlag gefunden hat, nicht aber in der hier angebotenen vorherigen Skizze,  sodass die Belegung nicht mehr 100% mit dem aktuellen Script übereinstimmt. Letztlich ist es aber so, dass unsere Geräte funktionieren. Das hier soll also als Projekt-Hilfe verstanden werden. Ansonsten gilt: Rückfragen an mich sind jederzeit per Mail möglich !
GPS-SD.ino (Der Sketch als txt-Datei)       Anschlußbelegung         GPS-Modul-Spannungs-Versorgung     VerzögerungsSchaltung     Helligkeitsregelung
Und es gibt aktuell auch die „Version 2a“. Dabei ist es so, dass nun noch eine Betriebsanzeigen-Ampel‘ oben rechts in der Ecke angezeigt wird. Dort lässt sich ablesen, ob (von links nach recht) die Speicher-Freigabe für den Datensatz gegeben ist, die GPS-Zeit mit dem ARDUINO synchronisiert wurde, der aktuelle Temperatur & Luftfeuchte-Wert verfügbar ist, und der aktuelle Luftdruck-Wert verfügbar ist. Alle vier Bedingungen müssen erfüllt sein, um einen Datensatz auf die SD-Karte zu speichern.
Das Programm dazu gibt hier
P1000441a
Wer darüber hinaus Interesse an ähnlichen Projekten hat, der sollte mal auf die Seite von „L05“, dem Amateurfunk-Ortsverein  in Essen schauen http://www.darc.de/distrikte/l/05/projekte/gps-stations-uhr/. Oder auch auf die folgende Seite https://lima05web.wordpress.com/arduino/. Dort finden sich auch die aktuell laufenden Projekte. So wird soeben ein WSPR-Gerät von Norbert (DG7EAO) fertiggestellt, bei dem es tatsächlich möglich ist, mit 0,1 Watt eine Distanz von 2.000 km zu überbrücken.[/caption]

GPS-Uhr mit 433 MHz-Empfang der Aussen-Sensoren

OLYMPUS DIGITAL CAMERA
(3.August 2016) Diese Erweiterung resultiert aus dem Folge-Projekt, bei dem eben genau diese Aussen-Sensorik ein Haupt-Entwicklungspunkt ist.
Hier erweist sich nun auch wieder die ‚Sandwich-Bauweise‘ mit den Platinen als immens vorteilhaft. Die Erweiterung ist nämlich auf der Hardware-Seite gar nicht so komplex. Es ist lediglich noch der 433 MHz-Empfänger mit aufzulöten und dann mit dem MEGA über den Pin19 (das ist einer der 6 wahlweise möglichen Interrupt-Pins auf dem MEGA > 2, 3, 18, 19, 20 und 21 < ) zu verbinden. Mehr nicht ! Die 8 Anschlüsse am Empfänger-Modul sind 2x Vcc, 3x GND, Antenne, Data und der nicht benötigte Anschluß ‚DER.  Wenn dann also die Anschlüsse für die Spannung an allen Anschlüssen angelötet sind, sind schon 5 Anschlüsse verdrahtet. Die Antenne ist nur ein 17,3 cm langer Draht, der (innen) um die Platine geführt wird (es geht auch eine ebenso lange freie Leiterbahn auf der Platine !!). FERTIG.

OLYMPUS DIGITAL CAMERA

… und hier mit dem farblichen Hinweis das die Außenwerte nicht empfangen werden konnten.
Noch ein Hinweis wie ich es gemacht habe: Ich mache mir immer wieder Sorgen um meine Löt-Künste und dass ich bei dieser Arbeit dann die Bauteile gleich mit ‚verheize‘. Aus dem Grunde habe ich auch an dieser Stelle eine Steckerleiste auf die Platine gelötet. Und auf die wird dann das Modul ’nur‘ aufgesteckt. Das erleichtert dann auch den Austausch bei möglichen Problemen. Auf dem Foto kann man dann auch gut sehen, dass selbst für die Buchsenleiste und das aufgesteckte Modul noch genügend Platz vorhanden ist.

[caption id="attachment_369" align="alignleft" width="225"]OLYMPUS DIGITAL CAMERA Hier ist das RX-Modul gut zu sehen (das ist der Blick auf die Unterseite)

Die eigentliche Arbeit ist dann an sich nur die Programm-Erweiterung. Aber selbst die kann man etappenweise aus dem Projekt Sensorik (Sketch ist am Ende der Seite) heraus übernehmen. Trotzdem …. die bisherige Anzeige muß sinnvoll neu positioniert werden, da jetzt mindestens zwei weitere Werte hinzukommen. Zudem soll auch der Hinweis kommen, wenn der Empfang mehrmals nicht möglich war. Und – logisch – auch diese Daten sollen mit gespeichert werden. Hier ist also die eigentliche Arbeit. Aber ‚Ihr‘ könnt Euch ja diese Arbeit sparen, denn hier ist der erweiterte Sketch (Stand: 23.08.2016/13:30). Im Gegensatz zu dem obigen Bild ist der Hintergrund wieder ’schwarz‘, der Wochentag – , als auch die EGNOS-Angabe (oben links) wird nicht rot, und das Tabellenkreuz ist weiß.
Ganz wichtig ist übrigens eine aktuelle UTFT-Bibliothek. Die letzte -, die ich jetzt nutze, ist Stand Juli 2016 – zu bekommen hier. Da hatte ich bei der Entwicklung zuvor erhebliche Probleme, da ich die damalige Bibliothek nicht mehr hatte und jetzt erst eine entsprechende aus dem Netz laden musste. Dort gibt es aber unzählige Versionen von unzähligen Anbietern – und die bauen leider nicht immer aufeinander auf. So hatte ich dann viele UTFT.h Versionen, von denen nicht eine einzige bei mir funktionierte. Mit dem obigen Link ist die Welt dann aber in Ordnung.

Die Sende-Einheit ist die gleiche, wie die, die ich in der Folge im ‚Projekt 3‘ beschreibe.

Meine diesbezüglich abschließende Planung sieht jedoch vor, dass ich versuchen werde, kommerzielle Aussen-Sensorik-Daten zu entschlüsseln, die auch in der Lage ist Windrichtung, -geschwindigkeit und Regenmenge zu erfassen und zu senden. Dann übernehme ich von dort auch die Helligkeit, sowie die Temperatur und die Luftfeuchte. Zudem ist in solchen Geräten die Problematik mit dem hier recht hohen Stromverbrauch des Aussen-Einheit bei unserem NANO-TX besser gelöst. Reicht bei uns eine 9V-Blockbatterie gerade mal 2 Tage (trotz nur 0,018mA Verbrauch), so halten es die kommerziellen Geräte mit einer 1,5V AAA-Batterie mehrere Monate aus – erst recht dann  ‚wenn auch noch Solar-gespeist‘ (!). Im ersten Schritt soll es aber schon allein für die Teilnehmer unserer OV-ARDUINO-Runde der Empfang der eigenen Sensor-Daten-Aussendung sein. Denn die kommerzielle Außensensorik, die ich selber hier schon habe, fehlt ja allen anderen Teilnehmern. Zudem baut man erfahrungsgemäß ein Projekt schrittweise auf. Ansonsten besteht die Gefahr das man sich derart verhaspelt, dass man später gar nicht mehr weiß was man da gemacht hat.

Projekt-2    „Sensorik – Daten-Speicherung – Anzeige“

Ideen gibt es viele. Möglichkeiten bei diesem Aufbau auch. So wäre zum Beispiel der Ausbau auf weitere Sensoren denkbar. Oder aber auch die Erweiterung dahingehend, dass die auf der SD-Karte gesammelten Daten später einmal auch als Linien-Diagramm auf dem Display angezeigt werden können.
Oder auch die Erweiterung um einen 433MHz-Empfänger (ca. 5,- €) , mit dem sich zusätzliche Aussen-Sensoren drahtlos empfangen lassen würden.
Oder die Erweiterung um ein WiFi-Modul, mit dem man dann ein solches Gerät auch aussen am Antennenmast betreiben kann. Wobei dann die Sensordaten und die GPS-Uhrzeit über WLAN ins eigene Netzwerk gesendet werden könnte.

Eine Locator-Berechnung wurde auch schon angeregt. Da wir ja bei dieser Uhr auch die Positionsdaten zur Verfügung haben, ließen sich diese Werte vermutlich auch auf den QTH-Locator umrechnen.

Aktuell geht es aber in der ‚Bastelgruppe‘ zunächst darum, einen separaten Aufbau mit einem MEGA2560 zu erstellen, mit dem wir auch wieder den Luftdruck, die Temperatur und die Luftfeuchte messen. Und dann sollen die Werte auch aufgezeichnet werden. Dazu wollen wir eine kleine SD-Karten-Platine verwenden. Die Uhrzeit, die wir für die Speicherung, bzw. deren spätere Zuordnung benötigen, bekommen wir dabei von DS3231-Chip. Ursprüngliche Entwicklungen von mir, mit einem DS1307, oder DS1302, waren in der Zeit-Stabilität aufgrund von Wärmeproblemen zu ungenau. Das ist zwar an dieser Stelle nicht das Problem – aber eben auch nicht schön. (Nachtrag Juli 2016: Das Problem wurde bald schon durch den Wechsel auf das quarzgenaue RTC DS3132 -Modul gelöst.)
Die Anzeige soll zunächst auf einem 4-Zeilen-LCD-Display erfolgen; später dann event. auch auf einem 1.8″-TFT-Display.
Und dann möchte ich noch mit der Datenübertragung experimentieren. WLAN mit ESP8266, oder per LAN in’s Heim-Netzwerk, oder eben auf 433 MHz mit der PWM-Technik. Mal sehen wie Zeit und Lust da sind.
(Stand: 25.Febr.2016)

Aufbau_LCD_SD_Sensorik

Nach ein paar Muster-Aufbauten und den nachfolgenden, üblichen Verbesserungen gibt es nun eine Version, bei der die Luftfeuchte, Temperatur und der Luftdruck, sowie die aktuelle Uhrzeit und das Datum in Intervallen von 10 Minuten auf einer SD-Karte gespeichert werden.
Dabei wird die Uhrzeit Sekunden-genau angezeigt, die Sensor-Daten werden alle 30 Sekunden aktualisiert und die Speicherung auf die Micro-SD-Karte erfolgt alle 10 Minuten einmal.
Das kann aber ganz sicher noch optimiert werden. So arbeite ich noch mit einem ‚DELAY‘. In jedem Falle besser wäre hier mit ‚millis()‘ zu arbeiten. Bei der Sensorik-Aktualisierung, als auch bei der Speicherung greife ich zwar auf die Uhrzeit zurück – aber eben diese anzeige der Uhrzeit sollte besser ohne ‚delay‘ realisiert werden.
(20.03.2016) Es ist zwischenzeitlich verbessert worden. So hat Volker schlicht eine Vergleichs-Variable ins Spiel gebracht, die dazu führt, dass die Anzeige erst dann erfolgt, wenn die Sekunde auch tatsächlich vollständig vorhanden ist. Alles andere ‚im Programm-Ablauf danach‘ wird sonst gar nicht erst ausgeführt. Das spart damit dann Prozessor-Leistung, womit gar nicht mehr passieren kann, dass das Programm zum Sekunden-Wechsel gerade was anderes zu tun hat.

Ich habe dann noch eine weitere Version erstellt, bei der eine 1.8″-TFT-Anzeige zum Einsatz kommt. Zudem hat dieses kleine Display auch noch auf seiner Rückseite einen SD-Karten-Slot. Damit spare ich mir dann auch das separate SD-Karten-Breakout-Board. ’ne Menge Platz eingespart, die man in einem Mini-Gehäuse später gut anderweitig gebrauchen kann.
P1000527web

Was fehlt ist jetzt noch die drahtlose Daten-Übertragung. Das braucht schon etwas wieder mehr Entwicklungszeit.
Verbaut wurden bisher je ein MEGA2560 (der UNO schafft das Datenvolumen nicht mehr), BMP085, DHT22, DS3231,  4-Zeilen-LCD-Display und ein kleines SD-Karten-Board für Micro-SD-Karten. Mit dem MEGA und dem Display dürften die Kosten dafür etwa bei 60,- € liegen.
Die beiden folgenden Sketche sind eine Vorversion (aus März 2016) des nachfolgenden Projektes !! Der Sketch für die LCD-Anzeige und hier der Sketch für die TFT-Anzeige.

Projekt 3  drahtlose Sensordaten Übertragung auf 433 MHz

Aufbauend auf dem vorherigen Projekt erfolgt nun noch die abschließende Erweiterung – welches wir vorab zunächst nur als weiteres Teilprojekt umgesetzt haben. So sollen zusätzlich auch noch Außen-Daten angezeigt und verarbeitet werden. Dazu soll dann aber kein Kabel verlegt werden müssen. Vielmehr werden die Daten nun drahtlos per Funk auf 433-MHz gesendet. Dazu benötigt wir 2 weitere Sketche. In der bisherigen PDF-Anleitung lassen sich die wesentlichen Details dazu nachlesen.
Später soll dann aber die GPS-Uhr auch um diese zusätzliche Funktionalität erweitert werden – der GPS-Sketch soll dann also noch um den 433-MHZ-Empfang erweitert werden, sodass dann sämtliche Wetterdaten – die von INNEN und die von AUSSEN – gemeinsam dargestellt werden.

Durch das Mitwirken von Volker (DL9VDV) konnten die zu sendenden Sensordaten so aufgebaut werden, dass bis zu 16 unterschiedliche Sensordaten übermittelt werden können. An sich sind es sogar 99 Sensoren, die man übertragen könnte. Dabei hat Volker das Signal so aufgebaut, dass die ersten beiden Ziffern einer Übertragung die Sensor-Nummer wiedergeben und zudem auch noch anzeigen, ob es sich um eine positive -, oder eine negative Zahl handelt. „10“ bedeutet dabei ‚Sensor1, positive Zahl‘. „11“ ‚Sensor1, negative Zahl‘.
Die Zeitdauer der Aussendungen liegt derzeit bei 20 Sekunden. Der Sende-Betrieb erfolgt auf einem ‚NANO‘ (bzw. einem der günstigen Nachbauten aus Fernost für 5,50 €). Das bedarf dann jedoch oftmals noch einen eigenen Treiber, damit der PC per EDI das Board ansprechen kann.  ‚Windows 10‘, als auch Windows 8 hat keine Probleme – da klappte es auch ohne den nachfolgenden Treiber. Bei ‚Windows 7‘ war jedoch der folgende Treiber nötig. Die entsprechende Software habe ich von der Seite des Händlers, bei dem ich alle NANO’s für unsere Gruppe gekauft habe https://www.roboter-bausatz.de/2/mega-2560-r3-board  .
Der Stromverbrauch an einer 9V-Blockbatterie beträgt 0,21 mA, bzw. 0,32 mA bei der Aussendung.

Der Sketch dazu ist dieser hier.    (Stand: 02.Juni 2016)
Und hier dann noch der Schaltungsaufbau.

Aufbauplan_433MHz_TX  (zum Vergrößern: Bild anklicken)

Es wird die Bibliothek RCSwitch.h, die es im Internet herunterzuladen gibt, verwendet. Benötigt werden neben dem ‚NANO‘ noch eine Sendeeinheit, ein Temperatur-Sensor (DHT22, oder AM2302), ggf. ein 4,7K Widerstand, ein 17 cm langer fester Draht als Antenne, sowie ein kleines Steckbrett und ein paar Verbindungskabel. Die beiden 433MHZ-Module (RX + TX) kosten zusammen ca. 10,- €. Wobei ich darauf hinweisen möchte, dass es sich bei dem Empfänger schon um einen Superhet mit Quarz handelt (siehe Anleitung). Der DHT-/AM-Sensor liegt bei ca. 5,- €.

Zwei weitere Sensoren, die interessant sein könnten diese außen zu betreiben, sind m.E. der BH1750FVI Lichtintesitätssensor, als auch ein Regensensor. Denn …… der Sender könnte problemlos eine Vielzahl weiterer Sensordaten zusätzlich übertragen !

Stand: 07.Juni 2016
OLYMPUS DIGITAL CAMERA     Nachdem das dann für sich alleine funktionierte, habe ich den letzten Sensorik-Sketch um den Empfänger für 433-Mhz erweitert.

OLYMPUS DIGITAL CAMERA

vollständige Anzeige mit Fehlermeldungen

Hier die nun vollständige Display-Anzeige auf der umfangreichen Empfängerseite. Die aufgrund der vielen Möglichkeiten und Funktionen auf dem ARDUINO ‚MEGA2560‘ basiert. Die Anzeige erfolgt auf einem 1.8″-TFT-Display. Den auf der Rückseite befindlichen SD-Karten-Slot habe ich bisher noch nicht fehlerfrei mit einbinden können. So nutze ich weiterhin das separate SD-Karten-Breakout-Board zur Speicherung. Dabei werden dann sämtliche angezeigten Daten und Werte alle 10 Minuten auf der SD-Karte gespeichert. Das Außendaten-Signal wird auch  überwacht ! Fehlt die Übertragung mehr als 65 Sekunden – also 3 fehlende Durchgänge – werden die entsprechenden Anzeigefelder rot überschrieben. Auch die Datenspeicherung wird überwacht ! Erfolgte die Speicherung nicht, erscheint auf dem Display ein gelbes Feld mit der Inschrift ‚SD‘.

Der Sketch dazu ist hier. Es ist die aktuellste Version vom 25.Juli 2016/19:30. Er beinhaltet die Korrekturen, die nach den Ergebnis längerer Tests der ersten Serien-Teile durch DJ2IO nötig wurden. So wurde eine zusätzliche Korrektur der vom PC beim Laden übernommenen Uhrzeit eingebaut. Da die Uhrzeit an sich auf dem DS3132 nicht verändert werden muß und das Programm davon ausgeht, dass die RTC immer die ‚MEZ‘ liefert, kann also der Automatismus an dieser Stelle entfernt werden. Damit stehen derzeit nun folgende Möglichkeiten im Sketch (an den entsprechenden Stellen) als Auswahl zur Verfügung:
a) Es wird, wie bisher, die Systemzeit automatisch beim Compilieren und Laden vom PC übernommen und eingelesen. Dazu muß der obere Bereich (Zeile 162-183) wieder einkommentiert werden. Die Zeile 187 bleibt auskommentiert !
b) Im vorherigen Falle geht das Programm davon aus, dass es sich um die ‚MEZ‘ handelt. Ist es jedoch die ‚MESZ‚, so kann im unteren Bereich die zusätzliche Zeile 644 einkommentiert werden. Die Zeile 187 bleibt auskommentiert !
c) Und wenn die Zeit manuell auf einen x-beliebigen Wert gesetzt werden soll, dann muß alles vorherige auskommentiert werden und die Zeile 187 einkommentiert werden. Dabei ist dann aber auch noch das Datum und die gewünschte Uhrzeit manuell vorzugeben. Es sollte z.B. die Uhrzeit sein, die beim Compilieren & Laden aktuell ist.
Im Augenblick ist jede Möglichkeit auskommentiert (Normalfall), sodass beim Compilieren & Laden die RTC-Zeit nicht gesetzt wird.

Zudem gibt es aktuell die Erkenntnis, dass beim Ziehen der SD-Karte im laufenden Betrieb und einem späteren Wiedereinstecken in den Karten-Slot, ein Neustart des ARDUINO (oder Reset) nötig ist. Ansonsten erfolgt keine weitere Speicherung mehr (was man auch an dem gelben Hinweis-Feld auf dem Display sehen kann). 
Der Grund ist nun endlich gefunden: SD-Karten über ‚2GB‘ führen zu Problemen, da der ARDUINO bei größeren Karten nicht immer zuverlässig die Speicherbereiche festlegen kann. Schon mal lässt sich das durch die Formatierung der Karte beheben. Aber schon beim nächsten Kalt-Start ist eine Initialisierung wieder nicht möglich. Das passiert bei einer 2GB-Karte nicht ! 

Zudem habe ich die Prüfung, bzw. das Prüfungs-Ergebnis der SD-Karte nun von Beginn an sichtbar gemacht. So wird nicht nur bei fehlgeschlagener Speicherung das ‚gelbe SD-Feld‘ eingeblendet, sondern auch zusätzlich noch links daneben ein ‚grünes SD-Feld‘ wenn bereits die Initialisierung erfolgreich war – bzw. ein weiteres gelbes Fenster, wenn das nicht der Fall war.

Eine Aufbau-Skizze werde ich beizeiten mal nachliefern. Gerade für den nicht so versierten Bastler ist das sicher an dieser Stelle die größte Herausforderung. Das ist nicht ganz trivial. Der Sender ist da noch recht einfach und kann dann auch in ein kleines Gehäuse für den Außeneinsatz verbaut werden. Bei dem umfangreichen Equipment der ‚Basisstation‘ muß man schon aufpassen. Im Übrigen bietet sich bei dauerhaftem Aufbau wieder zwingend ein Lötaufbau an. Es kommt sonst immer wieder zu fehlenden Kontakten. Das kann schon mal recht ärgerlich sein.