Repairing yourBestway, Coleman or Lay-Z-Spa water flow sensor.

128{icon} {views}

What is the water flow sensor.

water flow sensorThe water flow sensor is just as it's name says, it is use to tell a system that water is flowing. Seen to the right is the water flow sensor used in many of the Bestway, Coleman and Lay-Z-Spa branded inflatable hot tub models. These sensors are one way flow sensors meaning that they will only sense water flowing in one direction. Failure of this sensor is one of the causes of the dreaded E01 or E02 errors seen on the pump/heater unit of many of the listed brands of inflatable hot tubs.

How does the flow sensor work?

The operation of the water flow sensor is very simple. reed switchThere are three main components to the sensor. The first part is the main sensor housing. The housing has water inlet and outlet ports for the water to flow through. The second part is the magnetic reed switch, or proximity switch. This part is the small black tubular piece with the two wires coming off of it like the one seen to the right. When this piece senses a magnetic field, a small switch inside makes contact completing the circuit in the two wires. original sensor flapThe third part of the sensor, quite obviously, is the magnet. The magnet is housed in a small plastic flap like the one seen to the left. When water is pushed through the sensor housing, this magnetic flap will get pushed up near the proximity switch triggering it telling the system that water is in fact moving. This sensor is a one way sensor meaning that it will only sense the flow of water in one direction. Because of this, care must be taken to install this sensor in the correct direction for proper operation.

The main problem with these sensors.

The biggest problem with these sensors is that the magnetic flaps in them fail. The reason for this is because magnets can easily start to rust if exposed to water. rusty sensor flapWhy do magnets rust? Magnets work because they are made of ferrous metals which contain iron. Magnets need iron to attract, and iron rusts when exposed to oxygen and water. Rust reduces the attraction of a magnet. This is why the sensors fail when the magnet gets rusty. The original sensor flaps have the magnet inset into a hole in the center and then a dab of epoxy glue is put on top. Over time, the dab of epoxy can come loose from the flap exposing the magnet to the water eventually causing it to rust and fail. The plastic around the magnet will start to crack because of the magnet swelling which allows more water in causing it to snowball into failure.

Inspecting your sensor.

pump/heater unitHow do you find out if your sensor has failed or is starting to fail. The first thing is to unplug your pump from the mains socket. Never work water stopperon your unit with the power plugged in. Now place your black rubber water stopper caps, seen on the left, over the water ports inside your tub. This is to prevent water flowing out of the flow sensor when you take the cap off. Next, remove the cover from your pump/heater unit by removing the six screws in the middle of the unit as indicated in the picture to the right. Once those screws are removed, carefully lift the top off being careful of the ribbon cable. inside pump/heaterNow, separate the black connectors on the ribbon cable slightly down from the control panel inside and set the cover to the side. In the picture to the left, the arrow points to the water flow sensor. Start by disconnecting the small plug on the two wires attached to the top of the sensor. Now remove the four screws from the top of the sensor and set them aside. cover with flapCarefully lift the top of the sensor off being careful not to loose the round o-ring seal under the cap. Inspect the plastic flap under the cap looking for signs of cracks in the plastic, and signs of rust like the one shown to the right. If you see any of these things or other damage to the flap, it is best to replace it. While you have the top off, you should also inspect the o-ring for any signs of wear. If there is even the slightest bit of wear on the o-ring, it is best to just replace it. Some would have you replace the entire water flow sensor assembly which can cost you between $50 and $75 US dollars just for the part. On top of that you would have to dismantle the unit even further to be able to remove the old one and install the new one. Why replace the whole sensor when you can just repair it.

Repairing the sensor.

To repair the flow sensor you should by now know what parts you will need for the repair from the inspection you just did above. Whether you nee just the flap, or the flap and o-ring, we have you covered. If all you need is the water flow sensor flap, this can be purchased from our store for $9.99 plus shipping by clicking here. If you also need the o-ring, we sell a kt that contains both the flap and the o-ring. These kits can be purchased from our store for $10.99 plus shipping by clicking here. If you decide that you want to go to someon else to purchase the flap, there are some things that you need to watch out for. Be weary of the ones like the one on the right. In this style, the magnet is mounted directly on the top, completely exposed to the water. Because of this, the magnet will start to rust and fail significantly quicker than the ones that I sell in which the magnet is completely sealed in plasic. The other thing with flaps like this one is that people make these out of PLA plastic. This type of plastic has a lower melting point and if exposed to too much heat, it will start to deform. Once the plastic deforms, the magnet can pop out of it's hole causing another failure. Our flaps, seen on the left, are made completely from ABS plastic which is more flexible and has a lot higher melting point making it less prone to deforming and failure. Also the magnets on our sensors are completely encapsulated in plastic with little to no chance of the magnet touching water and rusting. Buy our parts with confidence.

