New comer to the forum, new maker as well. I am an engineer with fairly good understanding but still knows only a little in electronics.
My first project : An automated watering system with data logging.
I have a rooftop container garden, I am planning a watering system that will monitor the soil moisture and water accordingly. Well, that is the easy part, I already have it working and ready to monitor 6 containers out of a single Uno.
I also want to get all my 30+ containers monitored, easy, I'll multiply my module.
Now comes the issue. I want some sort of data logging so that I can have nice visualization of the soil moisture and couple it with weather, photos taken by a Raspberry Pi station,... I then want to get the measurement sent back to a centralized point. I already gave some thoughts but seriously need help as I am now stuck.
WiFi : Will it be reliable enough is my concern. On top of it, I would need a full WiFi deployment, not so sure I want that on the rooftop that is now out of range of the home network.
Bluetooth : same concern about the reliability of the connection, plus, the distance might be an issue as the shed that will host the central part is far from some corners of the garden.
Ethernet : I really would not like to have to wire my whole garden, on top of it, that will be a massive amount of cabling.
I2C : I have here no idea how the identification works though from what I understood, it might be the way to go
From the above, I ended up thinking of a kind of powerline communication. as per below
A general bus connecting all the modules delivering the DC 12V power supply (I need 12V for the solenoid valve) communication signal will follow the same line.
A central command that firstly identify how many modules in the system then, for each module
Send an activation message
Wait until the module performs its job
Receive message such as : "here is module , on my line 1:, moisture=500, watered 1 min, on my line 2:, moisture=400, watered 1 min 10, On my line 3, nothing connected." (containerNb and module name would be hard coded in the module at installation time)
Log the message to whatever I finally choose (most likely my home server, but maybe the cloud)
Redo the same an hour later
Questions are then :
Is I2C usable in such way? (i.e. network and not ad-hoc)
When you want to use cables, then it will probably become RS-485 over twisted pair cable.
If the distances are short, perhaps some kind of slow serial daisy-chained data lines is possible. But that would be less reliable than wireless (because of the long chain).
When you want it to be very cheap, Ebay is full of 433MHz modules (or 315MHz). With 433MHz modules, every container could send its data every 10 minutes. A Central Unit would receive everything and try to make sense of it. Some messages might get lost (for example if two transmit at the same time).