Monthly Archives: December 2015

New ESP Boards

Are these new? Reader Christian brought these to my attention this evening – price is ok – and if size is at a premium….

tmpD351Small footprint,  USB-to-TTL is on the underside. This is quite interesting when space is an issue. Supplier also has a DHT11 shield:

tmp8AAChttp://www.aliexpress.com/item/D1-mini-Mini-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266/32529101036.html

Next is a piggyback development board with an RGB LED, a photo resistor and three buttons:

http://www.aliexpress.com/item/ESP8266-serial-WIFI-Witty-cloud-Development-Board-ESP-12F-module-MINI-nodemcu/32566502491.html

Facebooktwittergoogle_pluspinterestlinkedin

DietPi

tmp8CB3Those of you who have been here for a while will recall my rants about the Orange Pi PC, a Rasperry Pi lookalike that costs around £12 if you get it from China (Aliexpress etc).

Indeed some of you have one of these and will no doubt have shared my horrors as I discovered that this neat piece of hardware which IS faster than the Raspberry Pi 2 (not the old B, the version 2).. but which ended up in a drawer as the software and support is ABSOLUTE RUBBISH.

Well, today my pal Jonathan got in touch to tell me about DietPi. I’m not going to say too much more but just give you the link.

The software is available for Raspberry Pi, Orange Pi PC and more.  

Before you go off… I suggest trying this out on a spare as I have yet to put this through rigorous testing -  I’ve not even fitted it up with Node-Red yet… but it’s the most satisfying start I’ve had so far with the Orange Pi – which may yet prove to be a winner.

Here’s the link. http://dietpi.com/

Check out the installation options, the backup options and more – I don’t know how good this is going to be but to be sure – it is POLISHED!

I should point out however that I’ve used this now with the Orange Pi Pc… and i can get no analog sound, no SerialPort for Node-Red – so it may be that there is more style than substance here – time will tell – I’ve put in a support call.

Facebooktwittergoogle_pluspinterestlinkedin

CodeLobster

tmpD047

The more I dig into Node-Red the more I end up coding my own routines – and the internal function has nice colour coding etc but eventually you start to get a little frustrated with the internal editor especially if you are used to using an IDE.

tmpA7E2It just so happens that some enterprising chap has come up with a function node that allows you to use functions held in separate documents! It is called FILE FUNCTION. And so it was that I went looking for an IDE that would ease programming of the Node.JS code and hopefully other stuff as well. Code Lobster describes itself as “PHP Edition” but has plug-ins for various other languages including something that is new to me – AngularJS. So off I went for the free edition – you’ll find that here.  http://www.codelobster.com/

I ended up with the pro edition but the differences are not as marked as you might think. I was impressed by the intelligent lookup – though when editing a .JS file a little bemused as to why SOME intellisense didn’t work – for example “msg.payload.” only offered “switch” whereas I was after .substring, however it was nice to be able to look at structures I’d created and have the facilities of a full IDE – something I miss a lot when editing in Node-Red editor itself (I’m not complaining – it’s free for heaven’s sake but one always wants more).

That of course is not what Codelobster is about … it’s a PHP editor and allows for full debugging and visual development. It did catch me out – when I wrote a simple one-liner PHP program and tried to “run” the program in the preview mode. That failed of course because at least by default, Codelobster assumes you have a working local webserver “http://localhost/whatever/php” which I don’t – but that will be rectified soon.

There is FTP support – which is just as well as I edit everything on my PC and then fire it off to the Raspberry Pi!

I could rant on for ages and no doubt will at some time – but for now if you are interested in playing with their free version (which needs a key but I understand that will soon disappear) it’s in the link above.

Facebooktwittergoogle_pluspinterestlinkedin

Even More Node Red Contrib UI

As I write this – several conversations are going on around node-red-contrib-ui – and in the process I’ve found issues with the security setup in Node-Red itself – which have been fixed. Since I started this – the designed of the UI has responded to requests for gauges and a form of LED  - so here is the current state of play.