Now on to replacing the sensor flap. These sensors use a small nylon locking pin to secure the flap to the sensor cap. This can easily be removed by pushing on the back side of the pin, the side with the slot in it, with something flat. The pin should come out pretty easy. Simply pull the pin out enough to allow you to get the old flap off. Put the new flap in place and push the pin back through the hole. It's that simple. Once you have that done, if needed, remove the old o-ring and drop the new one in it's place. Be sure to inspect and clean the channel that the o-ring sits in prior to installing the new one.

FINISHED

So that's it, you just repaired your water flow sensor for under $15 US dollars rather than spending $50 plus and all the extra time and effort

Adding an LED light to your bubble spa

681{icon} {views}

Introduction

Did you recently purchase a Bestway, Coleman, Lay-Z-Spa or Mspa brand inflatable bubble spa hot tub?  Were you wanting to put LED lights in your tub to be able to use it at night but couldn't find one made for your spa?  I might have a solution for you.

The LED light

The LED light we are going to use for this is one made by Intex for their PureSpa line of inflatable hot tubs and bubble spas.  I have seen these listed under 2 different models, SL503 and B01NBYH7O8.  This is a multi color LED light that illuminates White, green, teal, blue, and purple and can be set to one solid color, or to a color change setting that will cycle through all of the colors.  The LED light creates the perfect ambience for your hot tub/spa experience.  This LED light can be purchased from Amazon by clicking here.   More information about this light can be found on the intex website by clicking here.

Making it fit the Bestway spas

I did a bit of research into LED lights for the Bestway spas and found that nobody makes an LED that fits them. In my research though I found a comment on the Amazon product page for this light where someone stated that they just pushed this hard onto the water outlet on the spa and twisted a bit and was able to get it connected.  I figured there had to be a better way.  The model of spa that I had to test this with was a Bestway SaluSpa Miami.  The Miami spa has a piece that looks like this, which is used to put chlorine tablets in to keep the water clean.  This same piece is found on other Bestway spa models such as the SaluSpa Paris, SaluSpa Hawaii Which are models sold in the US.  Other models that use this adapter include some of the Lay-Z-Spa models which are models sold in the UK, such as the St Moritz and possibly others.
The piece described above fits on to a piece like the one on the left which attaches to the water output port of the heater/pump.  It fits on to this piece by twist locking into the channel marked in red.  Looking at that and the threads on the Intex LED light, I figured I could design an adapter that would thread into the LED light on one end and provide the twist lock tabs for the Bestway spa on the other. The picture on the left is the adapter that I designed.  The picture to the right shows that adapter screwed in to the LED light and sitting next to the original piece that I removed to attach it.  If you have one of these spa models and would like to purchase one of these adapters, you can purchase it from my online store by clicking on this link.
In some later conversations with some people that were interested, but didn't think the adapter would fit their model, a picture I was sent from one person showed that the output port on their spa didn't have the notches needed to use this adapter.  This gave me the idea to create another version of the adapter that would fit in place of the gray output port shown in the picture on the left.
I modeled the adapter off of the smaller threads of the piece from my spa, and this is what I came up with.  This adapter should fit most of the other Bestway spa models that have a 26.25mm (1.03in) threaded port, though it has not been test fitted on these other models.  If you are interested in trying one of these adapters, these too can be purchased from my online store by clicking on this link.

EDIT

Since writing this article, I have designed yet another adapter to fit the Mspa brand of inflatable bubble spas.  My understanding is that it fits most, if not all of the Mspa brand bubble spas. The small threaded end of the adapter is 36mm (1.42in), which is a larger diameter than that of the Bestway/Coleman adapter that I sell.  If you are interested in this adapter, you can purchase it from my web store by clicking here.

Conclusion

I have adapted this LED light to fit on most if not all Bestway model bubble spas.  If you have any other spa or pool model that you would like to adapt this to, feel free to contact me with some information and let me know what your needs are.  You can contact  me using my contact form by clicking here.  

Happy relaxing in your newly converted bubble spa.

Automatic Retracts For Your Drone

185{icon} {views}

Introduction

Do you own a drone with a camera?  Have you ever taken footage with your camera that would look perfect, if only your landing gear were not in the frame.
Sample of landing gear in camera view

The solution; add retractable landing gear.  In this blog post I am going to show you how to set up a set of retractable landing gear.  Not only that, we are going to automate it's operation.

The Retracts

