I haven't used Arduino's in a ~ten years, back when I was in college.
My intent is to create a Arduino system to my house. One central unit that only receives messages from two remote places, garage and boiler room.
My idea was to have a central unit inside my house with 2x RF receivers and possibly a monitor of some sort (2 line LCD maybe?) to print out the information I get from transmitters. One RF transmitter in boiler room and one in the garage.
The in-house units job is to receive information from garage which would monitor if my garage door is open or closed with some other sensor (not sure which type I would use yet) and information from boiler room whether or or not I have ran out of oil from my boiler.
I think I could code the transmitters to send different messages depending on sensor status right? Example, a inductive sensor in garage would send either "Door open" or "Door closed" like every 60 seconds and an optic or temp sensor (not sure what I can rig up on the boiler yet) in boiler room would send "Oil" or "No oil".
Could the in-house receiver receive both of these messages and the arduino be coded to differentiate these as message?
Like
if message "Oil"
print("Oil OK")
else if message "No oil"
print("Out of oil")
I would have to sort out how to print them to correct lines of monitor but I don't think that will be that big of an issue for me.
The biggest question is, what kind of HW do I need for this and is this even possible? Do the RF transmitters go through walls? Atleast the boiler room is covered by brick. Would using wifi transmitters be a better solution?
you could pick ESP32 if you have a reliable WiFi available in all the rooms or with on board LORA for the RF communication (it works pretty well going through walls. I've seen one installed in an underground garage and the signal was received in an apartment 3 floors up).
the rest is just code - it's not very complicated. Your sensors should only send information when the state change, not every 30s or 60s unless you want some sort of heartbeat to ensure the sensors are alive.
have a look at the ttgo-lora32-sx1276 a PCB with ESP32 (onboard WiFi, Bluetooth Classic and BLE), a LoRa mdule and OLED display gives you the options suggested by @J-M-L without lots of interconnecting wires causing poor connections and intermittent faults
"Your sensors should only send information when the state change, not every 30s or 60s unless you want some sort of heartbeat to ensure the sensors are alive."
Yes, the transmitting units would most likely be battery powered so I would like to know if they run out of power at some point. Maybe a longer delay like 30mins would be better though. I can code the receiving unit to notify if no heartbeat signal is received easily.
This LoRa actually sounds like a fantastic idea.
If I understood the article @horace linked, I should be able to differentiate the messages from two different sending units and print them accordingly.
One thing that still was left unclear, can I just use 3 of those ttgo-lora32-sx1276 without any additional Arduino boards?
yes that would be enough but might be a challenge for your battery operated needs (is the screen needed on the sensor side for example?)
Picking an "arduino" with a very low power mode, using interrupts to wake the device up etc will be needed if you don't want to have to recharge the batteries every other day... May be a separate LoRa board would be better as you could finely control when you activate the RF and thus the current consumption
Would a better option then be to use one ttgo-lora32-sx1276 as the receiving unit as I can have this use a constant power source (wall socket) and for example Arduino MKR WAN 1300 (LoRa® connectivity) as the transmitting units?
I also double-checked and the battery operation is optional. I could use a wall socket to power them on aswell.
on the transmitters I would go with something that works well for low power and can be woken up easily by interrupts. Something minimal like an Arduino Pro Mini 8MHz (on which you remove the LED and regulator). You can power it directly with a suitable battery and the power consumption in deep sleep is ~1.5µA (the 16MHz version would be at ~3µA)
Of course, you need to attach an extra Lora module which you would power when needed (transistor driven so that you can really cut the power).
yes as @J-M-L states also if you don't require displays use nodes without them
however, if you have some nodes with onboard LoRa and some nodes with seperate LoRa modules make sure you use compatible LoRa devices, all with sx1276
also the majority of LoRa modules use 3.3V logic so avoid microcontrollers which use 5V logic, e.g. Uno, Mega, Nano, etc
for an example of multiple Lora nodes in a peer-to-peer network have a look at decimals-strings-and-lora
you could set up a Lora peer-to-peer network with one of the ESP32 modules using WiFi to send results to the internet, e.g. run a webserver on the ESP32 displaying results accessable using Laptops, smartphones, etc
This project is still in planning phase. I have no equipment ready for any of this.
Arduino Pro Mini might be a good option but it would require a FTDI cable to program aswell which I do not have. Also according to Arduino pages the product has been retired so acquiring one might be a challenge.
I don't have the need to connect the results to a webserver as this in-house unit would be the main monitor just to check that I didn't leave the garage door open (which has happened unfortunately too many times) without having to go outside and check.
I also checked that the ttgo-lora32-sx1276 is no longer available from anywhere, out of stock in every shop I could find in
it looks like the Adafruit breakout doesn't plug directly into the Tindie PCB. Maybe just build your project on some perfboard.
You'll need a mini-USB cable to go from the FTDI module to your computer.
It does, just needs to be soldered, the guide uses a header between them to get a lower profile on it. I can get those headers from a local electronics dealer.
I just noticed what you meant @EmilyJane sorry. But the guide is still just using solder to connect it. I can also do jump wires if necessary.
a thought - the tindie web page is titled Arduino Pro Mini LoRaWAN Kit - there is no mention of Lora peer-to-peer communications - the board may not be set up for this
I came up with an extended idea for this last night. I wasn't able to order these to my country so I had to use my brother as a proxy who lives in another country and will send them to me afterwards.
If all works as I imagine (and hope), I will use those as the transmitter units and rig up a rasperry pi with this as the receiver
I found an article where someone had rigged a this kind of module to work with rasberry pi.
Using raspi will allow me to extend the system to a wider extend if I ever find the motivation/need for such.