MODBus - register usage

Usually the MODBUS protocoll only supports registers based on 16-bit values. If you want to transfer custom datatypes like double, float etc. via the modbus a simple trick can be used.

Capacitive (water) level sensor

The electronics for my capacitive (water) level sensor is described here. In this article I will go a little bit in depth regarding the sensor reading and value compensation.

MODBus Node with level sensor

This is a MODBUS-node with a capacitive water level sensor, a DS12S80 temperature sensor and a RS485 interface to the main controller.

This is my first project based on CADSOFT Eagle free-version. I still have to learn a lot for creating 2-layer PCBs :-/

Arduino Home Automation

Long time ago I've started my personal home automation project. The first building blocks where some small PCBs for RS485 interfacing and temperature sensing. Later I've started outlining a controller architecture for my home automation projects.

Currently my infastructure looks like this:

OVER1

From top to bottom:

The Arduino Mega256 is the MODBUS master with connection the internet data collection server. The Seeeduino is acting as a MODBUS slave providing 4 analog and 1 digital register.

Read on about the next steps here:

 

Update I2C LCD-Library for Arduino

I've bought this I2C LCD interface board NG2 from this seller on eBay.

Zusatzschaltungen für Arduino etc.

Ich habe wieder ein bisschen mit Hardware-Basteln angefangen und folgende Zusatzschaltungen entworfen, die ich hier vorstellen möchte:

  • Messverstärker - hiermit kann man z.B. den interessanten Messbereich von LM335 Thermosensoren auf den A/D Wandler des Arduino anpassen.
  • Eingangsadapter für Netzspannung - hiermit kann man z.B. feststellen, ob am Anschluß des Adapters 230V~ anliegen.
  • Echtzeituhr für I2C Bus - hiermit hat man über den I2C Bus des Arduino Zugriff auf eine batteriegepufferte Echtzeituhr mit Kalender
  • TTL-RS485 Schnittstelle- hiermit kann man an die serielle TTL-Schnittstelle des Arduino auf ein RS485 Netzwerk zugreifen.
    • Achtung - Im Schaltplan ist die Bus-Terminierung falsch. Pin 7 muss nach Masse terminiert werden. Pin 6 muss nach Vcc terminiert werden.

Befestigung von Arduino-Boards

Die Arduino-Prozessorplatinen haben an den Rändern 3,2mm Befestigungsbohrungen. Am Anfang habe ich versucht die Platinen mit 2,5mm Zylinderschrauben und Kunststoffabstandshaltern auf dem Träger zu befestigen. Nachdem aber die Bohrungen bei manchen Arduinos recht nah an Leiterbahnen sind, habe ich dabei immer ein ungutes Gefühl gehabt.

Beispiel für Arduino aktualisiert

Jetzt scheint endlich der Sketch für den Upload der Daten auf meine Webseite zuverlässig zu funktionieren.

Der neue Sketch ist hier zu finden.

Die Gesamtbeschreibung habe ich aktualisiert und auch alle Bibliotheken referenziert.

Arduino Projekte

Hier eine Aufstellung meiner bisherigen Gehversuche mit den Arduino-Boards:

sample1.pde

Dies ist der Beispielcode (Sketch). Ich habe ihn etwas überarbeitet. Auch mit der neuesten Version der Ethernet- und der Client-Library lief der Upload sehr schlecht.

Ich vermute es liegt an meinem DSL-Router. Jetzt initialisiere ich einfach das Ethernet-Interface neu, wenn ich beim Upload einen Fehler bekomme. Aktuell hat es schon fast 24h überlebt - mal sehen!