There are many different types of servoless retracts that you can buy.  You can buy the bare retract modules, the type with wheels for an RC plane or the type that I used with carbon fiber legs like this.
Drone retractable landing gearI bought this set off of ebay for the reasonable price of $32.29 US dollars.  The kit did come in pieces, so I did have to put them together once I got them, but it was pretty straight forward and easy.  once I got them assembled I had to find a way to attach them to my drone.  The drone I am attaching them to is a hexacopter with a 27.5 inch (707.39 mm) arm span from tip to tip of one of the long arms.  
Drone without retractsPart of my issue was that the side arms of the copter were swept slightly forward.  If I was just to mount the retracts perpendicular to the side arms, the gear, when in the downward position would be pigeon toed in toward the front.  Because of this, I wanted a mount that would keep the legs parallel when in the down position.  For this I used some creative 3D modeling and created this.
Retract mount CAD viewThis allowed me to keep the 15 or so degree sweep and have the legs parallel to each other.  Plus it fit around the square tubing used for the arm giving it a solid surface to mount to.  If there is interest in this retract mount I will post it on thingiverse.  Just send me an email and I will post it.  Here is a pic of the drone with the retracts mounted.
Drone with retracts mounted
You will notice that the base of the legs have foam on them.  I just used standard 1/2 inch pipe insulating foam that you can buy at your local hardware store.

The Automation

So now I have this set of retractable landing gear set up on the drone, how am I going to make them work?  I could do the old practice of setting them up to be controlled by a switch on my remote, but where is the fun in that.  Then I'd have to remember to flip the switch when I got in the air and flip it back when I wanted to land.  I found a video on youtube of a guy that built a cheap retract control using an arduino nano.  I thought that I would give it a go.  The only problem was that I didn't have a nano in my stockpile of parts, and the firmware that he had for it was specific to the nano and he didn't release the source code for me to compile it for a different module.  I had a couple pro micro boards in my parts bin, so I worked with that. 

The board is built using a BMP180 barometric pressure sensor which is used for measuring altitude.  Retract control board The board is then configured to retract the landing gear automatically when the drone reaches a set altitude, and then extends automatically when it is below that set altitude.  Being that the guy in the youtube video had not released the firmware source code for his unit, I took to the keyboard and wrote my own.  I have the source code posed on github for anyone interested.  The firmware can be configured with any terminal windo that can connect to a serial device such as the terminal in Mission Planner.  With the firmware loaded and in a terminal window just type "menu" to see a list of the options available.  When settings are changed, they are automatically saved and will be loaded on future restarts of the drone. 

The drone should be sitting on the ground or surface that you are going to launch from when powered on.  Once powered on, the firmware reads the current altitude and sets that as it's baseline measurement for determining when to retract and extend.  The default height for the firmware is 72 inches, or 6 feet.  Once the drone reaches the set height, the legs should automatically retract.  When the drone goes below the set height, the legs should extend down in preparation for landing.  The height that you set should take into account the normal rate of descent and the amount of time that it takes for your landing gear to fully extend.  A slower descent will allow you to set the retraction height lower.  One way to help prevent a hard landing when the legs aren't fully extended is to add a downward facing sonar module set up to slow the descent when close to the ground.

Conclusion

I hope you found this post interesting.  If you have any questions or comments, post them here or send me an email.  Happy flying.

Anti-Spam by CleanTalk review

25{icon} {views}

Let me start by saying that this is my own personal opinion/review of this product.  I have to say that in the short trial period that I used the Anti-Spam by CleanTalk plugin for my WordPress website I have been very pleased.  I used to have to wade through 30 or more spam comments per day to decide if they were real or not and send them to my spam folder.  In the seven days that I have used it, it blocked 288 submissions from my website.  I did get a small handful (less than 5) in the seven days that I used it, but as I marked them as spam, the plugin added them to their list which as I understand it, increases the power for others.  

I fully recommend this product.  At $8 per year for one website for the service compared to the time that it saves is WELL worth the money.  That is less than a dollar a month.  If you run multiple websites, the price gets cheaper per site the more you have.  For me to give up one diet pepsi per month for this kind of protection, I can handle that.  

Visit https://cleantalk.org/help/cleantalk-spam-firewall for more details.  You can get a 7 day no obligation free trial to see for yourself.  You do not have to enter any credit card information to sign up for the trial, so what are you waiting for.

Heat bed connector tips

1.2k{icon} {views}

Introduction

If you own one of the popular Anet A8 3D printers, you have probably read about or experienced the dreaded burnt heat bed connector.  In this post I will talk about how and why this happens, and ways to fix or even prevent this before it becomes a problem.

Burnt heat bed connector

What is this and how does it happen

