Comparing the 0.67x wide angle lens and the Fisheye lens on a Raspberry Pi CCTV

Raspberry Pi Zero W with magnetic adapter ring 0.67x wide angle lens and fisheye lens on wooden floor

Recently, I found a pack of Camera Lens Kit for mobile phones. Inside that pack, there is one 0.67x wide angle lens and one Fisheye lens.

Given that, I had created the following posts to show how you can put them onto your Raspberry Pi Zero W CCTV:

In case you want to see the effect of those lens before getting a pack to turn your Raspberry Pi Zero W CCTV or Raspberry Pi 3 CCTV into wide angle security cameras, read this post to compare the effects of 0.67x wide angle lens and Fisheye on a Raspberry Pi CCTV.

How to turn your Raspberry Pi Zero W CCTV into a wide angle security camera

When Raspberry Pi Zero W appeared in the market, I immediately got one and setup a Raspberry Pi Zero W security camera with motionEyeOS. In addition to taking half the size of a credit card, a Raspberry Pi Zero W comes with Wi-Fi inbuilt. Therefore, it is ideal for building a security camera that connects to your Wi-Fi network.

Previously, I wrote about how to make your Raspberry Pi Zero W camera see an ultra-wide view through a Fisheye lens.

Since the pack of Camera Lens Kits for mobile phones includes a 0.67x wide angle lens, I decided to use it to turn my other Raspberry Pi Zero W CCTV into a wide angle security camera.

If you need a reference, read this to find out how you can turn your Raspberry Pi Zero W CCTV into a wide angle security camera.

How to configure motionEye to only capture video if there are movements in particular sections of the surveillance area

Undeniably, Calin Crisan had created one of the best way for us to build a Raspberry Pi security camera. In addition to the ease of setup via motionEyeOS, the motionEye web-based frontend is also easy to use.

Since a Raspberry Pi security camera is used for surveillance, we will want it to record videos of things that happened when we were not looking.

However, recording footages of the surveillance area when there were no motion being detected is wasteful. Moreover, it is hard to get to the video recording of a stranger moving your flower pot when there are too many redundant video clips in your Raspberry Pi security camera.

Even if we switched on motion detection for the entire video frame, there could be motion detected outside of the area of interest. For example, we may be interested in birds resting on our plant rather than birds flying in the sky.

So how do we configure motionEye to only capture video if there are movements in a particular section of the surveillance area?

This post will show you how to do so.

How to use Python 3 Pillow on Raspbian Stretch Lite to compress your jpeg image

When you are building a Raspberry Pi camera project, you may want to compress the images captured from the camera to reduce the time to upload your image to a server endpoint. Moreover, when you connect your Raspberry Pi to your iPhone Personal WiFi hotspot, you will want to incur minimal mobile bandwidth charges from demonstrating your Raspberry Pi project in your class.

You may have either:

In this case, you will have the option to use Pillow, a fork of Python Imaging Library, to compress your jpeg image.

Flexible CSS rule-sets to keep your images within their parent element

Since an image is worth a thousand words, we use images in your webpage to express complex ideas succinctly.

By default, if we do not specify any dimensions for an image, most browsers will show the image according to its actual size. In this situation, an image will appear to spill over the boundaries of its parent element if it is bigger.

For example, the following screenshot shows the image at https://commons.wikimedia.org/wiki/File:LARGE_elevation.jpg spilling over its parent element:

Example of large image overspilling the parent container

One way to prevent a larger image from going beyond the boundaries of its parent element is to give a standard width to all images. However, if the actual width of an image is smaller than the given width, the image will be stretched:

Example of small image being stretched to fill parent container

This post shows the CSS rule-sets that you can use for flexibly keeping images within their parent element.

How to upload a file and some data through HTTP multipart in Python 3 using the requests library

Undeniably, the HTTP protocol had become the dominant communication protocol between computers.

Through the HTTP protocol, a HTTP client can send data to a HTTP server. For example, a client can upload a file and some data from to a HTTP server through a HTTP multipart request.

If you are building that client with Python 3, then you can use the requests library to construct the HTTP multipart request easily.

In case you need it, this is how we can upload a file and some data through HTTP multipart in Python 3 using the requests library.

How to make your Raspberry Pi Zero W camera see an ultra-wide view

While I was organising cabinet, I found a pack of Camera Lens Kits for mobile phones.

Since I am using my Raspberry Pi Zero W as a surveillance camera, I figured that it would be useful if I can use the Fisheye lens in the pack to make my camera see a wider view.

This post shows how you can make a Raspberry Pi Zero W camera see an ultra-wide view.

How to setup Python Imaging Library, Pillow, on Raspbian Stretch Lite for processing images on your Raspberry Pi

When you are building a Raspberry Pi project that deals with images, the Python Imaging Library, Pillow can be very useful. For example, if you connect a camera to your Raspberry Pi 2 or 3 and took a picture, you may want to resize the picture before sending it to a server endpoint.

In case you have trouble setting up Pillow on Raspbian Stretch Lite, this post is for your reference.

How to connect your Raspberry Pi to your iPhone WiFi hotspot via Raspbian Stretch Lite

Raspberry Pis with WiFi are very useful for building prototypes that connect to services on the Internet.

In case you need a Raspberry Pi with in-built WiFi, you can get one of these:

An operating system is needed for running your Raspberry Pi and Raspbian Stretch Lite is an ideal choice for server based applications.

Although Raspbian Stretch Lite does not have a graphical user interface, it is not difficult to get it to connect to a WiFi hotspot.

If you wish to use your iPhone as a WiFi hotspot for your Raspberry Pi prototype, read this post to find out how to connect Raspbian Stretch Lite to your iPhone hotspot.