Firstly let me show you my current Node-Red setup for the UI

tmp58EF

This will soon pale into insignificance as I add RGB lighting,  zone-dependent heating, security and other controls but not until I’m sure the web access is reasonably secure. Meanwhile, as you can see over on the top right there are a couple of experiments going on – but the main section is that attached to the 2-second injector.  I store my heating information in global variables in Node-Red so that any page can interact with them. I already have a decent NEXTION display for locally controlling the heating – but I’ve been struggling to get what I want in terms of a mobile interface.

At the end of the day today it is now possible to have password protection on both Node-Red editor – AND, separately on the UI itself – though for now, Microsoft’s EDGE seems to screw this up – but Chrome works perfectly.  The UI is not yet the prettiest or most polished – BLYNK for example looks a hell of a lot nicer – but this works. With Blynk you can’t even fire back at the buttons to predefine their state – here you can.

So the way I’ve implemented this – every 2 seconds (I could probably make it every second) I update the display. At this time there does not seem to be a way to tell if the UI is actually in use – perhaps the author might think about that – as it would save some processing not to update the UI when it is not in use though it is working just fine. Everything from temperature, through humidity, peak, off-peak, frost and hold as well as the time settings for my stat are sent to the display regularly and if any changes are made in the UI (up-down buttons pressed – that reflects in changes to the actual global variables.

No longer do we need cluged GAUGES as Andrei has kindly added them in. LEDs are engineered using the many ICONs available in the system. If you look at the HEAT and HEATING items above  - the orange function is as follows…

var stat=context.global.stat;
msg.topic="Heat";
msg.payload=stat.heating;
node.status({fill:"blue",shape:"dot",text:"Heat " + msg.payload});
return msg;

As you can see – I grab the global variable for heating (the first line brings “context.global.stat” into a local pointer to save my typing) and populates msg.topic with “Heat” and msg.payload with “1” or “0” – that is passed onto the PARAGRAPH node which contains…

<div layout="row" layout-align="space-between center">
    <p flex>{{msg.topic}}</p>
    <ng-md-icon icon="wb_irradescent" ng-style="{fill:msg.payload=='1' ?'red':'black'}" size="32"></ng-md-icon>
</div>

tmp9001So the text to the left will get “heat” – from the moustache input – and will use the internal icon “wb_irradescent” icon (no that’s not a spelling mistake – well, not mine anyway) and either present it in red or black depending on whether the heating is actually on or off.

The result is shown below.

tmpA9E5

The rest of the nodes are this simple or more so – mostly just used as intended.  I’ve asked that the spacing be considered – I think the lines are too far apart – and I’d love to see some theming options without having to delve into CSS… but remember – like my own Node-Red nodes – this stuff is free so we can do best to simply encourage Andrei to keep up the good work and develop this further – as it is, it is usable but for the security issue referred to above – and I’ve passed that question back to the Node-Red designers who likewise are making no charge for this and by the look of it working very hard to make the excellent Node-Red even better.

If terms like “msg.topic” etc mean little to you – go check out NODE-RED on Google. I’m using this on a Raspberry Pi 2, controlling little ESP-8266 units by MQTT (check out MOSQUITTO). Also see BLYNK, NETIO and other visual interfaces I’ve referred to in other items in this blog. Most are in active development, who knows which ones will win.

Facebooktwittergoogle_pluspinterestlinkedin

More Node Red UI

Updated 01/11/2016: Node-Red-UI is of course now Node Red Dashboard - you might want to check out the updates

Andrei has now added the gauges below natively to node-red-contrib-ui so my code below is of use only if you want to add something different – though the LEDs are still useful until he adds something to the package to do pretty lights.

In my last blog I touched the surface of Node-Red-Contrib-UI  - an add-in for the increasingly popular Node-Red – in my case running on a simple Raspberry Pi (but of course you can run it on a PC etc).

node-red-contrib-uiThe UI software comes in at a time when several vendors and enthusiasts alike are scrambling to come up with a mobile interface for IOT – the Internet of Things. Every last one of them has benefits and issues. NETIO is a venerable interface which is currently languishing or so it seems with no new features of any significance for some time. It does, however have some nice widgets.

jQuery Mobile presents some options – and that is fairly easy to implement though much more DIY than others. Blynk is coming along and offers a VERY pleasant interface – but it is UTTERLY non-user-expandable and I’m not 100% sure I believe that it will continue to develop at the current page forever – until now it was my current “best hope” and possibly still is – but I cannot yet get 100% reliability using it with Node-Red – and some widgets I think are relevant are on the back boiler for the designers. Who can tell which will succeed.

And then one of our readers had me take another look at node-red-contrib-ui – I won’t go into that as it is in the last blog entry (I suggest you read that first).

Something that caught my eye was a node called “paragraph” which would let you put in html – and which would accept parameters. It has all the makings of a useable “block” to make your own widgets and that is how I like it – the designer was MORE than helpful when I came up with newbie (dumb) questions and that for me builds a little loyalty.

So – the PARAGRAPH node basically opens up and lets you put in your own code with limitations which will hopefully go away. In the last blog I showed how to put a LED indicator and description into a node – and also discussed pulling in information from a web page with parameters.

And this is where jUSTGAGE comes in. www.justgage.com

Go to their website and you will see a beautiful gauge – and a deceptively simple web page (which I will call gauge.html) to display it.

Clearly having the code on your own computer is best so I grabbed the ZIP file and put the contents in a directory called justgage under the main UI folder (see last blog). I took their example and put it into a web page in the main ui (/dist) directory. I ran it and… nothing.  The version numbers for includes were wrong – and indeed just different so watch out for that – this is what i finally ended up with…

<script src="justgage/raphael-2.1.4.min.js"></script>
<script src="justgage/justgage-1.1.0.min.js"></script>
<div id="gauge" class="200x160px"></div>
<script>
var g = new JustGage({
id: "gauge",
value: 67,
min: 0,
max: 100,
title: "Visitors"
});
</script>

And that’s all well and good – if you like a fixed gauge that doesn’t do anything  Smile

The next stage was to add in the code which would let me modify parameters… but first what doe this look like when you put it into a PARAGRAPH NODE. This isn’t as complicated as it looks – I needed to pass the title for the gauge, the min and max values and the actual value.

Here’s the code for the “gauge” node below (in a paragraph node)…

<iframe frameborder=0 scrolling="no" height="200px" ng-src="{{'gauge.html?min=0&max=40&title=Inside Temperature&val=' + msg.payload}}"></iframe>

The paragraph editor puts a red cross on this – but trust me it works – and if anyone knows how to get rid of the editor objection, let me know.

Of course the web page code now needs to be able to handle those parameters (in this case “val”, “min” etc)

Here is a modified version of the above code in the page “gauge.html” to handle parameters.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script src="justgage/raphael-2.1.4.min.js"></script>
<script src="justgage/justgage-1.1.0.min.js"></script>
<div id="gauge"></div>
<script>
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');

if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
};