In the image seen above, the brown area on the side of the connector is heated burnt plastic.  This is caused from the metal connector inside the plastic housing getting hot.  Why does this get hot you ask?  The root cause of this problem is movement of the connector due to the wires not being secured.  As the printer is printing and moving forward and back, the wires are constantly moving from side to side.  This movement puts stress on the connectors inside the plastic housing as they are connected to the pin causing micro gaps between the connectors and the pins.  Because of these gaps the high current traveling through the connector arcs across these gaps.  Every time an arc happens, a small amount of oxidation builds up at the point where the arc happened.  As the connector continues to arc and the oxidation on the connector and pin builds up, this causes resistance.  With resistance and high current comes heat. The more the movement, the more arcing.  The more arcing the more oxidation buildup.  The more oxidation buildup the higher the resistance.  The higher the resistance, the more heat.  All this until the connector can't take it any more.  If it gets bad enough, this can start a fire.

3D printer fire

A fundamental cause of the problem

Heat bed connectorThe Anet A8 printer has a fundamental design flaw in the heat bed connector from the get go that can increase the chances of the connector heating up and burning out.  The connector used on the heat bed is a VHR-6N manufactured by JST.  The easiest is to buy a pre-made harness rather than the connector.  If you just buy the connector, then you have to have the proper crimper to attach the connectors.  There are not a lot of companies that sell a full harness that I have found.  They can be found on ebay though.  Just do a search for "JST VHR-6N harness".  You can usually get them in 1 or 2 foot lengths.  Next, if you look at the data sheet for this connector (http://www.jst-mfg.com/product/pdf/eng/eVH.pdf), it has a rating of 10 amps.  That is 10 amps per pin which is close to what the heat bed draws, actually a little less.  The heat bed has a resistance of around 1 ohm, and according to ohms law, current = voltage / resistance, so at 12 volts, the heat bed should draw approximately 12 amps. The connector has 6 pins, but the manufacturers of the Anet A8 decided to only use 4 of the 6 pins with their wiring.  The outer two pins are the power connections for the bed, and the middle two pins are for the heat bed thermistor.  Because of this, there is a potential 12 am draw on a pin rated for only 10 amps.  The ideal connection would be to use the outer TWO pins on each side, marked + + and - - on the image.  Using two wires for each spreads that 12 amps evenly over the 2 pins.  Therefore you get a current of 6 amps on each pin which is 4 amps less than what they are rated for which is MUCH safer.

How to fix the problem

I see SO MANY PEOPLE out there that say that the fix for this problem is to add a MOSFET to your power connections for your heat bed.  This is NOT the answer.  So you may ask, how do I fix this issue.  Fixing this issue requires addressing the two problems discussed here, motion of the wire causing arcing, and spreading the connection of the wires on the heat bed across both positive and both negative connector pins to even out the distribution of the current that the heat bed draws.

Heat bed strain reliefThe first one is easy to deal with, and that is with the use of strain relief on the wire preventing it from moving the connector.  This can be something as simple as using a binder clip to hold the wire to the bed, to a bit more complex using the Y axis cable chain mod.  Basically anything that can keep the wire from moving the connector around while printing should work.

The next is to modify or replace the heat bed connector.  One mod can be seen in the image above which uses spade connectors that will connect between the two positive and the two negative pins on the connector and using the stock wire.Replacement heat bed connector  Another option is to buy a replacement heat bed connector that has all four wires and connecting both positives and both negatives together at the heat bed connection point, be that at the main board or  mosfet if you have done such a mod.

Conclusion

I hope you found this information informative.  I wrote this in the hopes that it can help new Anet users prevent some of the issues that can arise, as well as helping users that have ran into these problems to figure out the best fix for their situation.  In any case, happy 3D printing and I hope you get years of use out of your Anet printer.

Related Images:

Smart home vs an automated home

Smart v automated home
99{icon} {views}

Introduction

In this article I'll touch on the Internet Of Things (IOT) and what it is.  I will talk about, and show similarities and differences between a smart home versus an automated home.  I will talk about different home automation software packages and different ways to gear your IOT devices towards making your home more of a smart home.

Internet Of Things

You may have heard the terms IOT or IOE before and said, what the heck is that.  IOT stands for the Internet Of Things.  Similarily, IOE stands for the Internet Of Everything.  IOT and IOE,  in it's broadest sense is the process of making the things that we use every day, in some way shape or form, connected to the internet.  These things have various sensors and control functions.  Being connected to the internet allows outside access to to the data and control that those sensors and controls provide.  IOT is a way of simplifying the world around you.  IDC, a market intelligence research firm, says that there are around 13 billion connected devices in use worldwide already.  Business Insider (BI) Intelligence projects 34 billion devices will be connected by 2020.

Home automation projects

X10 LogoOne aspect of IOT that is becoming more common is home automation.  Home automation is nothing new though.  My start into home automation began many years ago with X10.  I found it nice to be able to control devices remotely.  With their software called ActiveHome, I could also automate things with motion sensors and timers using a computer.  After using it for a bit, I found that there were things that I wanted to do that my X10 hardware could not.  Since then I have tried a number of different software packages, most of which fit in the realm of home automation platforms.Automation controllers  Some of these have included MisterHouse, Domoticz and most recently my VeraPlus controller.  I have another blog post talking about my home automation setup.  https://dan.bemowski.info/2017/06/11/my-home-automation-setup/

OSA smart homeOne project I was a part of that geared itself toward being more of a smart home system than an automated home system.  That project was called Open Source Automation, or OSA.  The features that drew me toward the system were it's ability to integrate a number of different types of hardware into one system.  Another thing that drew me toward it was it's focus towards being a smart home controller. When I was on the project, the smart home features were in their infancy, but moving forward.

Smart home vs automated home

So what is the difference between an automated house and a smart house.  The ability for you to turn devices on and off from your phone, and scheduling lights and other devices to turn on and off on different schedules, simply means that you have an automated home.  You may ask then, how is that different from a smart home.  A smart home adds other layers on to the automated home system giving it a new level of functionality.

The broadest aspect of a smart home is gathering lots of data.  Smart homes are made of many data gathering tools and sensors.  Gather more data and you can  make more intelligent decisions based on that data.  Another thing we'll throw into the mix is objects.  These objects have many properties.  The properties of these objects, combined with data that your system has collected can now make smart decisions.  Now your system is gearing up to be a smart house.

One of the biggest pieces of data in all of this, and the most difficult to manage, is occupancy sensing.  A basic level of occupancy sensing is to put motion sensors in a room that will turn lights on and off.  However, the use of a motion sensor will only tell your system that one or more people occupy an area.  Now what if you could tell how many people were in that area.  To take that a step further, what if you could tell exactly who was in a particular area.  Now you can make smart decisions based on that added data.  

People objects

People iconPreviously we mentioned objects and their corresponding properties.  So lets say we defined a person as one of those objects.  We'll define two "person" objects using myself (Dan) and my wife (Karen) as examples.  So let's say Dan likes the temperature in a room to be 70° and he likes a lot of light in a room.  Two properties for Dan would then be "temp = 70°" and "lightLevel = 100%".  Now Karen likes the temperature in a room to be 67° and have the lights a little dimmer, so her two properties would be "temp = 67°" and "lightLevel = 70%".  Let's combine this with motion sensing with person recognition.  You can now define your rule on your main controller to say:

If ( motion_sensed ) {
    if (furnace_mode == off ) {
        set furnace = on; //Turn the furnace on if someone is in the area
    }  
    set furnace_temp = temp; //Set the temperature to the users desired temp
    set lights = lightLevel ; //Set the lights to the users desired light level
    }
}

