INDI auf dem Raspberry einrichten

Status
Es sind keine weiteren Antworten möglich.
Die Softwaren des Astroberry kosten entsprechend der Debian-Philosophie 0€. Aber es geht hier in diesem Thread um INDI auf Raspberry-Pi zurichten. Im speziellen wollen wir ein Verständnis und ein Gefühl bekommen für den Umgang und Hinzufügen neuer Hardwareperipherie wie GPS-Modulenund und wie es sich in den INDI-Stack integriert lässt.

Die Fragen zum Finanziellen und zum Nutzen sind hier nicht Thema, deswegen will ich hier auch in die falsche Richtung diskutieren. Wir können das in diesem Thread weiter machen.

Letztlich wollen wir doch immer nur das eine: Hardwareanstecken, Einschalten, und Sterne genießen.

So sollte es sein und so läufts ja auch schon, nur jetzt kommen halt neue GPS Module ins Spiel und der undurchsichtige Bluetooth-Stack macht aus uns wieder Ochsen vorm Berg und freudige Spielkinder, die wieder was neues entdecken.

Kurz: Das macht einfach Spass.

Grüße,

Sebastian
 
Zuletzt bearbeitet:
Hallo!

Noch bin ich dran, um lcdproc mit lcdgps am Raspi zum Laufen zu Bewegen. Leider ist nur der HD44780 Treiber derjenige, welcher die meisten Optionen bietet.
Nachteil: Es gibt nicht wirklich viele LCD-Displays, welche in der Familie wirklich interessant sind.
Bedingungen: 3,3V, I2C oder zumindest 4BIT-Modus, Rest macht ein dann PCF8574(A).
Einzige gefundene Variante, bekommt noch eine Rote Folie vorne drauf. Die neueren Sachen von Electronic Assembly bieten weitaus mehr Flexibiltät, vor allem in der Hintergrundbeleuchtung mit rot, passen aber nicht so recht. ich werde da wohl noch einige Varianten auf dem Steckbrett testen müssen.

P.S. Hier kommt der Basteltrieb vor allem bei schlechtem Wetter voll zum Ausbruch :cool: :regen:
 
Hallo Thomas,
Ein BT Modul mit zwei UARTs kenne ich nicht. Warum nimmst du nicht zwei HC05 oder HC06?
Hallo!

Habe ich gemacht mit einen kleinen Irrweg (noch) über zwei JDY-16. Die Dinger muss ich mir noch genauer Anschauen, Konfiguration und Nutzung sehr zäh, der Erfolgt blieb allerdings trotz sehr später Ursachensuche am WE aus.
Als Klassiker habe ich dann zum dem einen HC-06 noch ein 2. gebaut mit einem Beitian BN-220 (GPS), läuft klasse.
Intensiver Test über eine Nacht steht noch aus.
Habe somit in der MeteoStation jetzt eine "Bluetooth-Phalanx" :giggle:
 
Das GPS Modul "Ublox NEO-6M" auf dem Astroberry hat direkt nach dem einstecken schon im Sekundentakt zu blinken angefangen, kurz darauf hat der USB-Seriell Wandler mit heftigen Blinken an der Sendeleitung einen Paketstrom angezeigt und zu sehen war das im Anhang als .png Bild.

Den GPSd habe ich im INDI Control-Panel vorher noch eingeschaltet. Versorgt ist das Modul mit 5V vom USB-Seriell-Wandler. Die mitgelieferte Patch-Antenne ist dran.

Ich hab nichts gemacht.
 

Anhänge

  • Rpi_nguyen_astroberry_gps.png
    Rpi_nguyen_astroberry_gps.png
    230,7 KB · Aufrufe: 528
Hallo, Anbei ein Foto von der umgebauten Wetterstation, jetzt mit GPS und 2xBT
 

Anhänge

  • Meteostation04.jpg
    Meteostation04.jpg
    125,8 KB · Aufrufe: 289
Krass, Du hast die Platine da unten selbst geätzt?
Passt soviel Bluetooth-Software in den Arduino-Speicher?

