java lib for Modbus communication

.. we are opening the source code.

It was some kind of the weekend project, but it’s real, up and running now. The MODBUS/TCP client library (which has been included in IQarium) is available on GutHub. You are free to download it and use it as you wish.

Link to the git repository: https://github.com/kleniu/MODBUSLIB.git

For your convenience I made a simple CLI wrapper to communicate with the PLC using command line. Just download compiled java archive (mbcli.jar) from https://github.com/kleniu/MODBUSLIB/blob/master/mbcli.jar and use your favourite java runtime to set/read modbus coils or registers from command line.

To run the app and display the usage help message just do:

java -jar mbcli.jar -h

have fun …
p.s. with FATEK plc works great

it’s time to reanimate this project

good news

after few years of absence, I’m gonna to reanimate this project 🙂 So, if anybody of you would like to participate let me know: doozersmagic@gmail.com – I would appreciate your participation in rebuilding the IQarium app – the source code will be open source. It depends on your feedback if it will be under GPL or MIT License. Just let me know.

So, if you want to have real influence to how the app is developed please join me. Minimal Android development skills are required, no commitments, deadlines … , so pure fun remains 🙂

Rob

PCB has arrived

as promised on Wednesday

The PCB is ready for some soldering work. You can see manufactured PCB in the picture below
boards
Size of the board is pretty small – 50 x 80 mm. It is so, because it has been design for 0805 SMDs.
The 0805 Pad can hold component no bigger then 2.0 mm × 1.25 mm (0.079 in × 0.049 in). Below is the picture of sample SMD next to the standard 2.54 mm pitch socket just to give you a little overview how small it is.
smd size
next time I’ll give you a picture of the fully operational device 🙂

Some more details …

..on Hardware stuff

I’ve received very warm feedback from you via emails – thanks :). You’ve ask me the question how the weather station has been made. So, here are some details about it.
First you have to know that I did my prototype based on Arduino Nano 3.0 and breakout boards from SparkFun (BMP180 sensor – LGA package) and Pololu (step-down voltage regulator). All others sensors have quite “soldering friendly” packages, so there is no problem to mount them on the PCB. I’ve also decided to use breakout board just to speed up the development. I have to admit that it works great and it saves a lot of space on PCB since I just plug breakouts into goldpin sockets. I’ve also made the PCB design to be manufactured by local PCB board maker. I’m still waiting for them but I’ve been informed that it will be shipped on Wednesday.
So, as you can see – next weekend I will have the chance to make a little personal “Silicon Valley” in my garage. I just can’t wait ..
Here is the PCB I’m waiting for:
feeler

Little bit of Hardware

Few weeks later …

I had some days off to do something real 🙂 this time – but first things first. I’ve recently started a little hardware project which allows me to gather some environmental metrics like: air humidity, atmospheric pressure, temperature and light brightness. I just made some kind of personal meteo-station to be integrated with my Home Automation System based on PLC. Since my infrastructure is based on PLC I had to connect “this thing” somehow to the PLC itself. Since the easiest way to do it was the MODBUS RTU over RS485, so I’ve implemented simple MODBUS RTU slave device using old good (reliable) RS485. So, now I have functional prototype based on ATmega328 Microcontroller with following features:

  • atmosferic preasure [hPA] measurement – based on Bosh BMP180 i2c sensor allows to measure pressure with great accuracy
  • humidity [%] measurement – based on Honeywell HIH6000 i2c sensor – accuracy +/-4.5%RH
  • temperature [C] measurement – based on old good Maxim DS18S20 1-wire sensor
  • light brightness [%] measurement – based on analog foto-resistor sensor
  • configuration of the module via USB – no need for jumpers, microswitches etc. Just plug the device via USB and use any terminal to setup MODBUS RTU SlaveID and RS485 link speed
  • data transfer via MODBUS RTU using Read Registry function – for integration with my PLC controller
  • 12-24V voltage range for easy connectivity with various power sources

You may ask why I did it. Well, besides the obvious reason (fun), I want to present gathered data in IQarium. So, stand by – upgrade comes up 🙂
By the way, I’ll have some extra PCB from manufacturing plant, so If you are interested drop me an e-mail I can make a quotation for you. If you would like to see how the prototype works then add the comment below, it will encourage me to make the video.