So with that, if I walk into the room and the furnace is off, it will set the temperature to 70° and turn the lights on to 100%.  If my wife walks in under the same scenario, The furnace will set itself to 67° and the lights will dim to 70%.

As you can see, the more data you can gather, the smarter, more informed decisions your automation controller can make based on that data.  Using this approach can save energy and improve the quality of life for the occupants.  You should now be able to tell the difference between a smart house and an automated house.

Conclusion

So to sum it up, an automated house gives you control of devices from an external source such as a smart phone and limited action from other sensors such as motion sensors.  A smart house makes it's decisions using multiple factors and sensors.  Check out the ongoing discussion on this topic on the MySensors website https://forum.mysensors.org/topic/7814/a-smart-home-vs-an-automated-home/ .

Related Images:

Temperature-humidity sensor

Temperature & Humidity
53{icon} {views}

Description

This post will outline how I built some temperature-humidity sensors for my home automation setup to use in a couple rooms in my house.  I'll explain some of the options I tried before coming to my final design.  I will also give you links to where you can purchase the parts and to download the 3D printer files for the enclosure.

Introduction

This originally started from an idea I had for my home automation setup to put a temperature and humidity sensor in my main bathroom.  The main reason for this was to help a small problem with occasional small mold spots on my ceiling.  This was most likely due to humidity in the bathroom.  When someone would take a shower, they would turn on the vent fan before showering, and then off shortly after.  The problem is that when the vent fan is shut off, there still may be excess humidity in the room that could eventually cause the mold.

