I am NOT an electronics hobbiest

People call me many things, some polite, some not, some to my face and I am sure, some behind my back. One thing I have been accused of being, and that I am most certainly not, is an electronics hobbyist.

Certainly I use electronics, and my extremely limited electronics knowledge in many of my projects, but I certainly am not interested in the electronics, for the sake of the electronics, in fact I cannot think of much of less interest to me, and whilst I can understand the point of building electronics to test and build something so you can increase your knowledge, this is simply not me. I learn what I need to know to complete a project.

This has come about as at one client they are utilising Arduino’s in an educational setting, and on numerous occasions I have been asked to help out due to my knowledge surrounding them, now this is fine whilst they are doing some basic functions, you know, hello world kind of things, but so far for example I have had no need to learn how to control or manage servo’s so when that comes up, I am of little use.

What I DO build with electronics, are things that I cannot purchase off the shelf, yes I know its lazy, but like so many others I am time poor, I only build things that I have to build to achieve an outcome that I have decided I need, often times this is with the goal of some kind of automation, or reporting on certain states to conserve time on often wasted tasks that I would have to otherwise do.

One example of this, is the Particle Phone and electronic scales I am working on for the measurement and ultimate reporting of weight of a container of hydrochloric acid that is attached to the pool. The automated systems we have in place around the pool control PH, Chlorine to Salt conversion (through the use of ORP) and temperature on the solar controller. What it does not do however is tell me and report on the weight of the remaining hydrochloric acid, meaning constant checking of this one component. This project is simply to use a particle photo (or perhaps ultimately a ESP8266) to simply read with weight from a scales and report it back, and then either generate a push message or e-mail when the weight drops to a certain percentage(s) of the original (minus the approx weight of the container obviously). This reduces my need to check the system.

What this does not make me, is an electronics hobbyist, it makes me a maker, or perhaps an assembler, cobbling bits of off the shelf hardware and code together to make a task work. A true electronics hobbyist, would design the circuits, test them and go for a far greater efficiency than I am trying to achieve, as the photon is most definitely overkill for the task at hand in this case, and perhaps an ESP8266 is as well, I do not know, I do not care, I am after a working “product” at the end that can achieve my rather simple goals.

As I said, I am not an electronics hobbyist.

Justin

The Hidden Cost of the Raspberry Pi (and other “cheap” SBC’s)

The Raspberry Pi and other small single board computers have really taken off in the past few years, especially with the burgeoning wave of development, both commercial, but mainly hobbyist of the Internet of Things (IoT) arena.

Now Raspberry Pi (I am focusing on RPi here because it kicked off the whole shebang in a big way, small SBC’s existed before then but they were not as widely available or used) was never intended to be a IoT board, it was originally intended to be used to teach programming to children. The success of this original project (with over 5 million, yes that is 5,000,000 sold) has not only spawned a myriad of projects but a whole bunch of clones and similar devices looking to capitalize on the success of the project.

With the hobbyist community getting a hold of these devices and putting them into various projects one has to question the cost of these devices. The devices for those who do not know cost US$25 or US$35 depending on the board revision however you also need to add a SD card (either standard or micro depending on revision), power supply, case (enclosure) and if needed a USB wireless dongle and you are looking at getting towards US$100, not as cheap as it sounds to be, and that’s in a basic headless configuration.

The other side to this is the environmental cost, with all these devices (remember there are 5 million RPi’s alone) floating around that will at some point in there lives end up being thrown out, and mostly into landfill it is not overly environmentally cost effective with all those electronics leaching chemicals and other materials over time. What causes this, upgrades to newer models or migrations to other platforms, or even loss of interest, the result is the same.

Now don’t get me wrong, I am not saying these systems are all wasted, or all an issue. Many interesting projects and products are developed from them, not to mention the education that people get from developing on and for these systems. What I am saying is that their use should be more specialized to where the processing power is actually required or used to aggregate the data (done through a technology such as MQTT), cache it and forward it to a more powerful management system (home server anyone).