var g = new JustGage({
id: "gauge",
value: getUrlParameter('val'),
min: getUrlParameter('min'),
max: getUrlParameter('max'),
title: getUrlParameter('title')
});
</script>

tmpE1C8You could go chose to use a local copy of jQuery – I chose to use an online version (after all if the Internet connection isn’t working – you’re not going to be able to access this anyway!)

And it works – the sky is the limit – BUT the iframe is not ideal – the gauge refreshes completely every time you put a NEW (changed) value in – NOT satisfying – if nothing else however I may have given others some ideas – who can come back to me with a “much better way”.

In the case of a gauge we really need this built into node-red-contrib-ui along with input value, title and colour values along with min (which should optionally be minus) and max.

Scargill test node-red-contrib-ui moduleI did ask if any of you CSS types know where to look to slightly reduce the gaps between items. If you look at the display below – there’s a lot of wasted space.. I believe this has now been fixed by Andrei – the author of nod-red-contrib-ui

I’m showing here on the left my first attempt at actually doing something useful with this – thankfully on my thermostat system I keep all live information in a global object so it is easy to access on any page.  The panel on the left is actually working – adjusting the temperature up and down reflects in my Nextion LCD panel as well – so already this is a usable App.

This is VERY much a work in progress but to get the imagery you see on the left and an additional graph – I’m showing my flow page for node-red-config-ui as it stands.

 

 