Cooles Teil.

Mir ist noch was eingefallen zu dem GPS-Modul bezüglich der Empfangsqualität, die ich auch bei mir verbessern mag: Das Ublox-Modul hat an der Unterseite 4 große Lötpads. Ich vermute, wenn man diese flächig gut an Masse anbindet, sollten die Analog-Schaltungen im GPS-Modul einen ruhigeren Massebezug bekommen. Ich habe das mit (zu großem) Kupferblech versucht, aber sowohl das Ublox als auch das Blech bringen die Wärme vom Lötkolben so schnell weg, dass das unverbleite Lötzinn nicht haftet.
 
Krass, Du hast die Platine da unten selbst geätzt?
Hallo!
Nicht geätzt!, habe vor Jahren mir eine A3-Portalfräse selbst gebaut.
Entwicklung einer Platine: Erstellung von Schaltplan und Board unter CadSoft Eagle 7.x -> Wandlung per ULP in G-Code -> Isolierfräsen unter Linux-CNC 2.7.X -> Reinigung mit "weicher" Messingbürste -> Löten -> Unter Spannung setzen und hoffen, dass keine Rauchzeichen kommen ;)

Passt soviel Bluetooth-Software in den Arduino-Speicher?

Es gibt keine einzige Zeile Bluetooth-Code, die Module sind transparent im Signalweg integriert, d.h. die Hard- und Software bekommt es nicht mit, solange die Übertragungsraten im Limit des Moduls bleiben. Einzig die Schnittstelle im Raspi ist unterschiedlich, /dev/ttyUSBX oder /dev/ttySX ist in der Regel kabelgebunden, /dev/rfcommX kommt direkt aus dem BT Modul des Raspi's. Konfiguration der Module über ein Terminal mit AT Befehlen vor dem ersten Einsatz, Entnahme der Info's aus den Datenblättern

Cooles Teil.

Mir ist noch was eingefallen zu dem GPS-Modul bezüglich der Empfangsqualität, die ich auch bei mir verbessern mag: Das Ublox-Modul hat an der Unterseite 4 große Lötpads. Ich vermute, wenn man diese flächig gut an Masse anbindet, sollten die Analog-Schaltungen im GPS-Modul einen ruhigeren Massebezug bekommen. Ich habe das mit (zu großem) Kupferblech versucht, aber sowohl das Ublox als auch das Blech bringen die Wärme vom Lötkolben so schnell weg, dass das unverbleite Lötzinn nicht haftet.

Ob hier eine größere Massefläche Sinn macht, wage ich zu bezweifeln, da wir hier im Wellebereich von wenigen cm sind. Bei LW, MW und KW stimme ich dir voll und ganz zu, hier IMHO aber nicht.
 
Hallo!

Raspberry pi und lcdproc habe ich nun zum Funktionieren bewegen können. Allerdings nicht mit den vorgesehenen Displays von EA (DOGM....), sondern es wird sehr klassisch. Es muss zwingend eines sein, dass mit dem Urvater 44780 kompatibel ist, sonst geht da nichts.
Allerdings ist mit beim durchsehen der Firmware der Meteostation und Suche der Unterstützung vom Controller ST7036 eine Idee gekommen. Es gibt bei EA eine Library für den Arduino, welche den ST7036 unterstützt.
Die Firmware wird dahingehend angepasst, dass die einzelnen Daten auf dem Display in der Meteostation ausgegeben werden. Somit kann man das gute Stück auch Stand Alone nutzen.
 
Langsam. Der ST7036 ist deine Kernintelligenz im System? Und nun passt Du den C-Code an für das Display.

Ich dachte das Bluetooth ist dazu da, dass die Daten per Funk übertragen werden, und auf dem entfernten Rechner ausgewertet werden.
 
N'Abend!