Further to this, the idea here merges nicely with my move to containers (Docker) and my continuing work with Virtual Machines. If we take the services the RPi runs for each function and put them into a container, and that container syncing through either MQTT or directly through the applications services to a micro controller which then carries out the functions.

Why is this more efficient, because the micro controller only needs to be dumb, it needs to either read the data on the interface and report it to the server, or turn an interface on or off (or perhaps “write” a PWM value) to perform a function. This micro controller does not need to be replaced or changed when changing or upgrading the server, and can even be re-tasked to do something else without reprogramming the controller and only changing the functions and code on the mother controller node.

Much more efficient and effective. It does however have the downfall of an extra failure point so some simple smarts on the micro controller would be a good idea to allow it to function without the mother controller in the event of a failure but the MQTT controls are agnostic so we can work with that, at least for monitoring.

Opinions?

Justin

Smarter Sprinkler System

Irrigation (sprinkler) systems have come a long way since their inception, and even further since the advent of modern electronics, and with the modern Internet and the beginings of the Internet of Things (IoT) revolution they are getting smarter and are able to do more. One example of this is that where a “modern” controller can tell if it is raining, or has rained in the past period through the use of a rain guage, IoT devices such as the OpenSprinkler can now use forcast weather from the internet to make a decision about the watering. Linking this with things such as moisture sensor data can make these systems even smarter. This is however one thing that seems to be missing, the “smart” solenoid.

I am not a gardener by choice per-sey but more by nececcity, wanting to take more control of the food I and my family eat requires growing our own, which whilst easy in some respects, does chew up a lot of time.

Solonoids themselves are quite simple devices they use a magnetic coil to retract a metal (normally iron) core against a spring (which opposes the coil so the solonoid goes back to “rest” when the electrical current is no longer applied) to open or close a gate, if the gate is closed, water does not pass, open the gate, and the water flows through. Nice and simple.

What is not so simple however is the current requirement to run an entire cable pair, yes there are ways of theoretically doing n+1 (n being the number of solonoids) but in general its one solonoid its one cable (pair).

Now with cheaper, smarter, more capable electronics what is to stop us moving the “smarts” that for so long have been intergrated with the controller, on to the solonoid itself, you could then program it over the cloud, a RTC would allow it to turn on/off on a schedule, a hard link to a moisture sensor could allow it to turn on if the soil gets to dry, and cloud computing, or a local weather station could stop it watering if it has rained or is predicted to rain within the next allocated period, say 6 hours.

That gives you more smarts than are most old control boards are capable of, almost as much as modern ones are capable of.

But what if, now we have this connected to the cloud, and we can group them, in one or more groups to control when things are watered. Got tomatos that need watering twice a day but are at opposite ends of the garden, not a problem just create a group of two or more solonoids to control, put in the times and off you go, what about 3 areas, just at another solonoid, 4 areas so on and so forth.

But we are talking the cloud here…. it’s all seeing, all knowing. You could in theory not only control based upon groups, but what about plant types, if you could TELL the system that you were growing tomato’s and you could tell it how much water you want to give them, and when. If you wanted to you could even attach a flow meter to measure the amount of water delivered rather than base it on the arbitary value of time where the pressure and therefore amount of water could vary, with a flow meter you KNOW how much as been delivered.

What I am thinking is a bit light your LifX bulbs, but for solonoids. What about data, well that is easy you can do it through standard 802.11 Wireless, or how about XBEE back to a controller station, or even use a three cable wire to tap in to, using an addressing system such as I2C. In the end it does not matter so much about the how it works technically, so long as I can walk up, plug in the power (or power & data) and connect to the water piping, program it how I want and boom, it works.

Ah well we can all dream

Project: HomeMadeMonitor