Peter Scargill experimenting with Node-Red-Contrib-UI

Facebooktwittergoogle_pluspinterestlinkedin

Node Red UI

tmp924AIn my last blog item, I wrote about the IOT-Manager App for Android – much to the annoyance of a pal of mine who uses Apple (snigger). Among the replies was the questions “have use you used “node-red-contrib-ui”?

This was something I looked at when it first came out and dismissed due to lack of function. Well that has changed a lot and this is now well worth a look.

tmp44C4So this add-on for Node-Red – which I am running on a Raspberry Pi right now (waiting for my ROCK to arrive) shows some promise right now and potentially a LOT of promise.  So what you get is a number of nodes to make up a GUI and you access this on your PC by simply adding /ui to the normal Node-Red admin address (I’m not seeing any signs of password protection and that could be a problem)  – it really is that easy.

So the nodes you get are good – there is a graphing function, there are buttons, text,little up-down buttons of the type I’ve been begging for in BLYNK, sliders… this really has promise and importantly the nodes have inputs and outputs so you can force the values of the various controls.

However, apart from graphs, where this package appears to have limits are in two areas – the first is not a deal-breaker – styling – it’s all a little plain – but that’s ok, we can live with that. The second or so it seemed at first – is lack of gadgets.. i.e. gauges, LEDs etc.

But just hold on – there is a node called paragraph. On the surface you can inject a msg.payload into it and surround it by HTML. And that’s fine – not sure how you might use “includes” in there which would be a game-changer – but in the INFO it says “The Template can contain any valid html and angular/angular-material directives. You can use this node to create a dynamic user interface element that changes it's appearance based on the input message.”

I don’t know about you but my heart skipped a beat at this point –

tmp533AI looked up Angular and at first went off on a tangent with this – ok – so how is Google supposed to know I wasn’t after “angular gauge” – as it happens – I was.

http://www.amcharts.com/demos/angular-gauge/

I eagerly loaded in the includes into the node window– and the script and the html and… nothing… zilch.

So clearly – it’s not QUITE that simple.

I know nothing about Angular so I went off in search of more info. I could find nothing about the actual node itself – indeed there is not much out there at all about node-red-contrib-ui.

tmp163DThere is of course also HICHARTS which has some of the most wonderful charting on the planet and a GUAGE

http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/gauge-speedometer/

But how would you get that into this “Paragraph” node…..

LEDS are easy – using the “moustache” mode it would be trivial to grab some LED images and indeed I’ll have that done by tonight.. but the gauges… must have gauges.

As I write this I’m talking to Andrei and already have programmable images – and I’m almost there with a simple gauge… more soon… watch this space.

So in my setup on the Pi, there is a directory /root/.node-red/node_modules/node-red-contrib-ui/dist

In that directory is the index.html file which makes the UI. You can refer to other files in that directory or those below it – so I created an “icons” directory with some images – and put this code in the “paragraph” node.

<div layout="row" layout-align="space-between">
    <p>{{msg.topic}}</p>
    <p >
       <img height="32px" ng-src="{{(msg.payload||1)==1 ? 'icons/light1.png' : 'icons/light0.png'}}">

    </p>
</div>

tmpB5F9I fired topic:”the topic” and payload:1 and lo… as you can see on the right my little red image came up – had I put 0 in the payload – a green icon would have appeared. I need to work on the styling so the image comes in line with the text but that is just MARVELOUS.