Kleines Verständnisproblem:
1x Bluetooth übermittelt die Daten von der Artduino Meteostation an einen Treiber von Indi.
1x Bluettoth übermittelt die Daten vom GPS an den GPS-Deamon. Darauf greift ntp und ein Treiber von Indi zu.
Ich möchte die GPS-Daten per lcdproc auf einem kleinen Display am Raspi ausgeben, um mit zu bekommen, wann der Fix steht oder weg ist. Da hatte ich die ganze Zeit mit einem ST7036 und einem SSD1803 herum experimentiert. Leider ist die Initialisierung auf den HD44780 zugeschnitten (ist auch der Treiber schlechthin), sodaß ich die anderen beiden nicht habe zu Laufen bewegen zu können.

1. für lcdproc habe ich nun eine Lösung mit einen kompatiblen Display gefunden (sogar 3,3V), muss nur die Platine erstellen und das Ganze ausgiebig testen.
2. für den ST7036 habe ich bei Electronic Assembly eine library für den Arduino gefunden. Da noch mind. 10kb Platz sind im Flash, ließe sich die Firmware soweit erweitern, dass direkt an der Wetterstation das Display die "Wetterdaten" ausgeben kann, somit muss ich nicht jedesmal den Raspi mit rauskramen, um nur mal zu schauen, wie wird's denn.
Angeschaut habe ich mir das Ganze schon, die Basis bildet die Meteostation Firmware. Aus der Testfirmware hole ich mir die Ausgabenblock für die serielle Schnittstelle, und ersetze das Serial.Print durch Displayausgaben, muss da allerdings das Ganze hintereinander ausgeben, max. 3 Werte gleichzeitig.

Auszug Firmware:
C:
void loop()
{
  byte pin, analogPin;

  /* DIGITALREAD - as fast as possible, check for changes and output them to the
     FTDI buffer using Serial.print()  */
  //Nacho Mas. TODO: sustitute this call by
  //mapAndSendDigital()
  //checkDigitalInputs();

  /* SERIALREAD - processing incoming messagse as soon as possible, while still
     checking digital inputs.  */
  while (Firmata.available())
    Firmata.processInput();

  /* SEND FTDI WRITE BUFFER - make sure that the FTDI buffer doesn't go over
     60 bytes. use a timer to sending an event character every 4 ms to
     trigger the buffer to dump. */

  currentMillis = millis();
  if (currentMillis - previousMillis > samplingInterval) {
    previousMillis += samplingInterval;
    checkMeteo();
    runMeteoStation();
/* Hier kommt der Display Code !!!!
    checkDigitalInputs();
    /* ANALOGREAD - do all analogReads() at the configured sampling interval */
    for (pin = 0; pin < TOTAL_PINS; pin++) {
      if (IS_PIN_ANALOG(pin) && pinConfig[pin] == ANALOG) {
        analogPin = PIN_TO_ANALOG(pin);
        if (analogInputsToReport & (1 << analogPin)) {
          //Nacho Mas. Read analog and do something before send. Then send it
          mapAndSendAnalog(analogPin);
        }
      }
    }
    // report i2c data for all device with read continuous mode enabled
    if (queryIndex > -1) {
      for (byte i = 0; i < queryIndex + 1; i++) {
        readAndReportData(query[i].addr, query[i].reg, query[i].bytes);
      }
    }
  }
}

Auszug aus Testfirmware:
C:
void loop(){
    Serial.println("LOOP BEGIN\t");
    runMeteoStation();
    Serial.println("RESULT\t");
    Serial.print("IR:");
    Serial.print(IR);
    Serial.print(", P:");
    Serial.print(P);
    Serial.print(", HR:");
    Serial.print(HR);
    Serial.print(", DEW:");
    Serial.print(dewPoint(Thr,HR));
    Serial.print(", IR Radiance:");
    Serial.print(Light);
    Serial.print(", Temp HR:");
    Serial.print(Thr);
    Serial.print(", Temp IR:");
    Serial.print(Tir);
    Serial.print(", Temp P:");
    Serial.println(Tp);
    Serial.println("\n");
    delay(1000); // wait a second before printing again
}

