Cheapest way to build wireless buttons?



  • I am planning to replace my current wall-switches with dummy switches that just registers the switch and sends it wirelessly to my controller. But what would be the simplest/cheapest way to do this. I was thinking of using a Arduino mini pro + NRF24L0+ and connecting some wires from the switch directly to the arduinos inputs some way.

    Is there any better solution?


  • Hero Member

    That's going to be about as cheap as you can get.

    The part you left out is powering it, which could cost more than the uC, nRF and switches - or not.

    Cheap power. There are some very cheap and small 5v USB "phone charger" plugs (eBay, AliExpress, dollar stores), which could be reduced to 3.3v (needed by the nRF) by the regulator on a 3.3v APM. The couple I've opened up could have their PCB removed from the AC plug tines and housing without much trouble.

    Power Quality The cheapest ones may put out noisy 5V - intended for recharging batteries at best. Be sure to check the voltage. The regulator on the APM might be enough, or you might need more caps to smooth it.

    Safety And some of the cheap ones have poor isolation between the AC mains and the 5VDC output. You can search for some of the investigations thereof on the web. The worst case would be mains and DC traces too close to each other, or a poorly insulated transformer.

    If the buttons will isolate a user from any potential shock, and you disconnect the power before working on them, and you choose a phone charger which is not too bad, you might make a switch node for $3-4. But don't hold any of us responsible for your safety!

    AND - you may have cheap power already figured out.


  • Hero Member

    One thing I noticed when I first powered up with battery the excellent Sensebender Micro, was how quickly it "booted" and said hello to the gateway! - seemed like milliseconds! If its started via the interrupt then it should be able to deep sleep...

    So you could possibly look at using a battery powered version since you should be able to put a large pack of batteries in your now vacant wallswitch boxes.

    Have you seen this:
    http://www.mysensors.org/build/scene_controller

    Even if you don't use the beautiful screen, you can use some of the code.



  • Hm.. are there any cheap flat replacement wallswitches out there that feature a microswitch (to connect to the interrupt of the arduino) instead of actually switching a line?



  • Cheap ones not really... possibly some from ali-express, but the problem you run into is that any faceplates with microswitch type buttons are made for home automation such as clipsal C-bus, so the price suddenly goes through the roof (who would seriously pay $500 for 4 x $0.20 microswitches and 4 x $2.00 single colour lcd screens in a c-bus faceplate??). They have to still get certification, and the demand is low.

    You can buy the swith buttons to go into a normal faceplate, but each button will cost more than the microcontroller and radio... It comes down to the question of cheap, good looking or good quality. You can pick any two of those :)





  • The wall-switches look great but I already have wireless bulbs that I am trying to control. I was just planning on connecting the wires behind the wall-switch so that the light bulb is always powered so that I can turn it on/off/dim from my phone or a arduino using a REST command when the switch is toggled.

    What about using only a ESP8266 esp-01 only + battery.
    it has two gpio ports. I know that the ESP8266 draws more power than the nrf24 but if the switch is only flicked <10 times a day and it sleeps the rest of the time would it not be possible to run a long time on like a CR2450 battery for a decent time?

    And how about the time from waking it up from deep sleep until it sends the REST command, would that take several seconds as I guess it has to connect to the router every time it wakes up. I would want as little delay as possible from pressing the switch until the light bulbs react.


  • Hero Member

    @Cliff-Karlsson said:

    And how about the time from waking it up from deep sleep until it sends the REST command, would that take several seconds

    Yes it will. wi-fi is not the best for home automation , truly speaking. If the bulbs you are controlling only listen to wi-fi, you will have to run a extra wire into the wall-switchbox , and keep and wi-fi node always running (and connected) there.



  • @Chester Cheap and good looking would suffice. XD because these switches wouldn't switch any real current, safety shouldn't be a problem.
    I could use normal power light switches. The problem is that these are very bulky and leaving not enough space in the box to place a node behind it.



  • Not sure if it fits the cheap option too much, but I have been looking to use:
    http://www.noushouse.com.au/store/product-info.php?Clipsal-CBus-30-Mech-Wall-Switch-pid602.html

    I will be using the 5031NMS, which is the slave button, so it has a very shallow depth, fits the normal faceplates and has lit buttons that run on 5v.

    So not really cheap ($20 AUD per button), but worth it for my install. The HLK power supplies, an arduino nano and RFM69 module should fit in the wall box behind these switches.



  • @Oitzu said:

    @Chester Cheap and good looking would suffice. because these switches wouldn't switch any real current, safety shouldn't be a problem.

    What about NRF24LE1 NRF24L01+ MCU Wireless Transceiver Wireless Communication Module NEW

    Would that work as a battery powered wireless switch? can I just upload any mysensors sketch to it or is it to limited for this?


  • Hero Member



  • Ok I think I will try the original idea with the nrf24l01 and arduino pro mini.

    But I am still waiting for my pro minis to arrive and only have a old one with a ATmega168. I read something about disabling the debug in mysensors.h. Will I still be able to fit an button sketch with wireless using the smaller ATmega168?


Log in to reply
 

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.