The gauge is coming somewhat more slowly… I now know that in that same directory you can put an html page with whatever it needs to return a gauge (jQuery etc) and you can pass a parameter. Here is an example – I won’t show you the actual page as it’s a mess and needs a rethink but the mechanism seems sound..

<iframe frameborder=0 scrolling=”no” ng-src=”{{‘test.html?val=’ + msg.payload}}”></iframe>

In the actual page you need to be able to get the command line argument and push it into your graph code… when I get something that looks nice and works efficiently I’ll put something in here – I’m sure Andrei is working on doing this PROPERLY but as a short term measure this will work and of course there are possibilities other than gauges. I should stress I have this kind of working – I’ve ONLY tested this on my PC and Samsung S4 and it works on those.

This could open up a lot of doors…  

Andrei – more inputs please – keep em coming – you’re doing a marvelous job and thanks for answering my silly questions.

Facebooktwittergoogle_pluspinterestlinkedin

Smoke Alarm by Email

Reader Christian brought this to my attention.. (http://www.simpleiothings.com/10-diy-wifi-smoke-alarm-notifier-roost-nest-alternative-full-tutorial/)

tmp5C16The guy uses a NodeMCU, a USB wall power supply and audio sensor (microphone) to catch the audible alarm and start a WiFi alert via IFTTT. The smoke alarm unit stays unaltered and you never have to think about running out of power during broadcasting. It may even work with multiple smoke detectors in different rooms. It sounds dirt easy to set up. This looks like a perfect simple solution when you’re not at home. Ok so any ESP board would do – the NodeMcu is just a simple option – and of course given the price at the likes of Banggood not a bad one.

At the cottage here which is rented out in summer when we’re off to the sun, we do of course have fire alarms – and BOY are they loud – but if there is no-one in…. yup – a good idea. It just so happens I have one of those £2 audio sensing boards and as soon as I finish writing this blog I’m adding it to the living room temperature sensor! Of course all I really need to do is pick up that loud noise and get it into Node-Red which can then send me an email! The beauty of this is – no messing with the existing alarms.

Facebooktwittergoogle_pluspinterestlinkedin

Enter the Photon

The details

tmpF540Particle.IO have been trying to send me a Photon for as long as I can remember. This all started in the summer when I was in Spain. I was expecting the device to arrive and the Spanish postal authorities got hold of it. I don’t know if they thought it was a top secret time travel device but they sent me a form requesting proof of purchase, proof I was a company and other paperwork. So I told them that this was a sample with no value, I’m not a company and I had no paperwork I didn’t have the goods and I’d not placed an order). The unit had travelled all over the world and was now sitting in Madrid while someone made themselves important. Despite various attempts in English and Spanish by myself and others, they simply were not releasing this until they had my sock length and proof of existence. By the end I’m betting Particle.IO had wished they’d not bothered.

tmp5722However, here I am back in the UK for now and shortly after I arrived, a second unit arrived.. followed promptly by the one which was supposed to go to Spain. You have to wonder… 

Checking their website these come in at about $19 (which not doubt ends up as £19 in rip-off Britain – I’ve not checked). As always you can zoom in on these images. So opening the rather neat and tiny box, you find inside, the Photon. It has a micro-USB connector as well as reset and setup buttons.

The Difference

So, what differentiates this from say, something like an ESP-12 or similar boards? So this is a small WIFI-enabled controller, programmed in something that looks suspiciously like the Arduino language – this is course is deliberate to give it that familiar look and feel. But looks can be deceiving – this is a powerful ARM Cortex M3 processor with a Broadcom WIFI chip complete with on-board v3v3 power supply – oh and the design is open-source.

Pins include D0-D7, A0-A5, ADC, DAC and serial I/O an the unit supports battery operation. You get 1 MB Flash and 128KB RAM. There’s an RGB status LED (nice touch) and FreeRTOS is pre-installed. There is a softAP setup mode and the unit is FCC,CE and IC certified. There is an internal ceramic aerial and a connector for an external aerial. You also have SPI,I2C,I2S (whatever that is), CAN, USB and PWM.

 