Hier zum Schluss noch ein Beispiel von Electronic Assembly:
C:
#include <Arduino.h>
#include <SPI.h>
#include <dogm_7036.h>
/*Available functions in dogm_7036 Libraray:
void initialize       (byte p_cs, byte p_si, byte p_clk, byte p_rs, byte p_res, boolean sup_5V, byte lines);
void string           (const char *str);
void ascii            (char character);
void position         (byte column, byte line);
void displ_onoff      (boolean on);
void cursor_onoff     (boolean on);
void define_char      (byte mem_adress, byte *dat);
void clear_display    (void);
void contrast         (byte contr);
*/

dogm_7036 DOG;
byte arrow_down[] = {0x04, 0x04, 0x04, 0x04, 0x15, 0x0E, 0x04, 0x00}; //pattern for own defined character

//the following port definitions are used by our demo board "EA PCBARDDOG7036"
int led       = 3;
int led_red   = 3;
int led_green = 5;
int led_blue  = 6;
void init_backlight(boolean mono);
void mono_backlight(byte brightness);
void rgb_backlight(byte red, byte green, byte blue);


void setup()
{
  init_backlight(false); //use rgb backlight in this sample code. Please change it to your configuration
  DOG.initialize(10,0,0,9,4,1,DOGM163);   //SS = 10, 0,0= use Hardware SPI, 9 = RS, 4 = RESET, 1 = 5V, EA DOGM163-A (=3 lines)
  DOG.displ_onoff(true);          //turn Display on
  DOG.cursor_onoff(true);         //turn Curosor blinking on
  DOG.define_char(0, arrow_down); //define own char on memory adress 0
}


void loop()
{
  DOG.clear_display();            //Clear the whole content
  DOG.position(1,1);              //set Position: first line, first character
  DOG.string("DOGM163-A");        //show String
  DOG.position(1,2);              //set Position: second line, first character
  DOG.string("ST7036 COG");   
  DOG.position(1,3);           
  DOG.string("3 lines 16 char"); 
  rgb_backlight(255, 0, 0); //red backlight
  delay(2000);
  DOG.clear_display();         
  DOG.position(1,1);
  DOG.string("ELECTRONIC");
  DOG.position(9,2);
  DOG.string("ASSEMBLY");
  DOG.position(1,3);
  DOG.string("lcd-module.com");
  rgb_backlight(0, 255, 0); //green backlight
  delay(2000);
  DOG.clear_display();
  DOG.position(1,1);           
  DOG.string("Arduino Library");
  DOG.position(1,2);
  DOG.string("0wn Char ");
  DOG.ascii(0);                   //show own defined char (adress 0, see DOG.define_char())
  DOG.position(1,3);
  DOG.string("low power");
  rgb_backlight(0, 0, 255); //blue backlight
  delay(2000);
  DOG.clear_display();
  DOG.position(1,1);           
  DOG.string("LED-Backlights:");
  DOG.position(1,2);
  DOG.string("5 monochrome");
  DOG.position(1,3);
  DOG.string("full color RGB");
  rgb_backlight(255, 255, 0); //purple backlight
  delay(2000);
}

//The following functions controll the backlight with a PWM. Not needed for the display content
void init_backlight(boolean mono)
{
  if(mono) //EA LED55X31-G, EA LED55X31-W, EA LED55X31-B, EA LED55X31-A, EA LED55X31-R
  {
    pinMode(led,  OUTPUT);
    mono_backlight(255);
  }
  else  //EA LED55X31-RGB
  {
    pinMode(led_blue,  OUTPUT);
    pinMode(led_green, OUTPUT);
    pinMode(led_red,   OUTPUT);
    rgb_backlight(255,0,0);
  }
}
//Use this funtion for monochrome backlight
void mono_backlight(byte brightness)
{
  analogWrite(led, brightness);
}
//Use this function for RGB backlight
void rgb_backlight(byte red, byte green, byte blue)
{
  analogWrite(led_red,  red);
  analogWrite(led_green, green);
  analogWrite(led_blue,   blue);
}

P.S. aktuell hat der Basteltrieb bei mir voll zugeschlagen, und ich lass da auch nicht locker, bis das Teil läuft.
Ist allemal besser als Corona-Buden-Koller ;)
 
