Jump to content

adrianbernhard

Members
  • Gesamte Inhalte

    27
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von adrianbernhard

  1. jupp. Hat funktioniert. Zwar erst beim dritten Anlauf und nach neuklonen des Quellcodes. Danke. Die Infos wurden ja nun bei git auch eingepflegt.
  2. Hallo, ich wollte heute auf 2.0 updaten. Nur gelingt mir nicht mehr auf meinem raspberry pi mit fedora das kompilieren. Anscheinend findet das make script nicht die richtigen Pfade: Package libusb-1.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libusb-1.0.pc' to the PKG_CONFIG_PATH environment variable No package 'libusb-1.0' found Package libusb-1.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libusb-1.0.pc' to the PKG_CONFIG_PATH environment variable No package 'libusb-1.0' found Package libusb-1.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `libusb-1.0.pc' to the PKG_CONFIG_PATH environment variable No package 'libusb-1.0' found Package libudev was not found in the pkg-config search path. Perhaps you should add the directory containing `libudev.pc' to the PKG_CONFIG_PATH environment variable No package 'libudev' found Package libudev was not found in the pkg-config search path. Perhaps you should add the directory containing `libudev.pc' to the PKG_CONFIG_PATH environment variable No package 'libudev' found Package libudev was not found in the pkg-config search path. Perhaps you should add the directory containing `libudev.pc' to the PKG_CONFIG_PATH environment variable No package 'libudev' found make: Warning: File `Makefile' has modification time 14938058 s in the future CC brick.o /bin/sh: gcc: Kommando nicht gefunden. make: *** [brick.o] Fehler 127 Wo kann ich denn die Pfade ändern. Die Lib´s existieren ja (libudev.so.0.13.1 und libusb-1.0.so.0.1.0). Außerdem habe ich es auf dem selben System auch schon einmal gemacht. Da aber über das python script brickd_linux.py. Wie hier beschrieben http://www.tinkerunity.org/forum/index.php/topic,238.msg1054.html#msg1054 Oder bin ich auf dem falschen Weg?
  3. Moinsen. also bei der ersten Softwareversion war ein file logger implementiert worin ich sehen konnte bis wann die Temperaturwerte gespeichert wurden. Dadurch konnte ich sehen, dass der Ausfall zeitlich nicht mit den Schalten der Lasten zusammen hing. Daraufhin hab eine reduzierte Version nur zum Schalten geschrieben ohne den restlichen Schnickschnack. Um bzw. das LCD Modul auszuschließen. Bei der Kontrolle der syslog ist mir jedoch aufgefallen, dass diesmal der Pi um 6.25 nicht mehr auf die Netzwerkschnittstelle zugreifen konnte. Oct 12 06:25:53 raspberrypi kernel: [128068.549829] smsc95xx 1-1.1:1.0: eth0: Failed to read register index 0x00000114 Keine Ahnung ob das nun dazu führte, dass der Pi nicht mehr reagierte . D.h. nochmals laufen lass und abwarten. Nachtrag 31.10: Zur Zeit hängt es am Raspberry. Er verliert irgendwann die Netzwerkverbindung, ab da geht dann gar nichts mehr. Stundenlanges recherchieren hat mich nicht wirklich schlauer gemacht. Da immer davon die Rede ist dass die Geräte am USB zu viel Saft ziehen. Was ich aber ausschließe. Nun habe ich mal den Fedora Remix RC2 (Vorher Rasbian) drauf gezogen und brickd, screen, und java installiert. Schade, das es nicht stabil läuft. Achja und ich benutze nicht mehr das DualRelay, stattdessen zwei Halbleiterrelais mit IO4.
  4. Noch ein Nachtrag. Ich habe letzte Nacht mal eine reduzierte Version meines Programms laufen lassen und es funktioniert dennoch nicht. /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package tinker_neu; import com.tinkerforge.BrickletDualRelay; import com.tinkerforge.IPConnection; import com.tinkerforge.IPConnection.TimeoutException; import java.io.IOException; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** * * @author adrianbernhard */ public class Zeitschaltung { public static final String host = "192.168.2.114"; // public static final String host = "localhost"; public static final int port = 4223; public static final String UID4 = "7FJ"; // Doppel Relay // public static final double AnschaltzeitBeleuchtung1 = 9; public static final double AusschaltzeitBeleuchtung1 = 14; public static final double AnschaltzeitBeleuchtung2 = 17; public static final double AusschaltzeitBeleuchtung2 = 22.25; public static final double AnschaltzeitSekundär = 1.30; public static final double AusschaltzeitSekundär = 8.30; public static void main (String args[]) throws IOException, TimeoutException, InterruptedException { int a = 10; while(a<15) { try{ Zeitschaltung.schalten(); } catch (TimeoutException e){ System.out.println("Verbindungs Fehler/Tinker eingeschlafen"); } Thread.sleep(60000); } } public static void schalten () throws IOException, TimeoutException { IPConnection ipcon = new IPConnection(host, port); BrickletDualRelay dr = new BrickletDualRelay (UID4); ipcon.addDevice(dr); Calendar.getInstance(); Date jetzt; jetzt = Calendar.getInstance(Locale.GERMAN).getTime(); java.text.SimpleDateFormat sdf1; sdf1 = new java.text.SimpleDateFormat("HH.mm"); double aktuelleZeit; aktuelleZeit = Double.parseDouble(sdf1.format(jetzt)); boolean relay2; relay2 = dr.getState().relay2; if (aktuelleZeit >= AnschaltzeitBeleuchtung1 & aktuelleZeit <= AusschaltzeitBeleuchtung1) { dr.setState(true,relay2); } else if (aktuelleZeit >= AnschaltzeitBeleuchtung2 & aktuelleZeit <= AusschaltzeitBeleuchtung2) { dr.setState(true,relay2); } else { dr.setState(false,relay2); } boolean relay1; relay1 = dr.getState().relay1; if (aktuelleZeit > AnschaltzeitSekundär & aktuelleZeit < AusschaltzeitSekundär) { dr.setState(relay1,true); } else { dr.setState(relay1,false); } } }
  5. Also beim testen ist mir aufgefallen, dass man nicht gleichzeitig ins LCD schreiben und das Relay schalten sollte. Das passiert nun nicht mehr. Die Ausfälle traten aber nicht während des Schaltens auf. Sondern irgendwann ohne erkennbaren Zusammenhang. Mal nach 10 minuten mal nach 18 Stunden. Aber bisher hat es keinen Tag ausgehalten. Das mit den Pausen ist noch neu, vielleicht hilft es ja wirklich. War nur ein Idee. @Die Borg Das mit dem Kondensator hatte ich schon in einem anderen Thread geklärt und den Fix selber durchgeführt. Das LCD läuft nun super. Das Ausfallen des LCD hatte keine Folgen für das Program, es lief weiter. Aktualisierung: Also die Änderungen haben nichts gebracht. Heute Morgen war es wieder vorbei. Ich werde mal nun nach jeder einzelnen LCD Schreibanweisung eine Pause setzen.
  6. Moinsen. ich habe ein Problem mit der Stabilität meines Programms oder des MasterBricks. Zunächst mein Aufbau: 1x RaspberryPi steuert ein MasterBrick mit 1x Dualrelay, 1x LCD 20x4, 1x Temperatursensor, 1x Analog In Alles versorgt über ein Step-down-Power Supply mit 12V 2A Netzteil. Das dual Relay ist mit je einem Varistor 360V geschützt und dient eigentlich nur als Zeitschaltuhr. Mit dem Analog in habe ich mir ein Wasserthermometer gebaut. d.h. das Programm muss die Umrechnung durchführen. Und das ganze soll dann auf dem LCD angezeigt werden. Nun funktioniert mein Programm zwar nur ab und zu reagiert die Masterbrick nicht mehr. Ich habe mittlerweile folgende Massnahmen ergriffen: - Raspberry hängt jetzt am Kabel und nicht mehr am Wlan-Stick - die Anlage läuft hinter einem Trenntrafo (ich hatte Störungen im Stromnetz: kurzes Brummen meiner Hifi Anlage, Funkgesteuerte Steckdosen gingen an bzw. aus, gedimmte Lampen sprangen aus usw.) Daher hatte ich das Teil eh noch rumstehen. - Im Programm habe ich nahezu jede Abfrage des Masterbricks mit Thread.sleep(100) zeitlich getrennt. Naja da ich die letzten Änderungen erst heute vorgenommen habe kann ich nicht sagen ob es besser geworden ist. Aber habt Ihr noch Erfahrungswerte? Bzw. gibt es Tipps zur Verbesserung der Stabilität?
  7. Jupp hab jetzt einen 474nF genommen. Bisher läuft er.
  8. also auf dem Board steht 1.1 und ich habe keinen Kondensator an den pins. Wie groß habt ihr den Kondensator denn dimensioniert? Vielleicht habe ich einen passenden noch da, dann würde ich es selber fixen. Ehe das Modul auf reisen gehen muss.
  9. Bei mir tritt dieser Fehler nun auch auf. Ich hatte schon einen Aufbau mit thermo und luftfeuchte Bricklets und lcd 20x4 mehrere Wochen am laufen, ohne Probleme. Nun habe ich einen neuen Aufbau mit doppel Relay/LCD 20x4 und der Step-Down Power Supply. Jetzt geht immer wieder der LCD aus. Ich habe die Relais wie beschrieben mit je einen Varistor 420V abgesichert. Das Programm läuft aber das LCD friert irgendwann ein(zum Teil nach wenigen minuten mal nach Stunden). Dann dimmt die Hintergrundbeleuchtung ab und zeigt gar nichts mehr an. Ich schreibe sekündlich das LCD neu.
  10. Na dann muss ich nochmal in meiner Netzteilkiste kramen.
  11. Moinsen zwei Fragen. Wie empfindlich würde der Step-Down Supply auf 30 Volt Spannung reagieren? Ist der da sehr empfindlich oder etwas "weiter" konstruiert. Hab noch ein 30Volt netzteil (850mA) (damit ich ordentlich Saft habe) Und da es nicht ausdrücklich beschrieben ist: geht auch eine Wechselspannung. Hab noch ein 60 Watt Netzteil mit 11,5 V AC. Warum soviel Saft auf der Leitung? Ganz einfach ich ärgere mich noch mit nem 5v 2A über ein USB Hub rum. Da fällt ständig das LCD aus und die Kiste hängt wenn ich meine Relays schalte. So. Fertich.
  12. @Borg ist mir nicht wichtig. Bin nur beim drüber hinweg surfen darauf gekommen. Bin nur von der Produktbezeichnung ausgegangen. LCD 204B BL und LCD 204B LED. Für Datasheet vergleichen war es mir nicht wichtig genug.
  13. Letzteres. Ohne das wissen hatte ich probiert mit State dem ganzen Herr zu werden. Aber dass die Lösung so einfach ist. Naja Anfängerfehler. Ich hab aber gerade selber nochmal nachgelesen. Aber Stand der Satz: "The returned object has the public member variables boolean relay1 and boolean relay2." schon letzte Woche drin? Dann hab ich wohl einfach nicht genau gelesen.
  14. Wenn ich es richtig sehe könnte ich das Modul http://www.reichelt.de/Hintergrund-gruen/LCD-204B-LED/3/index.html?;ACTION=3;LA=2;ARTICLE=31660;GROUPID=3005;artnr=LCD+204B+LED;SID=12T7U-zX8AAAIAACc5jccb18e9c2e3b85b3b76c81be7c8256ee50 nehmen wenn ich es lieber grün mit schwarzen Zeichen haben möchte.
  15. Ich hab meinen Fehler gefunden. ich wuste nicht dass mit getState().relay1 der Zustand des einzelnen Relais abgefragt werden kann. p.s. könnte vielleicht in die Dokumentation aufgenommen werden, für noobs wie mich
  16. Danke soweit. Vielleicht hast du noch einen Tipp zur Umsetzung (bin Java Anfänger) Also den Zustand kann ich so abfragen und bspw. auf dem LCD wiedergeben: State state1 = null; try { state1 = dr.getState(); } catch (TimeoutException ex) { Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); } lcd.writeLine((short)2, (short)0,"" + state1); Nur wie kann den nun auswerten und für set.State() verwenden? Kann ja nur true oder false sein. Ich brauch irgendeinen Hinweis wo nach ich suchen muss, dann kann ich mir es auch anlesen. Danke.
  17. Auch wenn es ein altes Thema ist. Mich würde ein solches BrickLet jedenfalls interessieren. Genügend Elektrokenntnisse sollte man ja auch für das Relais haben
  18. Hi, ich möchte das Doppelrelais als Hygrostat und Thermostat verwenden. Aber ich muss bei set.State beide Relais schalten. Da ich ja zwei Listener nutze kann ich dass nicht machen. Wie kann ich das vielleicht anders Schreiben. /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package tinker; import com.tinkerforge.*; /** * * @author Adrian */ public class NewClass { public static final String host = "localhost"; public static final int port = 4223; public static final String UID1 = "7Ys"; // Temperatursensor // public static final String UID2 = "7Vb"; // Luftfeuchtigkeitssensor // public static final String UID3 = "7Yo"; // LCD 20*4 // public static final String UID4 = "7FJ"; // Doppel Relay // public static void main (String args[]) throws Exception { System.out.println("Start"); NewClass.Temp(); } public static void Temp() throws Exception { final IPConnection ipcon = new IPConnection(host, port); // Can throw IOException final BrickletTemperature temp = new BrickletTemperature(UID1); // Create device object final BrickletHumidity hum = new BrickletHumidity(UID2); final BrickletLCD20x4 lcd = new BrickletLCD20x4(UID3); final BrickletDualRelay dr = new BrickletDualRelay (UID4); // Add device to IP connection ipcon.addDevice(temp); // Can throw IPConnection.TimeoutException ipcon.addDevice(hum); ipcon.addDevice(lcd); ipcon.addDevice(dr); // Don't use device before it is added to a connection lcd.backlightOn(); lcd.clearDisplay(); // Get threshold callbacks with a debounce time of xx seconds (xx000ms) temp.setDebouncePeriod(1000); hum.setDebouncePeriod(1000); // Configure threshold for "greater than 30 °C" (unit is °C/100) temp.setTemperatureCallbackThreshold('>', (short)(-30*100), (short)0); hum.setHumidityCallbackThreshold('>', (short)(0), (short)(100)); // Add and implement temperature reached listener // (called if temperature is greater than 30 °C) temp.addListener(new BrickletTemperature.TemperatureReachedListener() { @Override public void temperatureReached(short temperature) { final java.util.Date now = new java.util.Date(); final java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd.MM.yyyy HH.mm.ss"); lcd.writeLine((short)0, (short)0, "T: " + temperature/100.0 + " " + (char)0b11011111 + "C "); // wenn Temperatur unter 28° dann geht relay 1 an // if(temperature < 28*100) { dr.setState(true,false); } else { dr.setState(false,false); } } }); hum.addListener(new BrickletHumidity.HumidityReachedListener() { @Override public void humidityReached(int humidity) { final java.util.Date now = new java.util.Date(); final java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd.MM.yyyy HH.mm.ss"); lcd.writeLine((short)1, (short)0, "rF: " + humidity/10.0 + " %RH "); lcd.writeLine((short)3, (short)0, sdf.format(now)); if(humidity < 500) { dr.setState(false,true); } else { dr.setState(false,false); } }}); } } Ich hab mal den Code gepostet wie er nicht funktionieren kann. Damit mein Problem deutlich wird.
  19. @Borg Danke fürs Verschieben. Update: Was ihr auch verändert habt, es funktioniert nun einwandfrei. Grüße
  20. Jupp das funktioniert. Dennoch sollte das Problemchen behoben werden.
  21. adrianbernhard

    Blog

    Moin. Mir ist gerade aufgefallen, dass man den Blog auf dem Apple iPad nicht lesen kann. Für mich sieht es so aus als würde das iPad da eine Weiterleitung blockieren. Es wird eine leere Seite mit dem Text "Welcome to nginx!" dargestellt. Grüße Ps. Sorry hab's falsch platziert.
  22. Tja ich konnte mich auch nur als Interessent anmelden. ich bin aber auch schon sehr gespannt. Damit könnte man jede Menge Ideen realisieren.
  23. Jupp, ihr seit einfach Klasse. Ich bin in der Hinsicht ja noch blutiger Anfänger Für Java sieht das ganze beispielsweise so aus (für andere Anfänger ): lcd.writeLine((short)0, (short)0, "Temp: " + temperature/100.0 + " " + (char)0b11011111 + "C");
  24. Achso. Nun gut ich habe jetzt noch mal in Java das ganze geschrieben. Da habe ich das Problem nicht mehr. Nun stehe ich aber vor einer neuen Frage: Welche Zeichen kann ich darstellen? Konkret: kann es nicht ° darstellen. Bei Python bekomme ich irgendeine Fehlermeldung (hab das an der Stelle nicht weiterverfolgt) und bei Java wird ein Minus angezeigt.
×
×
  • Neu erstellen...