Can a pointer be null and if so can it be tested for?

You're doing great, really.
Some of the things you are working with I haven't yet.

I know when I start to feel frustrated it can be very unsettling and I often wonder where my direction is.
What I have learnt to do better is to go easy on myself, to let things slide a little for a while, like today.
I haven't done any programming today, instead went for a spin on the motorcycle, set my eyes on something different from the screen for part of the day.
And I start to feel a little refreshed.
Now with glass of red in hand, I am not worried about the things I had thoughts about earlier that I should be doing.

If you need to take a break do so,
When your ready, let's come back to look at the core of what you are wanting to achieve and try to best as possible see how that might be possible without too much hurty head.
My suggestion is to stay with the model of a single master node, that's where you can better handle the tasks at this stage I think.
Then as the project grows, start to include the remote nodes as they are needed.
You can use your Mega, it has lots of I/O to play with, stick with a simple single system first would be my suggestion.
That is what I am doing with my project, which maybe others out there don't know, shares a lot in common with your project, remote renewable power monitoring and control system.

Paul