Zuletzt bearbeitet:
Ok, ich glaub ich habs verrafft: Electronic A. liefert einen Arduino Treiber für ein SPI-gesteuertes Mehrfarb-LCD Display. Den nutzt Du um Deine Meteo-Umweltdaten auf dem LCD lesbar zu machen.

Daher auch die Main-loop() des Arduino, in der Du zyklisch alles pollst und die Meteostation bedienst mit einem eingebetteten Zustandsautomaten ( checkMeteo(); runMeteoStation(); ).

Deinen Ansatz des Arduino als Hardware/Software Treiber für das Display finde ich cool und wird funktionieren, da bin ich sicher.

__

Es gibt zwar auch einen Linux Treiber Kernelmodul. Jedoch weiß ich nicht wie man den Device Tree Blob Overlay in der Boot-Konfiguration sauber aktiviert. Bei mir im Astroberry-Image liegen die Overlays unter /boot/overlays mit der Dateiendung .dtbo und sie werden in der /boot/config.txt aktiviert:

dtparam=spi=on
dtoverlay=anLcd_raspi.dtbo

## Original Config aus Github-Source:
#device_tree_overlay=overlays/anLcd_raspi.dtbo

Der Treiber lässt sich sicherlich auch direkt auf dem laufenden Raspi-Image "nativ" kompilieren, sodass eine Toolchain wie Yocto nicht benötigt wird (kein Crosscompile). Ich kann das mal durchspielen, wenn Du dennoch an der Linux Variante interessiert bist.
Ich kann schlecht abschätzen, was weniger Arbeit macht.

"Wie oft habe ich Euch gesagt, ihr sollte für jede Arbeit das richtige Werkzeug benutzen!" - James Doohan aka Montgomery Scott (Star Trek)
 
Der Treiber lässt sich sicherlich auch direkt auf dem laufenden Raspi-Image "nativ" kompilieren, sodass eine Toolchain wie Yocto nicht benötigt wird (kein Crosscompile). Ich kann das mal durchspielen, wenn Du dennoch an der Linux Variante interessiert bist.
Ich kann schlecht abschätzen, was weniger Arbeit macht.

"Wie oft habe ich Euch gesagt, ihr sollte für jede Arbeit das richtige Werkzeug benutzen!" - James Doohan aka Montgomery Scott (Star Trek)

Moin!

Es muss ein Treiber für lcdproc erstellt werden je nach Controller-Typ, dazu noch das Device, wo das Display dranhängt.
Da eh schon die RTC am i2c hängt, würde sich für das Display auch i2c anbieten. Ob nun direkt, der SSD1803 kann das wohl, oder über einen PCF8574 ff. ist IMHO wohl der bessere Weg. Generell würde ich dem PCF8574 vorziehen, da kann man eine 4Bit Ausgabe implementieren und ist mit den Display doch recht flexibel.

Bevor da aber jetzt Zeit investiert wird, teste ich lieber mal die Hardware mit dem kompatiblen Display.
 
Hallo!

das LCD an der MeteoStation läuft, ist ein EA DOGM163, sogar mit Hardware-SPI. Habe das einiges an Platinenmaterial verschossen, aber was macht man nicht alles für's Hobby. :giggle:
Schraube jetzt noch an dem mechanischen Einbau, die Messwerte werden analog der Indi-Steuerung dargestellt, einen Temperaturwert habe ich ausgelassen, sonst wäre noch eine 4. Seite notwendig geworden. Sobald alles rund läuft kommt auch der Quellcode inkl. Platinenlayout.
Auf Grund der max. Länge von 16 Zeichen pro Zeile sind für die Bezeichner nur 7 Zeichen geblieben, 6 Zeichen inkl. Komma für die Werte und 2 Zeichen für die Einheiten, sofern welche vorhanden sind.
Somit kann man die Station auch autark betreiben, ohne Raspi und Indi.
 