The idea was that I could have a controller on the vent fan for the bathroom that would turn on when the humidity reached a certain level, and then would also turn off when below another level.  The two levels would factor in some hysteresis to the equation to prevent the fan from continually starting and stopping when the humidity is near a certain level.   By doing this, the humidity in the room would be dropped to a safe level before shutting off, thus preventing the mold problem.

The temperature-humidity sensor design ideas

So I needed to figure out everything I would need for the project.  My primary home automation setup revolves around MySensors nodes.  Those nodes talk to my Vera Plus automation controller.  I decided to make the temperature and humidity sensor a MySensors node.  The exhaust fan control, which I have yet to do, will be controlled by a converted Sonoff module.  For this article i'll focus on the Temperature and humidity sensor. 

Below is a list of the things I needed to create the sensor.  The basic list was simple

  • A circuit board for the project.  
  • A micro-controller to control the sensor.
  • A temperature and humidity sensor.
  • Some kind of power source.
  • An enclosure to mount the sensor to the wall.

On to building the prototype

Easy/Newbie PCBFor the circuit board, I had a number of the MySensors Easy/Newbie circuit boards, so I thought that would be a good choice.  For that board I needed an Arduino Pro Mini, and an nRf24L01+ radio.  

Now I needed to choose a temperature-humidity sensor.  I had both some DHT11 and some DHT22 sensors.  The DHT22 is a higher resolution sensor, so I originally decided to try that one.  Through some testing with the DHT22 sensor I found that the power consumption was too high.  HDC1080 thumbnailI did some looking and found the HDC1080 sensor.  This sensor connects to the I2C bus and uses very low power.  It's low power consumption made it ideal for use on a battery operated node.   By removing the regulator and power LED from the Pro Mini I was able to run this sensor for a week with no significant power drain on a set of 2 - AA batteries.

The last piece of the puzzle was an enclosure.  The enclosure had to be vented since I was measuring temperature and humidity.  It also needed to be able to hold a battery  or set of batteries.  I figured that I should find the battery box first, and then design the sensor enclosure around that and the PCB.  I settled on this one.

The enclosure design

I have dealt with temperature sensor enclosures before, so I had some ideas on what the enclosure should look like.  temperature-humidity wall boxI turned to OpenSCAD and came up with a basic design.  The box was vented, it had mounting tabs for the PCB and a place to hold the battery box.  temperature-humidity wall plateI decided to make it easy to remove from the wall if needed and made the wall plate with two tabs that the cover could lock on to. 

Since the creation of the first prototype wall box, I have done a couple revisions to the design.  This is what the final design looks like.temperature-humidity wall box V3
Version 3 of the wall box is highly configurable and can be adapted to other configurations if needed.  All versions of the wall box can be found on my thingiverse page https://www.thingiverse.com/thing:2186286

Related Images:

RS485 communication techniques

RS485
214{icon} {views}

Introduction

RS485 is a physical layer communication standard typically used in automation systems as a way for sensors and other devices to communicate to a central automation computer.  It is also used in computer system peripherals for data communication between devices.  A couple examples of this are the Small Computer Systems Interface, or SCSI-2 and SCSI-3 interfaces for hard disk drives.  Different systems use different protocols as their defined standards outlining the "language" they will use to communicate to each other.   In this short article I will discuss data communication using an RS485 serial bus and the best practices for an error free signal.

What is RS485?

RS485 has sometimes been referred to as a protocol, which it is not.   It is simply a communications interface wiring standard.  Unlike RS232 serial which is used for point to point serial communications, RS485 is a standard used for multi-point serial communications.  RS485 communication is typically done at half duplex using two wires  handling both transmit and receive.  Full duplex operation can be achieved using 4 wires depending on signal and speed needs.  Below is a diagram of an RS485 serial bus showing the master node and slave nodes.
RS485 Bus Diagram
As can be seen in the diagram, there is the two data lines, or differential pair, where the master and slaves connect, and at the end of the differential pair is a series of termination resistors.  Because the wires are a differential pair, the termination resistors are used to prevent reflections of the signal from back-feeding on to the line and causing collisions.  An RS485 network should only have termination resistors at the beginning and end of the transmission line.

The communication

Data transmitted on an RS485 bus can be heard by all nodes connected to that bus.  Because of this, a protocol is used to determine how that communication is managed.   The protocol must define a system for how data is transmitted, how a node knows that the data is meant for that node and how that node responds to the data it receives.  There have been a number of different protocol standards used in RS485 communication, with one of the most notable standards being the Modbus protocol.

RS485 interface types

RS485 USB Interface