Yes, yes I know I should finish other projects first, but I have yet another electronics project I want to start playing with, and this post is more for a reminder of what it was I was aiming to achieve more than anything else.

As I have been falling more and more down the self sufficient/home made produce rabbit hole, I have noticed that I need more and more data for certain things, so that I can then act upon it, or even better yet, have an automated system to act apon it for me.

The two things I am thinking of, are specifically the (dry) curing of meats such as salami’s and the aging of cheese. Both these are reliant on maintaining the right temperature and humidity within a certain range for a prolonged period of time, ranging from weeks to years depending on what your wanting to achieve. Now in the past this has been what I have been designing SafeDuino to do, and whilst that does other things in addition to monitoring temperature and humidity, some of those more advanced are not needed by the monitoring and control software.

Whilst it may be more benficial to “recycle” code from the SafeDuino project. I am finding myself drawn more and more to the Particle Photon system for these basic requirements as not only as it generally cheaper than the Arduino’s (Freetronics EtherTen and EtherMega) I have been using, but it does come with built in WiFi. Conversly I then have to supply power to the device, either through a paraciticle connection to something else, a dedicated connection to it, or a Solar/Wind & Battery solution, where as the EtherTen and EtherMega boards (with the use of a PoE module) can pull power from the PoE switching equipment I have in the house. A wired connection is always going to be more reliable and faster anyway, although the speed is irrelevent when your doing so little data transfer. Using wireless also means I need to ensure that I have wireless access at each point on the property where I want a monitor, which is easier said that done when we have a large property, much larger than any one or two wireless points can handle, although this is due mainly to the construction materials of the buildings on the property and the distances involved.

This leaves me wondering how to achieve this. Given the design of what I want to achieve, being able to control one or more chambers, through one or more devices I am thinking I need to build it as to make extensive use of 1 wire and I2C technologies, ideally linking back to a Paricle Photon (it has considerably more processing power than an Arduino) and then back to a server. Simular to what they have done with BrewPi, but this means as I said above power supply issues to due no PoE connector, and connectivity issues…

Anyway I will think on it further, but I will most likely end up using the Particle Photon.

What I need to achieve however is rather simple, as I said above monitoring one or multiple “cambers” from a single root node (the Particle Photon) and reporting the data back to a server, where it can be further processed and acted upon if need be. These “chambers” can be joined, or independent, and may or may not have one or more common components (think combo fridge/freezer where the compressor is common to both).

Each “chamber” must be capable of having unique settings (within reason, you cannot expect it to keep one chamber at 30 degrees Celcius and the other at 10, its just not going to happen if you have common components) and be able to work out how to handle this.

I guess it is time to start designing (and finishing off other projects)

Have Fun

Justin

SafeDuino – Part 05: First Released Part Sketches

Further to my last post on the subject I have had a little time, or rather made a little time and created two boards for use in the movement of power and data from the EtherMega to where it’s needed. The first is a RJ12 connection so 4 data pins are possible, the second is a RJ45 connection so 6 possible data connections.

Both boards are double-sided, and have multiple power inputs/outputs and are designed in such a way as to be stackable either vertically, horizontally or both to allow a layer cake effect for these connections, there is a row of single header pins at the “back” for the board and you can mount either horizontal or vertical pins in it, or as I intend to do, pins at an approximately 45 degree angle, but we will see how that works.

As the boards use standard header pins for all instances it is possible to integrate them into your own circuits, however where possible I would recommend integrating the RJ12/RJ45 part directly just to eliminate un-neccicary connections and components.

Anyway eithout futher adu;

RJ12

RJ12

RJ45

RJ45

Fritzing Files

RJ12Connector

RJ45Connector

SafeDuino – Part 04: Further Afield – A Complete Redesign?