Anhänge

  • DSC_0533.JPG
    DSC_0533.JPG
    711,7 KB · Aufrufe: 274
  • DSC_0534.JPG
    DSC_0534.JPG
    793,4 KB · Aufrufe: 373
  • DSC_0535.JPG
    DSC_0535.JPG
    893 KB · Aufrufe: 260
  • DSC_0536.JPG
    DSC_0536.JPG
    840,2 KB · Aufrufe: 372
N'Abend,

lcdproc läuft, leider nur mit einem 2x16 Testdisplay, aber immerhin. Zur Zeit noch im "Bastelstadium", aber am Wochenende hat man Zeit. Sobald in einer vernünftigen Form, gibt es Bilder.
 
Schickes Display - sogar mit Backlight!
Pressur[e] vielleicht abkürzen?
 
N'Abend,

lcdproc nun auch mit 4x20 Zeichen. Habe leider mit billigem Kram experimentiert, ging in die Hose.
Die Schaltung selbst mit einem PCF8574 sauber in SMD aufgebaut, 3,3V Versorgung dazu, läuft. :):):)
Morgen wird noch die Steuerung der Hintergrundbeleuchtung bestückt, die Anzeige rot foliert,
das sollte es dann sein.
 

Anhänge

  • DSC_0538.JPG
    DSC_0538.JPG
    679 KB · Aufrufe: 377
Hallo!
Der Raspberry 4 als Astrocomputer ist nun komplett fertig.
Features:
Raspian OS mit 64Bit Kernel, Onboard GPS und RTC, als Anzeige eine EA DIP203A für Systemdaten, Uhrzeit und Koordinaten
Dazu die MeteoStation mit Dual Bluetooth für GPS und Wetterdaten.
Software: KSTARS mit INDI, NTP nutzt als Zeitserver offline GPS als Quelle.
Bilder gibt es, sobald er seinen ersten Einsatz mit dem finalen Setup hat.
 
Hallo!
Anbei die Bilder nun vom fertigen Raspi, ich habe Dietrichs Rat befolgt :cool:.
Das Sideboard ist noch in der Urversion ohne raus geführten I2C-Bus, das neue hat das schon für das Display.
Muß ihn nur noch intensiv testen, ob er stabil über mehrere Stunden läuft. Simuliert mit GPS und Wetterdaten über Bluetooth klappt das schon. Der Deckel ist herausziehbar gestaltet, um bei warmen Temperaturen durch den Kamineffekt den Raspi zu kühlen, bei Temperaturen unter 10°C sollte der Deckel geschlossen bleiben, sonst wird es zu kalt. Und gegen helle LED's hilft ein schwarzer Edding ;)

P.S: das Gehäuse ist ein reiner Zweckbau, d.h. es geht wesentlich schöner.
 

Anhänge

  • RAspi_front.JPG
    RAspi_front.JPG
    116,5 KB · Aufrufe: 374
  • Raspi_left.JPG
    Raspi_left.JPG
    552,8 KB · Aufrufe: 369
  • RAspi_right.JPG
    RAspi_right.JPG
    451,6 KB · Aufrufe: 353
  • Raspi_Sideboard_old.JPG
    Raspi_Sideboard_old.JPG
    595,4 KB · Aufrufe: 454
  • Raspi_GPS.JPG
    Raspi_GPS.JPG
    108,5 KB · Aufrufe: 403
  • Raspi_Uptime.JPG
    Raspi_Uptime.JPG
    84 KB · Aufrufe: 363
  • Raspi_Last_graph.JPG
    Raspi_Last_graph.JPG
    101,3 KB · Aufrufe: 338
  • Raspi_Memory.JPG
    Raspi_Memory.JPG
    102,6 KB · Aufrufe: 383
Hallo!
Als zweites noch die Meteostation in Aktion und ein Bild mit gehoben Deckel vom Raspi zur Regulierung der W#ärme.
 

Anhänge

  • Meteo_Display.JPG
    Meteo_Display.JPG
    738 KB · Aufrufe: 347
  • Meteo_Connected.JPG
    Meteo_Connected.JPG
    1 MB · Aufrufe: 361
  • Raspi_Last.JPG
    Raspi_Last.JPG
    90,6 KB · Aufrufe: 408