There are many different types of RS485 interfaces on the market.  One is a USB type interface as seen on the left. This type will allow you to use a laptop or desktop PC as a master device, or a slave node on the network.  Another type such as the interfaces shown below are typically used to connect to a micro-controller such as an Arduino or a PICAXE, or small credit card size computers like the Raspberry PI or Beaglebone Black.  Interfaces such as the ones below typically come with the termination resistors integrated on to the board and may need to be removed if being used as slave nodes in the network.Microcontroller RS485 interfaces

RS485 bus setup

In an RS485 topology, the network is designed as one single line with multiple drops, or slave nodes.  As mentioned previously, termination resistors are put in place at both ends of the line to prevent signal reflection.  When termination resistors are not used, signal reflection can distort the signal on the line to the point of causing data loss or corruption.  These reflections are more noticeable on longer runs because the length of the pulse is long enough for the full pulse to make it to the far receiving end.  Once it reaches the end, it is then reflected back causing ghost signals that can differ in phase by the time it has ended.  On shorter cable runs, the the delay of the reflected signal is short enough that the distortion may not affect things because the phase difference will be negligible.
RS485 bus termination
Termination resistors should not be used at the slave nodes as this will cause unwanted signal attenuation.  With too much attenuation the signal may get lost completely.  Therefore, on node adapters where termination resistors are in place by default, such as the ones pictured above, you may need to remove them if they are not acting as the end node.

Conclusion

RS485 can be a good way of connecting automation devices where wired connection between devices is critical in preventing drops in signal.  Following these simple rules for connecting the bus, the signal transmission between devices should be quite reliable.

Related Images:

Unseen door sensors

Door sensors
25{icon} {views}

Unseen door sensors

NOTE: This is a post copied from my old website.  This content was posted back in 2012, but the idea is still a good relevant one.

I did some testing with a theory for a hidden door sensor.  I had a pile of magnetic reed switches and got to thinking.  Neodymium rare earth magnets are the strongest magnets you can get.  I had one that I pulled from an old hard drive that was very strong.  I connected my continuity tester to the switch and set it on top of my desk which is made of 3/4 inch press board.  I held the magnet under the desk top and was able to activate the reed switch with the magnet even 1/2 inch or more away from the bottom of the desk top.  This told me that it should be able to activate the switch through the frame of a door.  The distance from the hinged side of the door to where the magnet and reed switch are mounted will determine the sensitivity of the switch action.  The switch would be most sensitive at the furthest point from the hinged side.  Below is a diagram of the concept.

 

Related Images:

The setup of my 1-Wire network

337{icon} {views}

Introduction

DISCLAIMER:  This post was copied from my old web page and is a bit old.  Some information contained within this post may be out of date.
In my home automation setup, I wanted to be able to monitor temperature in various places around my house as well as outdoors.  I wanted a solution that was relatively cheap and easy to use.  My brother some time back had mentioned to me about something called 1-Wire.  He had used it up at his cabin to monitor temperature and electric usage through current sensing.  I did a bit of searching and found that it fit both of my needs, cheap and easy to set up.  So I figured I would document my setup here.

The 1-wire interface

1-wire adapterThe first thing I needed to run this was some type of 1-Wire computer interface.  After looking at options, I came across the DS9097U adapter on Ebay.  Unlike other 1-Wire adapters that had an RJ11 jack for connecting the sensors, this model had 2 - 3.5 mm headphone style jacks on it.  It did come with an adapter to connect the RJ11 style sensors if needed.  It looked like that adapter would fit the bill perfectly.  I ended up purchasing one for around $20.00 US from a china distributor on Ebay.

The sensors