tmp311C

There’s a VIN pin or you can supply power (3.6v – 5.5v) or via the USB Micro B connector. Power supply should be able to source 1A of current to be safe.

Here’s a neat thing – in one mode the unit can constantly switch between internal and external aerial to see which is the best signal – I like that. All the pins except A3and DAC are 5v tolerant – which is nice.

I’m not going to go through the fine detail as it is all on their website. https://docs.particle.io/datasheets/photon-datasheet/

Programming

I remember the hassle I had trying to get to know the ESP8266 at first. Chinese only documentation, then Chinglish documentation, a lot of vagueness (all solved now of course) – but here we have EXCELLENT documentation at least from the perspective of someone coming in from the cold.

When it comes to actually programming this device…. the WEB IDE is really very good.  Being me the very first thing I did when opening the pack was to plug the board into USB – and it started up with one blue constant light and a blue flashing light – a good indication that something is actually working.

With no previous experience I went off to the web IDE here. https://build.particle.io/signup

I provided my email and password and within seconds I had an IDE in my CHROME browser with an empty program looking remarkably like Arduino.

tmpD652

I noted an example to blink a LED and clicked on that. Like Arduino it created a personal copy of this for me to play with – I have to say – neat – but at this point I was wondering – how on earth is it going to know where my board is!! Sure enough when  I came to the button to FLASH the chip it came up with “ADD NEW DEVICE”.

The WIFI setup

I noted a reference to Android and a light went on – it probably has an ACCESS point. I grabbed my mobile and sure enough – I could see PHOTON_CQGE. I hate reading manuals and so dived straight in.

I went on the phone for any old web page thinking that a login page might appear but no – a normal web page popped up – somehow the phone knew I was being an idiot and transferred me back to my home WIFI.

The instructions in the IDE said to go get the PARTICLE APP on my phone – so I did and logged in using the same account password I’d used on the PC – it said “let’s get started” and the next thing I knew it was connected to the Particle and asking for my WIFI details.

I have to say the APP was VERY slick. It warned me the setup might take a minute. Well, it didn’t work so I tried again. That didn’t work.

The USB setup

I did remember reading something about USB – I was plugged into my PC and I started to wonder if the board was getting enough power. I plugged it into a USB hub instead. No difference. At the third attempt the APP crashed on my Samsung S4. I rebooted the Samsung and tried again. No joy. The very slick App was dead.

The website said not to worry and here was another way! For attempt 2 I plugged the Photon back into the PC (and thinks were going SO well).  I already had NODEJS on my Windows PC so I downloaded the device driver and installed it – doddle – worked first time.

I then opened up a command line window in Windows 10 and followed the instructions.

npm install -g particle-cli