Sogar mit Projekt Logos und einheitlicher Designfarbe. Hast Du noch was kommerzielles damit vor ;-) ?
 
Nein, nix Kommerzielles, das hellrote Plexiglas ist aktuell das stabilste was ich gefunden habe. Ursprünglich war geplant, das Ganze in einem durchsichtigen Gehäuse unter zu bringen. Leider ist das Baumarktplexiglas viel zu spröde. Zusätzlich wollte ich die LED's in der Helligkeit zähmen, aber ein schwarzer Edding ist zehnmal besser. Der Aufkleber war nur ein Test, was das Beschriftungsgerät grafisch so kann. Leider blieb es hinter meinen Erwartungen zurück.
Ansonsten kann sich das Ergebnis sehen lassen.
 
Ich finde das ist ein sehr sehr gutes Ergebnis. Thomas ich freue mich für Dich. Du bringst viele inspirierende Ideen hier rein.

Du scheust keine Mühen um Dein Leben technisch zu verbessern.

Du formattierst ja jede Information auf entsprechende Display Zeile. Machst Du das im C-Code, hast Du Dir ein XML-Template angelegt, wie sieht das aus? Woher ziehst Du die Information zur aktuellen Bewölkung?

Eine abdunkelnde Folie über ein Display zu kleben ist besser als umständlich den Dimmer-Widerstand an einem Display einzustellen, wenn man keinen Zugriff auf das Backlight-Register hat oder es einfach nicht geht. Die System-Uptime auch anzeigen zu lassen ist eine gute Idee ;-)

Hier im Allgäu habe ich eine hohe Luftfeuchtigkeit, deshalb suche ich gerade nach einem neuen Beobachtungsstandort. An meinem alten Sternenguckerplatz habe ich oft ab 3Uhr nachts Taubeschlag, dann muss ich auf Jupiter richten um den Fangspiegel wieder frei zu kriegen. Was sagst Du: Taukappe oder Heizdraht?
 
Hallo Sebastian!
Die Ausgabe des Displays am Raspi direkt wird durch lcdproc formatiert. Der LcdProc-Server kümmert sich nicht nur im die Formatierung, er verwaltet auch die einzelnen Seiten der Anwendungen, welche ihm Informationen übergeben.
Wie das genau nun funktioniert, hab ich noch nicht im Detail erforscht, es ist aber sehr abhängig von dem, was das angeschlossene Display kann, da die Bandbreite sehr groß ist. Von 1x8 bis hin zu 4x40 Zeichen ist viel möglich.
Die aktuelle Bewölkung wird aus der Solarzelle und IR-Sensor berechnet, ist in der Firmware der Meteostation hinterlegt (hardwarenahes C)
Die rote Abdeckung des Displays ist der Tatsache geschuldet, dass es kein HD44870 kompatibles Display mit ansprechender Größe gibt, welches rot hinterleuchtet ist. Das EA DIP203 ist schwarz auf weiß, sodass der weiße Hintergrund nun rot leuchtend erscheint durch das rot durchsichtige Plexiglas.
Es gibt zwar schon richtig schöne Sachen mit Full-RGB Hintergrund, diese erfordern aber komplett andere Treiber und sind für lcdproc nicht verfügbar.
Mittlerweile nutze ich beides für das Leitrohr, Taukappe ist von Haus aus integriert (ausziehbar) und ein kleine regelbare Heizung ist auch mit an Board.
Und da ist schon eine neue Idee: Wenn die Aussentemperatur sich langsam dem errechneten Taupunkt nähert, könnte man die Taukappenheizung über ein PWM-Signal langsam zuschalten lassen, d.h. dass die Heizleistung steigt mit zunehmend kleiner wertender Differenz zwischen beiden Werten bzw. wenn negativ dann richtig Power.
Im der Meteostation ließe sich das mit ein paar Zeilen Code bewerkstelligen, ich muss nur dann noch die Info per BT in den Raspi bekommen und dort die Heizungssteuerung von da aus regeln. Die BT Module können ja einzelne Schaltkanäle oder auch PWM mit übertragen, nur wie ich die im Raspie separiere, das muss ich noch ausknobeln.
Und es kommt ja wieder ein Bastelwinter .... ;):cool:
 
