Fragen zu dem Modul von HanRun HR911105A

Hallo Zusammen

Ich habe Heute mein Ethernet Modul bekommen einfach Nackt ohne Datenblatt oder Beschreibung, jetzt habe ich einige Fragen dazu:

  1. Wie schliesse ich das Modul an meinem Mega an
  2. Gibt es eine Lib dazu um das modul zu intergrieren
  3. habe ich die Möglichkeit wenn ich das Modul in meinem Uhren/Kalender Programm integiere, die Uhrzeit übers Internet immer auf den Aktuellen Stand zu bringen, wenn ich z.B. jede Stunde abfrage.

Da ich noch nie etwas mit irgend einem Ethernet Shild oder Modul gemacht habe wäre es lieb von Euch wenn Ihr mir helfen könntet.

Soweit ich das überblickt habe, ist die Bezeichnung "HanRun HR911105A" nur für die RJ45-Buchse. Ich erinnere mich, dir in einem Thread mal dieses Modul mit einem WIZ5100 vorgeschlagen zu haben:
http://www.exp-tech.de/Shields/ITead-WIZnet-W5100-Ethernet---Network-Module.html

Ist es das? Wenn ja, sind die Anschlüsse doch recht sauber herausgeführt worden und wurden an der Unterseite beschriftet.

Zeit aus dem Internet:

Das ist da für WiFi, aber was du brauchst ist die sendNTPpacket() Funktion und die Umwandlung der Daten in Loop. Das sollte auch so für Ethernet gehen. In der Time Lib ist auch ein Beispiel dazu und da wird es genauso gemacht.

time_t getNtpTime()
{
  while (Udp.parsePacket() > 0) ; // discard any previously received packets
  Serial.println("Transmit NTP Request");
  sendNTPpacket(timeServer);
  uint32_t beginWait = millis();
  while (millis() - beginWait < 1500) {
    int size = Udp.parsePacket();
    if (size >= NTP_PACKET_SIZE) {
      Serial.println("Receive NTP Response");
      Udp.read(packetBuffer, NTP_PACKET_SIZE);  // read packet into the buffer
      unsigned long secsSince1900;
      // convert four bytes starting at location 40 to a long integer
      secsSince1900 =  (unsigned long)packetBuffer[40] << 24;
      secsSince1900 |= (unsigned long)packetBuffer[41] << 16;
      secsSince1900 |= (unsigned long)packetBuffer[42] << 8;
      secsSince1900 |= (unsigned long)packetBuffer[43];
      return secsSince1900 - 2208988800UL + timeZone * SECS_PER_HOUR;
    }
  }
  Serial.println("No NTP Response :-(");
  return 0; // return 0 if unable to get the time
}

time_t sind dabei die Sekunden seit 1970 als unsigned long. Da kannst du den Rückkabe-Wert auch ändern. Und das dann mit dem Code aus dem WiFi Beispiel in UTC umrechnen. Dann muss man nur noch die Zeitzone anpassen. Dafür ist schon die timeZone Variable da:
const int timeZone = 1; // Central European Time

Hallo sth77

Das kann sein das es das ist , ich habe vergessen ein Bild ein zu stellen. Aber an meinem Modul ist an der Unterseite keine Beschriftung. Ich stelle mal ein Bild ein.

2013-12-03 14.07.58.jpg

Ich danke Dir Serenifly

das ist super, das kann ich schön in mein Programm einfügen , lieb von Dir.

Scheint ein ganz anderes Modul als das oben von mir erwähnte zu sein... Wo hast du es denn bestellt? Was steht auf dem Chip?

ENC28J60 Ethernet LAN Network Module For Arduino aus der Bucht bei yankee_electronic

hi,

wirf ihn weg, jürgen! gaaaanz weit weg!

mit diesem chip kannst Du keine "normale" bibliothek nutzen, und das meiste, was der W5100-chip vom standard-shield hardwaqremäßig selbst macht, muß hier softwareseitig gelöst werden, müllt Dir also Deinen arduino zu.

ich weiß, ich weiß, es gibt auch fans davon, aber ich weiß auch, wieviel jürgen kann, und für unsereiner ist der chip nicht geeignet.

gruß stefan

EDITH: ENC28J60 Ethernet beste Library - Deutsch - Arduino Forum

Hi Stefan

