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.
In parameters.lua we may set only one access point and a password. But lately, I’m testing my devices in different areas, different APs. Changing passwords all the time is stupid so we need to improve this.
We will allow the table of credentials and boilerplate will iterate over them to get the connection.
Not so long ago I ordered a sound detector based on LM393. Today I thought that maybe it is time to use it. How? Maybe we can do a light-clap module.
With each clap relay will change its state. It is not complicated and may be a good fun 🙂 Naturally, we will use NodeMCU and LUA.
We have a nice node that detects light, it works in toilet @ my work 🙂 It does it jobs almost perfectly. There is still a hack for it – leave a light on when leaving the toilet. I have an idea to fix this but first, let’s reforge a lousy code into a module and a handler. After refactor we may safely add it to the NodeMCU boilerplate.
This is going to be our second data node for display. It will show area lightness and with conjunction with a time, we can tell if an artificial light is on or off.
NodeMCU boilerplate @ GitHub
We have LCDs and we should have a data that can be displayed on them, we need data sources. So in parallel with displaying, let’s work on some sensor nodes.
First will be a motion detector, we gonna use a module with easy to remember name: PIR HC-SR501 🙂.
There are a few variants of it. But the main difference is an ability to use jumpers to change mode. My version can’t do that 😦
As a brain for sensor we will use the NodeMCUv3 board and as a language the LUA.
Module added to NodeMCU boilerplate @ GitHub
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.
Due to memory problem I looked once again at the code and.. I found that I’m not using classes properly.
Why? Because every function and attribute were static. I didn’t use self or anything similar.
I scratched my head, looked into google and rewritten temperature sensor.
It can create class instances with self values and static functions.