After having not had much time to work on this project in the past few months, with a major half-million dollar project going on at one of my clients, which was/is the implantation of a new computer system of my own design that will be serving them for the next 20 years or more (well the physical infrastructure will be, the PC’s wireless, network, servers etc won’t they are replaced on a 3 year cycle, again on my insistence) and with one of the suppliers delivering critical components in excess of week late it has pushed back the final deployment for a couple of months as now I can only do core works on weekends and after hours, I have not had much time for this project.

What I have been doing/contemplating is two things however, firstly is whether I need an LCD screen/buttons interface, and I have decided that I do need one, this has become evident so that I can set up the system “in place” when it is finally deployed.

The other thing I want to do is be able to deploy some sensors and control circuits remotely, including some in hard to access places, well ones that once they are in they will not be easily accessible. To this end I have come up with the idea of using network cable for limited power (5VDC for system power) and command and control signals, and where required I will use Flat-Flex Cables’ (FFC’s)  to get into those tight spots that I cannot otherwise support sensors in. 

 What this leaves me with is a system that is essentially divided into three distinct parts, the main controller (the Freeduino EtherMega) the distribution node which is connected to the EtherMega via network cable, and the sensors and control points are connected to the distribution nodes via CAT3 (telephone) cabling or via FFC’s (which are limited to 18″) where required.

This now leaves me of working out how to select which pins go to which distribution point via the network cabling, this I am still trying to solve, however jumper wires are looking like the best option at this point

More Arduino Project Stuff

Just thought I would make a quick entry in a couple of spare minutes to state that I have decided to “split” the Arduino system, well rather the PCB’s as I was simply trying to do to much on one PCB so what I have done is split the power supply onto one board, and as I am splitting it I have taken the opportunity to add a second regulator to the design for 3.3volt along with its associated smoothing capacitors so I can integrate 3.3v electronics into the system in the future if I want, besides I can then intergrate the powerboard design into other projects making the extra PCB’s I will purchase usefull as most places have a minimum run of 4 or 5, which means that for the once of projects its not paticuarly useful, but if I design it right the first time I can use the board on other projects as well. On this board as well will be the two OPAMP’s and the linear optocoupler to allow for the monitoring of the power via a plug in lead to the board, meaning that in total there will be 2 leads to the board, the first one carrying power (12VDC, 5VDC, 3.3VDC and ground) and the second one being the voltage monitoring.

I will release the designs for it once I have built it and tested it

SafeDuino – Part 03: The goalposts change

Ok, I admit it… feature creep has officially set in on this project.

After doing the basic designs and working out I needed the EtherMega (from Freetronics) for the SafeDuino project, and consequently purchased some (I say some as I keep changing the design) of the components I decided that it was a “waste” of a mega to only use the small number of I/O’s I needed (but more than I could get from an ethernet connected UNO), and this is where the feature creep began.

So, now what I have is more of an environmental monitor not only for the cabinet it was to maintain originally, but also for the room/building it is housed in, this will allow me to do differential monitoring for parts of the building vs the areas I am going to monitor/control individually.

So far I have determined, that beyond the original cabinet it was going to monitor, the following are going to be monitored;

  • The building itself, this is to allow for differential comparisons and fluctuations in temperature and humidity to see if the things I am putting in place to control humidity are in fact working
  • Two other cabinets, including one humidor, just because I can 😀
    • Turn on/off humidification/dehumidification equipment and fans to allow for circulation in the closed environments based upon readings
  • Possibility of wine/beer fridges
  • External temperature/humidity
  • Solar Radiation (for estimating solar panel power generation)
  • Background radiation, this is more of another because I can thing, being able to monitor radiation (Alpha, Beta, Gamma) in the background of the environment long-term will be useful in the future just to see the changes over time, I will be connecting it to one of the sensor networks that have popped up after the Fukushima accident
  • Internal and External light sensors, again to see how it affects temperature/humidity in the closed environments/building
  • Same goes for door/window openings

I am sure there is more to come, in fact I know there is, I have 40 odd pins to fill up :D.