Hallo Sebastian,

anbei ein paar Zeilen Code (Arduino) für das DOGM Display mit7036 Controller:
Initialisierung:
C:
void dispinit(){   //init Display
  DOG.initialize(10,0,0,9,8,1,DOGM163);   //SS = 10, 0,0= use Hardware SPI, 9 = RS, 8 = RESET, 1 = 5V, EA DOGM163-A (=3 lines)
  DOG.displ_onoff(true);          //turn Display on
  DOG.cursor_onoff(false);         //turn Curosor blinking off
  DOG.clear_display();
  DOG.contrast(10);
}

die eigentliche Ausgabe:
C:
void flout(char lb[8],float flch,int e1,int e2,int row){  //label[8] as string, value, unity char 1 and 2 in decimal, row 1-3
  dtostrf(flch, 6, 1,DispOut);
  DOG.position(1,row);  //column 1 output Label
  DOG.string(lb);
  DOG.position(9,row);  //column 9 output Value
  DOG.string(DispOut);
  DOG.position(15,row);  //column 15 output unity
  DOG.ascii(e1);
  DOG.ascii(e2);
}

void dispside(int si){    //output side number as an small screen saver
  DOG.clear_display();
  DOG.position(5,2);
  DOG.string("Side ");
  DOG.ascii(si);
}

void display(){     //output Display
  if (sw==300) dispside(49);
  else if (sw==330){
      dispinit();
      flout("TempPr",Tp,223,67,1);
      flout("Humid-R",HR,37,32,2);
      flout("Pressur",P/100,109,98,3);
  }
  else if (sw==600) dispside(50);
  else if (sw==630){
      DOG.clear_display();
      flout("Dewpoin",Dew,223,67,1);
      flout("Clouds",Clouds,37,32,2);    
      flout("SkyTemp",skyT,223,67,3);
  }
  else if (sw==900) dispside(51);
  else if (sw==930) {
      DOG.clear_display();
      flout("Radianc",Light,32,32,1);
      flout("InfrRed",IR,32,32,2);
      flout("TempIR",Tir,223,67,3);
      sw = 0;
  }  
  sw++;
}

Die Begrüßung im void setup:
C:
//Init dogm
  dispinit();
  DOG.position(4,1);
  DOG.string("Welcome to");
  DOG.position(3,2);
  DOG.string("MeteoStation");
  delay(3000);
  DOG.clear_display();
  DOG.position(1,1);
  DOG.string("start the");
  DOG.position(1,2);
  DOG.string("measurements ..");
}

und zum Schluss das wichtigste am Ende von void loop:
C:
...
  display();
  delay(10);    //time is needed by display
}
 
War die letzen Wochen mit meinem TTV "Telescope Transportation Vehicle" beschäftigt. Den muss ich irgendwie durch den TÜV bringen. Danach werde ich das Display und den Ublox GPS Receiver dort einbauen.

Ein Tipp wenn Du versuchst mal Rostlöcher zu beseitigen: Ab einer kritischen Lochgröße verschwindet jegliche Spachtelmasse hinter dem Ereignishorizont eines Rostloches.
 
Moin,

es gab früher die gefürchteten Karmann-Wellen, verursacht durch die Metallgefüge-Erschütterungen, die der galloppierende Rostfraß verursachte, wenn man die Detektoren für die Lokalisierung der Ausgangspunkte entwickelt hatte war meist schon das Toleranzkriterium der technischen Überwachung überschritten... :cautious:

... gegen Rostlöcher hilft nur schweißen ... Spachtel ist unmagnetisch, und das wissen die TÜV-Menschen

Wünsch Dir viel Glück und dann wieder Zeit für die Sterne...

CS
Jörg
 
Status
Es sind keine weiteren Antworten möglich.
Oben