Ich habe die Postst´s auch schon alle durch und ich will ja im Grunde keine emails versenden oder großartig ins Internet. Mir geht es lediglich darum für meine Uhr und meinem Kalender die Zeit in regelmässigen Abständen aus dem Internet zu holen, das müsste ja noch zu bewerkstelligen sein.Ich habe auch im Netz schon etliche berichte darüber gelesen. Aber sollte es wieder erwartend nicht klappen , ich habe mir zusätzlich noch das Clock Module DS1302 with Battery Real-Time Clock Module for arduino
mit bestellt. Aber Versuch macht Kuch :slight_smile: bei den Preisen kann man sich auch mal verkaufen und Softwaremässig werde ich es schon schaffen, wenn es zu machen ist. Bei mir liegt es meist nicht an der Programmierung sondern meist an der Logig über die Elektronik....

malerlein:
...ich habe mir zusätzlich noch das Clock Module DS1302 with Battery Real-Time Clock Module for arduino mit bestellt.

Ich habe mit den DS130x Modulen schlechte Erfahrungen bezüglich Ganggenauigkeit gemacht. Die gehen teilweise über 1h pro Monat falsch.
Besser ist der DS3231. Die Bibliothek funktioniert auch und die Ganggenauigkeit ist im Bereich üblicher Quarzuhren (<5sek /monat)

Hallo Günther

Ich muß sagen ich habe den DS1307 an meiner Aquarienanlage auf einen Arduino Mega verbaut vor ca dreiviertel Jahr , mir ging es im Prinziep nicht um die genauigkeit nur darum dar alles Zeitgesteuert geschaltet wird, Strömungspumpen, Nachfüllanlage, Sonnenaufgang, sonnenuntergang, Unwettersimulation u.s.w. da kommt es mir nicht so darauf an das sich die Zeit auch mal um 15 min. verschiebt . Aber dann habe ich jetzt vor einer woche ein Bluetooth Modul noch an die Steuerung mit angebracht so das ich die Kontrolle uber den Monitor an meinem PC habe. Da ich immer gelesen habe das der DS1307 so ungenau ist habe ich dann beim einbau des Bluetooth gleich die Zeit getestet und war echt überrascht, in dem dreiviertel Jahr wo der DS1307 bei mir angeschlossen ist ging die UHR gerade einmal knap 2 Min. nach. damit kann ich leben. Und da ich jetzt die Uhrzeit der Seuerung über den Putty auf mein PC bekomme ist es auch für mich nicht so gafierend wenn ich sehe das die Zeit sich verschoben hat einmal im Jahr die Uhr neu zu stellen.

Meine DS1307 läuft auch weit besser als erwartet. Klar ist sie ungenau, aber bei mir nur höchstens ein paar Minuten pro Monat. Je nach Anwendung ist das vertretbar.

Ja Serenifly