In addition to these added features, I have decided to add some protection to the arduino itself through the use of optocouplers/optoisolators to isolate the external electronics from the device itself, where possible anyway, this will also take some of the current loading of the arduino board. So far I have confirmed that the 4N25 optocouplers work, and I have tested those which I have purchased to ensure they operate correctly.

I am still to get a few linear optocouplers for use the with the voltage divider to allow me to monitor the voltage in the battery system.

Considering ultimately that the EtherMega will be powered via POE (supplied by the switch, so a proper 801.11af regulator, which is being done to ensure monitoring will continue even if the batteries for the lights etc fail) there will be no load on the batteries apart from a few mA for sensors and alike for the most part, but I will be configuring the reed switches for example to be Normally Open (NO) so that there is no power going through them when they are not activated (apart from what is used by the resistors to keep a proper ground) I should be able to maintain this for a long period with just the batteries, and with a solar charger, I should be able to maintain this use of the system indefinitely.

SafeDuino – Part 02: (Partial) Parts test

I have now got some of the equipment for my SafeDuino, as has been mentioned previously I have selected Freetronics for much of my kit for this, sure I could make most of it manually, but I do prefer it being on a circuit board to make it that bit easier to mount.

So far I have obtained the following from a local Jaycar store

  • Freetronics EtherMega
  • RGB LED, This may yet be changed, as something I would like to do would be easier if I just had the RGB LED itself without the board, well rather easier without the IC on it, the board is prefered however.
  • Humidity sensor, Freetronics board mounted, however it is a “common” DHT22
  • Reed Switch, this came from my stash of components, but was originally from Jaycar as well
  • 2000 Ohm and 8000 Ohm resistors to make a voltage divider
  • NDriver Transitor relay, this is to allow me to turn on/off the LED light strip

Good news is all parts have so far passed testing, now its just a matter of waiting for the rest of the items to arive, in the mean time however I will not be slacking I will be using a simulator  (Simulator for Arduino from Virtronics) and the components already at hand to start work on this project.

Whats worse is I have already decided on my next project, several (as we have several locations on the property that require it) water tank level sensors, based upon the Freetronics EtherTen, this one has been chosen for that project as I can use the Cisco POE switches I have at home to power it from the network, meaning no external power requirements

SafeDuino – Part 01: Down The Rabbit Hole

Arduino, an easily programmable microcontroller has been around the traps for several years now, but having been out of this “game” since high school I have not given it a second thought until recently when I have wanted to start doing a little home automation, or rather monitoring (for now at least) for my own purposes. Out of this has been born my first Arduino project, SafeDuino (cliché, sure but hey).

As the project name may have led you to believe, it is to keep things safe, but in this case I am not talking about physical security, I am talking about things that need to have temperature and humidity controlled, recorded and alerts sent when needed. Whilst there are commercial products that can do this, and probably by the end of it, will have been cheaper than building my own, the ability of the Arduino to do other things as well is where my interest lies.

Currently what I am planning on achieving with the setup is as follows;

  • Monitoring
    • Temperature
    • Humidity
    • Dewpoint (as its a calculation based on humidity and temperature
    • Magnetic Reed Switch (Door to the cabinet where it is house opening so I can track changes in humidity relative to the door opening)
    • 2 Buttons, used in conjunction with LCD Panel
  • Outputs
    • Turn on 12vdc LED Strip Lights upon the door opening (hey I might as well put the action of door opening to good use to use)
    • Turn on a 240VAC Dehumidifier (Ultimately)
  • Displays
    • RGB LED
    • RGB LCD panel

I am also determined to output the data to an web feed, either private or semi-public so I can log it and do long term analysis on the data., to this end I have determined to use the EtherMega from freetronics for the base Arduino board, as well as their humidity sensor, perhaps there RGB LED, their N Channel Transistor to drive the LED array, the reed switch is a Jaycar special, the LCD panel and a LCD shield will be coming from makershed.

Let the fun begin….