How to create an office or studio status indicator and doorbell with NodeMCU Part #1
This is a fun project, if you ever wanted to show your status outside your office or studio door, with a button where someone could notify you and you could let them in with a button press, then this is the tutorial for you. Your total parts cost is going to be less than $40 and you may already have the parts you need if you have some electronics stuff lying around. I am going to be using Mongoose OS for development framework and cli.
I am also going to be using the KeeYees development board you can buy from Amazon for 3 for $20.99 or 1 for $10.99 I bought the three since you can make a receiver device and button to notify it from this status indicator. But that will be in the next tutorial.
In the end we are going to setup an aws lambda function where we can send a request to aws iot, and update the shadow of our development board so we can change the led. Simply you could have the led change based a zapier or any post request, we'll setup from a simple website a button turning on the led.
Let's get started ;)
Let's list out the parts we need first
- KeeYees development board linked before
- Solderless breadboard this one will work fine
- Breadboard jumper cables these will work good
- LED for status indication these will be fine
- Micro usb cable this is good
- 1 x 20 ohmΩ | 2 x 100 ohmΩ this resistor pack will work fine
*Note the resistor value varies for the led, I used the LED'S in the link, and colour matters too.
Once you have the following in front of you you can get started
Here's a image of my parts
All the needed parts

Here is the video walk through if you get stuck
Next plugin the Board into the breadboard and connect via usb to your computer

Your light on your board may flash when it starts, but will probably not remain on and if it does it doesn't matter we are going to flash our code on it anyways overwriting any current code.
In order to do that we are going to install Mongoose OS, in order to communicate with our board and write a JavaScript program that can run the board and trigger the LED via a post request, so you could set your status from a Zapier webhook if you like.
Step #1 install Mongoose OS mos cli
Visit the Mongoose OS quickstart setup for your operating system I will be following the Ubuntu Linux, but after the setup everything will be the same. Here are the commands I needed to run in my terminal
sudo add-apt-repository ppa:mongoose-os/mos
sudo apt-get update
sudo apt-get install mos
mos
Once you run mos
it will open up your browser with a serial console to view what's happening on the board and a command console where you see your commands execute on your computer on the left hand side. Below is what you should see and you should choose the port your board is on and select ESP8266 in the board drop down
Selecting USB port and Board

Step #2 clone the demo-js app to run on your board
In the bottom of the Mongoose OS window you can enter commands, enter the following code you can change the app1
to name it whatever you like, you will notice once it's done it will automatically change you to that directory and you will run mos build
to prepare the code for flashing
mos clone https://github.com/mongoose-os-apps/demo-js app1
mos build
You can see in the images below cloning and building
Clone the demo-js repo

Now you can name the app1
anything you like in the video I called it wispy-series-1
, but you can call it status-indicator
, anything descriptive is helpful
Build the code to prepare for flash

mos build & mos flash
Next up we want to build and flash the device with the following command inside of mongoose os. Once the device is flashed you should be getting results in your serial console to the right. Such as online false, ram, so on...
mos build
mos flash
Next we are going to be hooking up our red led, you will notice on the red led that it has a longer end, generally that is the positive end. We will be hooking that end up to 3v3, we are going to be having a 100ohm resistor between that.
So there will be a resistor between the positive on the breadboard to the positive on the led. And a jumper cable from the positive on the breadboard to the 3v3
Then a jumper cable from the pin d5 to the other end of the led. If you want to check the led is working you can first connect to pin d4 and see if it lights up. Now move it to d5.
Pin d5(GPIO14) red led setup

Next we want to modify our code
In order to modify our code you can open up mos and hit the folder button in the bottom left corner, or run code . if you are using vscode. Once you are in your code root directory navigate to fs/init.js
We will be modifying the following code to write to led, the ellipses represent the rest of the code top and bottom.
We want to set_mode
of the output to 14 with is pin d5 and we can write to it with 14,0
//...
GPIO.set_mode(led, GPIO.MODE_OUTPUT);
GPIO.set_mode(14, GPIO.MODE_OUTPUT);
GPIO.write(14,0);
setLED(state.on);
//...
Next we want to build and flash the device, once it's flashed our red led should turn on. We do this inside of mongoose os
mos build
mos flash
red led on, move on to part 2

Part 2 view here