Ich bin mit meinem DS1307 auch zufrieden. Aber ich habe da noch ein Anliegen. ich möchte gerne an meiner Dezi Uhr mit Kalender noch die Zimmer Temperatur ausgeben. die Anzeige habe ich schon realisiert über die Led`s. Darüber werden der Monat, der Tag des Monats, alle 15 Min. die Jahreszahl und bei einem Geburtstag eines Familienmidglieds oder was ich gerade in dem Termin Array eingegeben habe der Anfangsbuchstabe des zugehörigen des Termins angezeigt. jetzt habe ich mir noch ein Temperatur Array gemacht da sollte alle 5 Min. die Temperatur auf den Led?s eingeblendet werden. Die ausgabe ist auch nicht das Problem, Da ich hier noch einen LM 335 Z hatte habe ich diesen angeschlossen an den Arduino und über die Variabel temp wird dann die Temperatur mit if Abfrage per Led angezeigt. Jedoch muss ich feststellen, das der LM 335 z ziemlich ungenau ist und schwankungen von bis zu 1,5 Grad aus gibt. Kann mir einer einen Sensor vorschlagen, der ziemlich genau ist und die genaue Bezeichnung, damit ich mir den dann bestellen kann. Ich bedanke mich schon einmal im Voraus.

Offensichtlich hatte ich da zwei Montags-Module vom DS1307.
Ich hatte eines gekauft, damit aber viel rumprobiert bis alles lief, um dann festzustellen, dass die Zeit viel zu ungenau war. In der Befürchtung, was kaputt gemacht zu haben, holte ich mir ein neues, mit dem gleichen Ergebnis. Dann habe ich genauer recherchiert, und mit eben ein DS3231 Modul geholt. Anstecken anstelle des DS1307, lief ohne SW Anpassung und das mit einer hervorragenden Genauigkeit!

Günther, das glaube ich Dir ja, Ich würde für meine UhrProjekte auch nicht den DS1307 nehmen, aber bei meinem Aquarium ist es mir echt egal ob das Licht morgens von 7 bis 8 oder von 7: 10 bis 8: 10 gedimmt wird und ob meine Pumpen im wechsen Halbstündlich um Volle Stunde und halbe Stunde oder 10 Min. später laufen. Das fällt nicht so auf bei meinem Aquarium. Und wenn ich die Uhr jedes Halbe Jahr nachstellen muss . da kann ich mit leben.... Aber bei meiner Dezimal Uhr möchte ich schon das sie Genau geht und sollte ich da große schwankungen bemerken werde ich mir auch was einfalen lassen. Im Moment versuche ich noch alles bei der Dezi mit einer Software Uhr laufen zu lassen und die ist schon ziemlich genau. Wenn es mir gelingt das ich die Uhr Stündlich über ein Ethernet Modul nachstellen lassen kann aus dem Internet dann werde ich das damit laufen lassen. Nur ich muss noch in Erfahrung bringen wie ich es anstelle das ich das Ethernet Modul mit einem Wlan Stic mit dem Router verbinde oder ob ich eine andere Lösung brauche.

Der Standard Arduino Temperatursensor ist der DS18B20

z.B.:
http://www.ebay.de/itm/P4PM-DS18B20-18B20-TO-92-Thermometer-Temperaturfuhler-/400595457763?pt=Bauteile&hash=item5d455996e3

Die Genauigkeit der RTC hängt von der Temperatur ab. Vielleicht ist es besser für Leute bei deinen die Umgebungstemperatur relativ konstant ist.

malerlein:
...dass der LM 335 z ziemlich ungenau ist und schwankungen von bis zu 1,5 Grad aus gibt.

die Schwankungen können nicht das Ergebnis von Ungenauigkeiten des Sensors sein. Der hat zwar bis zu 6°C Abweichung, die sind aber konstant. Ich stellte aber bei meinen Messungen auch schon fest, dass Luft-Temperaturen oft um 1°-2° schwanken. Da reicht schon die mormale Strömung der Heizungsluft. Es kann aber auch an deiner Spannungsversorgung liegen.
Da die Spannung des LM335 absolut gemessen wird, nicht ratiometrisch, geht deine VCC direkt in die Messung mit ein. Mit anderen Worten: wenn deine VCC um 10mV einbricht, weil du gerade irgendwas ansteuerst, dann mißt du gleich ein halbes Grad mehr...

Das kannst du meist schon beheben, in dem du die Messwerte filterst. (der LM335 hat auch eine Zeitkonstante >15sek; schneller messen macht keinen Sinn).
Alternativ eine digitaler Sensor.

Danke euch beiden.

@ Serenifly , Der Standard Arduino Temperatursensor ist der DS18B20

Ich glauge den werde ich mir einmal besorgen, mal sehen ob es damit besser geht.

malerlein:
ist der DS18B20.
Ich glauge den werde ich mir einmal besorgen, mal sehen ob es damit besser geht.

Damit geht es sicherlich besser: er ist genauer und das AD-Problem entfällt.

Spaßeshalber kannst du ja mal versuchen einfach die Messwerte des LM335 digital zu filtern:

   float Temp;
  const float Tempfilterfaktor =100;
  Temp = ((Temp * Tempfilterfaktor) + Temp_akt_messwert) / (Tempfilterfaktor +1);

Tempfilterfaktor sollte so bemessen sein, dass er mindesten so groß ist wie die Anzahl der Messungen in 10sek.

Wegen der genauen Zeit/Datum:
Ich habe schon seit länger Zeit ein DCF Modul in Betrieb, in Verbindung mit der DCF77.h und Time.h habe ich so eine Software Uhr die mit dem DCF Signal gestellt wird. Funktioniert bei mir ohne Probeme.
Es kommt natürlich auf den Standort und Ausrichtung der Antenne an.
Eine LED auf der Taktleitung zum Einrichten hilft hier weiter.

Verstehe ehrlich gesagt nicht warum diese Lösung nicht öfter benutzt wird - oder sind die DCF Empfänger die Angeboten werden so schlecht ?
Meinen habe ich aus einem Audi A4 (war in unserer Unfallabteilung als beschädigt weggeworfen worden, da ein Befestigungshalter gebrochen war)
Wenn in modereren Autos (Standort beliebig) die Uhrzeit damit erfolgreich abgeglichen wird, sollte es im Hobbybereich auch funktionieren.