I am looking at using a 24 channel industrial relay controller board with the 900MHZ " Long-Range Wireless Mesh XBee-Pro® Communications Module" and the corresponding remote “900HP-S3B Long Range Wireless Mesh Modem with USB Interface”. The end point for the remote will be tablet computer controlling a number of non safety critical things like lighting.
In any case is there a dead man functionality available in the case that the tablet becomes unresponsive or the wireless link goes down the relays can switch to a safe pre defined position?
If so how would this be configured?
Welcome to the community.
There are a couple of different ways to do this. Probably the most straighforward one is to utilize one of the relays on the board as a “Pulse Timer”. Its outlined a little strangely in the documentation, but the gist is that you will trigger this time once every x hours, y minutes, and z seconds (configurable) to keep it from finishing. If the Pulse Timer ever finishes it will pulse the relay. The relay will route the board’s power supply through the common and NC position. When the relay pulses the board will lose power and reset the status of all relays to the NC position. This will apply power back to the board as the Pulse Timer relay will revert to the NC position along with all of the other relays.
The one downside is that you will either need to connect the loads to the NC of all relays. This means the relay has to be “On” or activated for the corresponding load to be “Off” or not powered. It reverses the on off logic commonly used and should be noted.
Additionally there is a relay power-up status map you can configure into the board. This is outlined in section 9.1 of: https://ncd.io/proxr-quick-start-guide/
I would use this setting in conjunction with that outlined above as it will momentarily apply power to all loads on the relay controller as opposed to momentarily disconnecting all loads on the relay controller. You can use this to turn off non-necessary loads by setting their relays to be active on boot.
The thought being its better to gain lighting temporarily where its not need than to lose lighting temporarily where it is.
The other option would be to use a relay controller with a bit more flexibility in programming.
This board: https://store.ncd.io/product/24-channel-general-purpose-spdt-relay-shield-8-gpio-with-iot-interface/
This programmable module: https://store.ncd.io/product/particle-photon-wifi-iot-communications-module/
This overlay: https://store.ncd.io/product/xbee-overlay-shield-adapter-for-particle-photon-and-particle-electron/
This wireless module: https://store.ncd.io/product/industrial-wireless-thermocouple-high-temperature-sensor/
This setup is a bit more complicated, but you can write on-board logic to say if I haven’t received any communication in x seconds then I need to revert to a “safe” state. This would require C++ programming on the Particle Photon itself. The Particle Photon can have its wifi turned off so it will just act as logic.
Hi Jacob, Thanks for the reply. On going through the quick start guide I see that there are 16 timers available. I think that by sending a command for every relay every N seconds with a timer set for relevant relays set to M+N along with your suggested pulse Timer for a relay connected to the boards power supply to scoop up the the remaining 9 I would have a pretty good dead man switch.
This is true, I believe the timers are shared between the pulse and duration timers so pulse timer 1 uses the same eeprom storage as duration timer 1. This would allow you to control 15 relays with the timers and 1 relay as a deadman’s switch.
If you broke the 24 relays into an 8 channel and a 16 channel you could service the whole application with just duration and pulse timers (plus relay status queries).