How to use NSSM to run a Python 3 application as a Windows Service in its own Python 3 virtual environment

If you want to run a Python 3 application as a Windows Service, then you are going to love NSSM. Since NSSM handles the life cycle of a Windows Service for our Python 3 application, we can keep it platform agnostic.

Previously, we saw how we can create a Python 3 virtual environment in Windows 10. Given that, let’s see how we can use NSSM to run a Python 3 application as a Windows Service in its own Python 3 virtual environment.

How to write a C# program to communicate with an ESP32 development board via Bluetooth Serial

Coupled with Bluetooth Serial and GPIO pins, ESP32 can augment a Windows machine with the ability to read from sensors.

So with an ESP32 development board, you can turn your old Windows machine into an IOT gateway that can sense its operating environment.

Given these points, let us look at how we can write a C# program to communicate with an ESP32 development board via Bluetooth Serial.

How to connect to an ESP32 development board via Bluetooth on your Mac

When you are trying to build a ESP32 project that uses Bluetooth to receive from or send data to another device on Mac, you may want to use your Mac to connect to your ESP32 board to test Bluetooth connectivity.

In this case, you will need to first connect your Mac with the ESP32 development board via Bluetooth.

So how can you do that?

In case you need it, this is how to connect to an ESP32 development board via Bluetooth on your Mac.

How to use C# to read sensor data from Arduino or ESPx via serial connection

When you have an old Windows machine, you can convert it into an IOT gateway.

So how can we read sensor data with our windows machine? Since our windows machine probably do not have GPIO pins, we can read sensor data via an intermediary device.

For example, we can first attach an Arduino Uno or ESP32 development board as the intermediary device to our windows machine via USB. Given that connection, the intermediary device will read the sensor data and send those values via serial. On our Windows machine, we can then run a program to read those values from serial.

So how can we read sensor data from Arduino or ESPx via serial connection on our Windows machine? Since C# is a programming language for creating windows application, we can use C# to read those data from serial.

How to create an API endpoint that generates a QR Code image, with Python 3 Flask-RESTPlus and python-qrcode

When you have an API endpoint that generates a QR Code image, another device with a QR Code scanner will be able to get the encoded value to perform some action. For example, WhatsApp web generates a QR Code image that encodes a code for WhatsApp app to sign in the user.

So how can you create an API endpoint that generates a QR Code image? With this in mind, let’s look at how we can do so with Python 3 Flask-RESTPlus and python-qrcode.

How to prepare a virtual environment to run a gpiozero based project on Raspbian Stretch

When you use a virtual environment to run your application, you isolate the dependencies in its own container.

In such a situation, you can ensure that your application can run alongside other applications with incompatible dependencies.

Therefore, I always favour the use of virtual environment for running my Python applications.

With this in mind, this is a story about preparing a virtual environment to run a gpiozero based project on Raspbian Stretch.