That worked (I’m familiar with that command thanks to Node-Red and the PI – it’s a NODE installer. I’d say all of that took maybe a minute with no errors.

I typed “particle setup” at the command prompt.

No problem – login – it didn’t help that they used colours and I’d set the command line to have a white background – but that’s my fault.  Immediately the software knew I had a Particle.

The software asked me for the WIFI setup and I put that in – but no matter what I did… the Particle would not connect. My PC is hardwired so the software asked me if I wanted to enter details manually for the WIF – I did -  “Obtaining device information..” I could not get past this. I tried the second unit – identical issue.

The page here… https://docs.particle.io/guide/getting-started/connect/core/

says “If your device is not connecting – try troubleshooting here..

I was using channel 1 (the device does not support channels above 11 which seems odd.

I had a standard network with WPA2 security….

No matter what.. the device would not connect to my router.

Inspiration

I went back to WIFI setup on a hunch. I wondered if perhaps my phone was being rather too keen to switch back away from the Photon WIFI during setup or perhaps there was an issue with it.

I went back to the Android setup and just before entering the WIFI access point and password I checked which network my phone was using. Voila – it had switched back to my own network. I switched it back to the Photon’s own access point and quickly swapped apps to run the setup. It worked flawlessly. I now had a Photo device online.

Back to the PC

With the phone turned off and armed with a Photon minding it’s own business with power only going to it and a name which SHOULD now be available – I went back to my PC setup.  I assumed that if the APP could see the device when logged in – so could the PC web application. I adjusted the simple BLINK program to flash 5 times a second and hit the lightning indicator to FLASH the board.

As if by magic the board started flashing purple to program (the RGB LED is a REALLY good idea) and seconds later D7 was merrily flashing away at 5 times a second. GOOD START.

There is a “publish and subscribe” system which looks remarkably like MQTT – if this worked then I was thinking they might get some business out of me as I use MQTT extensively with my little ESP boards – but I suspect not at least I could not find anything to suggest that it was a configurable MQTT setup. For these to be useful to me, my Node-Red setup must be able to control the boards.

tmp9296WELL – don’t you know, there’s a node-red-contrib-particle node!!! So being the impatient type I went off and installed the relevant node in Node-Red. A set of 3 nodes appeared.

I flashed the example function “Web connected LED” which created a function called LED which toggles a LED on and off (the little blue one attached by default to D7), No problem.

Playing by ear, I dropped the Particle Function node onto my work area in Node-Red (running on a Pi)

The IDE gave me my ACCESS token and the address of their server… all very easy..

Apparently there are some limitations if you use your own server – and I think that needs resolving as I do NOT want to be relying on someone else’s server for my winter heating (or door locking for that matter)… the IDE also gave me the ID number of my device.  I took a guess – the function name – LED seems reasonable.

I stuck an INJECT node into the Particle function node- and pressed the button on the Inject node and … nothing – not a sausage. Then I realised that they didn’t really mean TOGGLE – you had to pass a parameter ON or OFF.

tmp867C

I pressed the buttons – nothing. Then I noticed that the access key I’d picked in the IDE was timed out – why would that be? Well, so I pressed for another access key and punched that into Node-RED. SUCCESS!! Node-Red and hence any of my gadgets can now control the Photon. But MQTT would be good…

A Node-Red trivial MQTT to Photon function is of course simple to implement – and so we have a NEW TOOL to add to my home control box. Ok, so an ESP-12 can control a LED – I will investigate further and see just what this device can do that perhaps might not be quite so simple on an ESP-12. I guess at this point it is all down to available examples and code. This will take more than a few minutes – possibly a job for the holidays.

Library Relevations

In the IDE there is a link to “libraries” which opens up a very comprehensive list of libraries indeed including Neopixel, Onewire, Dallas, OH…. OH… and MQTT!!!

It took me all of 5 minutes to take the example MQTT program, give it my own access details and have MQTT-SPY turning this thing on and off. MARVELOUS.

Roundup

Of course this is just a surface review. Questions to be asked? What happens if the access point goes down and comes back up? What if the access point isn’t on when the unit powers up – and appears 5 minutes later? Does the Photon recover every time? I learned the hard way that all of these things need to be tested when developing my ESP8266 code (which is bomb-proof). Watch out for more information when I take this little device a stage further.

The showstopper – UK

At this point with a couple of little niggles above… I’m impressed. Very nice.  But…

MY only gripe –  prices for this device in the UK – Farnell want £19.99 and on Ebay I’ve seen £24 –  At that price I’d say the device is too expensive.  At the Particle.IO store, the device is $19 all in – but wait for it – including shipping to the UK $40.20 -  so more for shipping than the cost of the unit itself – all in comes to £26 – that is just too much. A Node-MCU board which uses the ESP8266 – though not quite as easy as this to set up comes in at £9.92 including postage. Now, depending on what you need, price may not be an issue. There is no doubt the IDE and tools therein are good and so for beginners this is a great tool but if you’re going to fill the home or office with all sorts of control gadgets, at these prices it gets expensive.

 

 

 

 

 

 

 

 

Facebooktwittergoogle_pluspinterestlinkedin

EMONCMS

Just a little sidetrack while I wait for some stuff to arrive in the post to test my Pi Zero…. I’m using BLYNK (with issues) for controlling my heating – but as you may know, switching between 2 installations of Blynk is a pain involving logging out and back in. So this morning I thought I’d take a look at EMONCMS purely from a monitoring perspective.  It’s all free – you simply get an account – and in my case grab the EMONCMS NODE for Node-Red and start firing data at it.

So, this morning I know nothing – here’s my current dashboard.

tmpF3EF

As you can see monitoring 3 separate locations (my litttle ESP-12 boards – incidentally the Hollyberry one is now running on Espressif SDK 1.5 no problem) – and on the bottom right is a nice voltmeter checking my Pergola battery voltage.

Essentially given the address of the EMONCMS server (which can be theirs or you can have your own on a Raspberry Pi) and an API key, you just fire things like “is_temp:18” at the server and the values end up in a FEED which you then attach to one of the widgets – all very simple once you get into it.

Now – does anyone know of better/more flexible free IOT dashboards…

Facebooktwittergoogle_pluspinterestlinkedin

Wio Link

tmp4550You may recall I did a write-up on some neat little easy to use ESP8266 modules a while ago:

  • Visual Configuration
  • OTA (Over-The-Air) Firmware Updates
  • Plug and Play Groves
  • IFTTT Application
  • Android & iOS APPs
  • RESTful APIs

Lots of units that simply plug together. Well they’ve just been in touch to say they’ve changed the name and are on Kickstarter. They sent me a set of plug-in modules and while this will never be the cheapest option it is awfully handy if you’re not a dab hand with a soldering iron.  Here’s the link.

https://www.kickstarter.com/projects/seeed/wio-link-3-steps-5-minutes-build-your-iot-applicat

Oh, yes, it stands for “Wireless input and output to link everything” -  well, there you are.

Facebooktwittergoogle_pluspinterestlinkedin

Pi Zero Suicide

Ok, maybe it’s not THAT bad. I hooked up my Pi Zero to a Wi-Pi controller by taking the WIPI out of it’s shell and hardwiring power to the end power connector – and signals to the second usb connector as here.

http://hackaday.com/2015/11/28/first-raspberry-pi-zero-hack-piggy-back-wifi/

I then grabbed Berryboot (original, not the Pi2 version) and altered the files as here. http://www.berryterminal.com/doku.php/berryboot/headless_installation 

I made sure that the files were in Linux format (I used Notepad++ which can save in the right format). Popped in the MicroSD…. plugged in USB power to the end connector and… nothing – not even a flashing light.

That’s it. Not a clue what I did wrong and guess what – I only managed to get ONE Pi Zero!

So here’s an update. With the Berryboot code for the original Pi, nothing happens. With the Berryboot code for the Pi2, the little green light comes on – so it is reading the SD… but nothing else happens. As yet I’m not seeing anyone else having managed to get the Pi Zero working with Berryboot.

Facebooktwittergoogle_pluspinterestlinkedin

Espressif ESP8266 New SDK Update

You may be aware that ESPRESSIF have released a new update to their SDK which now stands at version 1.5

I’ll be interested to hear what experience other folks have of this..  On compiling my normal home control code which has worked without modification since version 1.0 I got this..

LD build/app.out
c:/Espressif/ESP8266_SDK/lib\libwpa.a(wpa_auth.o): In function `wpa_receive':
(.irom0.text+0x9a0): undefined reference to `aes_wrap'
c:/Espressif/ESP8266_SDK/lib\libwpa.a(wpa_auth.o): In function `__wpa_send_eapol':
(.irom0.text+0xd73): undefined reference to `aes_wrap'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe: *** [build/app.out] Error 1

and in the update info from Espressif they say ….

User application needs to add "-lcrypto" in 'LINKFLAGS_eagle.app.v6" area of Makefile.

Well I don’t have one of those in my Make file.

Not a good start, what? But there is a simple solution (not quite what it said on the Espressif forum)  - see the comments!

Facebooktwittergoogle_pluspinterestlinkedin