The next thing I was going to need was some of the 1-Wire temperature sensors.  My brother had mentioned that he got all of his equipment from a company called Hobby Boards.  I checked their website and I could buy the bare temperature sensors for about $4.50, but they wanted $10.00 for shipping.  I decided to check Ebay.  I figured that if I could get the adapter cheap, I should be able to get the sensors cheap too.  I ended up finding another chinese distributor that sold the sensors in packs of 5 for around $7.00 shipped.  A pack of 5 of them from Hobby Boards would have been about $40.00 shipped, so I went for the Ebay deal (who wouldn't at that price), so I bought a pack of 5 just to try things out.

The build

Now that I had all the parts, I needed to figure out how to wire things up.  Looking at the data sheet, I saw that there were 2 ways to wire these devices.  The first was using parasite power.  This is basically powering the device from power it grabs from the 1-wire network.

The other way was to use an external 5 volt power source.

So, if I was to use the external power source, how would I accomplish this.  I once again turned to Hobby Boards who had a how to section that outlined a wiring specification that used cat5 wire, and supplied a regulated 5 volts along with an unregulated 12-24 volts on the wire for use down the line for other devices.  The color scheme shown here is using the ISO T568A standard.  Most cat5 cables that you buy these days use the ISO T568B specification which is what I am using.  The only noticeable difference is that the orange and green wire pairs are reversed putting the color order at, white orange, orange, white green, etc... 

I figured using a documented wiring spec would be more reliable, mainly because it has been tested and used by others.  Not to mention if I wanted to add other devices from Hobby Boards, I can do it without having to re-wire things.

Now that I had a wiring specification planned out, I had to figure out the temperature sensor nodes.  Using the information from the DS18B20 data sheet, I devised a simple circuit that allowed me the option of using parasite power or external power.  Using a jumper on a 3 position header I was able to quickly switch between the 2 if needed.  In the schematic shown to the left, placing the header jumper across pins 2 and 3 will run the sensor on parasite power.  Conversely, by placing the jumper on pins 1 and 2, I could run it on the 5 volt external power.

Since the majority of the nodes were going to be in the house on walls, I wanted something that wasn't going to look unsightly on the wall.  I ended up finding someone that was throwing out some old vented covered wall boxes.  I then put together a couple of these circuits on some perfboard.  I even made an etched board that although it turned out good took too much time.  The perfboard versions were much easier to do in the small quantity that I needed, and they worked just as well.  To the right is one of my perfboard sensors mounted on the wall plate ready to be installed.  I connected each one individually and used the software that came with the 1-Wire adapter to get the built in hardware address of each sensor and labeled each one.

The installation

Now that I had a few of these built, it was time to install them around my house.  To start, I installed one in the master bedroom, orne in the spare bedroom and one outside on the outer edge of my deck.  I wired these up with the cat5 wire just stripped and screwed to the terminal block using the blue pair and the solid orange wire.  Though  this works, my issue with it right now is that none of the connections pass the other wire pair signals down the line, like the 12-24 volt power.  For now, this is not an issue, but I do have a plan for fixing it which I still need to implement. The idea is to use an RJ45 splitter adapter similar to the one shown to the left.  By crimping modular plugs to the ends of each cable coming to the temp sensors and plugging them into the 2 jacks on the adapter, this will pass all signal and power lines through. I can then clip the wire that comes off of the adapter and use it to connect to the temp sensor or whatever other sensor I try to install.

The only other hurdle to attack in this project is to get things set up in my automation software.  This was insanely easy.  I installed the 1-Wire plugin for OSA and after plugging the sensors into the adapter, OSA sent a 1-wire search ROM signal which automatically detects any sensors attached to the 1-Wire bus.  OSA then automatically added these as objects to the system.  All I needed to do then is to add them to my floorplan view and make use of them in the system.

I started with the outdoor sensor.  Looking at my RCS thermostat a while back, I noticed that it had an option for displaying the outdoor temperature on the wall display keypad.  Since I wrote the OSA plugin for it, I simply added an option for taking the temperature value from any other OSA object and sending it to the thermostat.  Now if I want to know the temperature outside, I just look at my thermostat.

I wanted to do more than just use these to display the temperature on a wall display.  My next thing to tackle was to use the value from my master bedroom sensor to aid in controlling a booster fan that I have attached to my furnace.  The booster fan was originally set up to come on any time the furnace or central air turned on.  I thought that this was a waste of energy, so I set up a script to say if it is between 9:00 PM and 1:00 AM, and the temperature in the room is below 68° in the room when the furnace kicks in, then turn on the booster fan.  This is so that the room is warmed up a bit when we go to bed.  I will do something similar for the summer months and using the air conditioner.  Now I have some real world energy saving with the system.  Though not much, i'd suspect, it is something.

I have recently installed two of these in my bar/man cave area in my basement.  The room is very long with a fireplace at one end.  My plan is to monitor both temp sensors and when the one closest to the fireplace shows a temp that is 3 or more degrees higher than the one on the other end of the room, it would turn on a fan to circulate the air in the room.  The fan would then stay on until the temperature normalized throughout the basement.

One more thing that I plan on doing which I have not yet set up is to put a system in place for humidity control in my bathroom.  The idea is to install a 1-Wire temperature and humidity sensor in the bathroom.  I will then install a controller on my vent fan that I can turn on when the humidity gets too high.  The fan would then stay on long enough for the humidity to get to a safe level.  The idea behind this is to control mold and mildew buildup in the bathroom.

Conclusion

There are many other uses for 1-Wire in a home automation setup.  Implemented correctly, many of these can save you time money and cleanup costs.  I have not even scratched the surface of things I can do with this, and I plan to do a lot more over time.

Related Images: