Creating an RFID reader that works in the real environment and not only on my shelf was the very refreshing experience. The whole process went rather smoothly. But life is a life and a few issues occurred. I grouped them in this post.
I mentioned a magical switch to enable configuration mode. In this post, we will write a configuration module for RFID node. Why not for boilerplate?
Because first, we will analyse the problem and create a tailored solution. After gaining some experience we will rewrite module and create a universal configurator.
What is to configure? An AP credentials and an URL for a server.
There are a hardware and a software but this is not all, there is also a case that holds all together 😀 and makes project look good 🙂
The Client wants a nice looking case and this is easy to understand. So new area for me, how to make nice holes for connectors, LEDs, switches and so, last time (with NodeONE) it wasn’t all good.
But today there is no room for failure! Let’s get to work!
I’m on a project that requires some feedback after the operation is made. I cannot use an LCD because they are only two pins left and almost no memory. So my mind focused on two LEDs but after a while, I made a choice, I will use tricolour LED.
From what I read there are two types, one with a common anode and one with common cathode. We will go with common anode.
Module added to boilerplate
Time is almost over but we have so much more work to do! Of course, we won’t stop our work but let’s summarise was has been done during competition.
The main goal was to build a control node that can gather and display information from different sources/sensors. This node is the Doton project.
Today we combine the power of HLK-PM01, PIR HC SR-501, DHT11 and a light detector.
Together they create a nice looking multipurpose Node One. I wanted to do it for some time but the last piece was missing. I didn’t have an idea how to create a box for components.
Few days ago I found a perfect case named Z27. It has all I wanted, socket, plug and enough space for NodeMCU v3.
Python code @ GitHub
LUA code @ GitHub
Our little devices require a power. Mostly 5V DC. How to deliver it? The power grid is 230V so it is too much 🙂 and additionally, it is AC.
What can we do?
We can use a phone charger. It is easily affordable and does its job. But it looks bad and often we have power so close that it is a waste to use something with a long cord. We want to have a nice, small and compact device. What can we do?
A long time ago we created a NodeMCU Node with two channel relay. It was working but it’s code bases on old boilerplate. I recently bought an SSR (solid state relay) so let’s take this opportunity and upgrade our node to the newest boilerplate and write a handler for relays.
We have a nice NodeMCU server for LCDs. But there is one catch. We can control one LCD or all connected LCDs. But imagine that we have two LCDs and we want to display different content on each.
In message we can set node name but not device connected to it. So there is case with 1+ screens or broader with many devices connected to one Node.
Another problem: we start LCD server and we want lets say start a server with temperature sensor. We cannot. Lcd would take port and that is all. To do something with this we will introduce event handlers and listers. Big and useful change.
Each module would have an event handler, a function that gets message and do something with it. Returns true when it can handle this event and false when not.
I mention temperature sensor, currently we have none so first lets create one.
Last part was strange, we wrote a direct driver that has no real usage. We done it only because we kept compatibility. This time we will do something more useful, WiFi content driver. We will try and do in such way that only content is send. This is more friendly for network and sanity 😛