A simple rangefinder having the Parkside PLEM-50-C3 laser telemeter, a pair of binoculars, an ILI9341 2.8 inch Display and 2x ESP32-CAM to measure distance exactly on the right spot.
Many thanks to Pavel Rybnicek for publishing a little documentation about the sensor wiring. More about that on his repository at https://github.com/pavel-rybnicek/esphome-parkside-plem-50-c3
- 1x Parkside PLEM-50-C3 laser telemeter (you will cut some holes in the case but it will be also be still usable as standalone)
- 1x side micro switch (to turn on/off the beeping speaker
- 1x side micro switch for putting both ESP32-cam into download mode
- 2x 6PIN dupont connectors for uploading the code wkth a USB serial interface on each ESP32-cam
- (OPTIONAL) a single tap button, for external measure triggering
- (OPTIONAL) 1x 2PIN JST connector (male and female) - to connect the telemeter and the external trigger button
- 1x 4PIN JST connector (male and female) - to connect the esp32-cam and the telemeter
- 2x ESP32-CAM boards with 1x camera attached
- 1x ESP32-CAM MB or an USB TTL-UART Adapter to upload the code (CP2101, CH340, FTDI FT232 etc)
- Micro USB to USB-A for uploading the code (or USB-C if your esp-cam has it)
- 1x 2.8 inch ILI9341 display (touch not needed)
- very thin wire to solder everything
- soldering iron, solder wire and flux
- A pair of binoculars
- 3D printer and PLA filament or duct tape to attach everything together
- Arduino IDE and ESP32 Library and json installed
- TP4056 battery charging module
- 3.7V to 5V Step up booster
- Li-Ion rechargeable battery
- 2x kOhm resistors (each one on SDA/SCL in series)
- 100uF electrolytic capacitor (between gnd and 5v rail
- 2x 100nF ceramic capacitor (one between 5v and gnd rail, one between the esp32 measure button pins)
| ILI9341 Display | ESP32-CAM (Display/Camera) | ESP32-CAM (Telemeter) | Parkside Telemeter |
|---|---|---|---|
| VCC | 5V | ||
| GND | GND | GND | GND (Pin 1) |
| MOSI | 23 | ||
| MISO | 19 | ||
| SCK | 18 | ||
| CS | 17 | ||
| DC | 16 | ||
| RST | 5 | ||
| BL | 15 | ||
| 13 (RX2) | 16 (TX2) | ||
| 13 (SDA) | SDA (Pin 10) | ||
| 2 (SCL) | SCL (Pin 11) | ||
| 14 (MEASURE) | KEY (Pin 18) |
You may find a few resistors and capacitors added in the wiring diagram. They are used to filter some noise on SCL/SDA and add a little debouncing on the remote button. They also provide high current boost at the start up.
To program the ESP32CAM boards, 2x 6pin dupont connectors were added. Use a CP2101, FTDI FT232 or CH340 USB UART interface to upload the code into each ESP32CAM.
Due to the lack of gpio pins and not having a gpio extender, 2x esp-cam boards have been used. In this repository are 2 .ino files, cameradisplay.ino is for the esp-cam handling the camera and the display, telemeter.ino is for the esp-cam handling the telemeter data.
You need to disassemble the Parkside Telemeter. Inside you will find the display, the keyboard module and the laser sensor.
Laser sensor has 2 traces you need to solder with thin wire.
These traces will be used for I2C communication between the sensor and the esp32cam. They are used as SDA/SCL pins.
You will also need 3.3V and GND from this sensor. You can see the 3.3V pin on the left side, marked on the pcb with the 3.3V symbol. GND pin is on the opposite end.
Use a 4PIN JST Connector to get the pins out (I Used a 6PIN for debugging too). You can use epoxy, bi-component glue or anything else you have
for securing the wires in place. I used Mitre-Apel bi-component glue. I know it's messy, but the wires won't go anywhere else.
|
|
|
3.3v - red
GND - black
SDA - white
SCL - blue
White/transparent - Keyboard (tested but left unused)
Red/black - power (tested but left unused)I have used a perfboard and 2 ESP32 CAM talking to eachother via software serial. I needed more GPIO pins but I had to solder everything on the chip pins instead. Still, camera pins and sdcard pins were left usable.
Before soldering the esp32 cam to the perfboard, solder the ILI9341 display directly to the esp32 chip pins, using thin wire, bypassing the board GPIO pins.
Also, you need to solder connectors for a CP2101/FTDI FT232/CH340 usb serial interface because esp32 cam doesn't have a usb port (it has a MB with usb but it won't be used in this porject). Still, you will use the connector to upload the code with the USB serial interface.
Pinout for the ESP32-cam serial connector (use one for each esp32 cam:
| ESP32 | USB Serial Interface |
|---|---|
| 5V | 5V |
| GND | GND |
| UDT | RX |
| UDR | TX |
|
The ESP32-CAM boards along with the charging circuit. |
Yes, the wires are messy, I've trimmed them afterwards. |
I have added a TP4056 and a step up converter for powering up using a 3.7V Li-Ion Battery. It outputs 5V 1A, enough for both esp32-cam, and the display.
I also added a switch for turning it on and off, a switch for putting both esp32-cam in download mode by shorting GPIO0 to GND. GPIO0 is connected between each esp32-cam. Also they share GND.
|
Battery connected |
The side switch for Download mode. It puts both ESP32CAM boards into download mode. When used, the screen should be white. |
Add the ILI9341 display to the first ESP32-cam (the one with the camera). Check everything works as intended. You should get a clear image from the ESP32 camera, along with measured distance whenever you press the telemeter "Measure" button, or the remote button. The green numbers on the right side are past measurements.
|
Camera image shown on the display |
Measurements are sent from the telemeter to the ESP32CAM and shown at the bottom of the screen along with the past measurements (in green) |
In the telemeter.ino code you will also see a button being used to trigger measurements from the esp32. You can add it or rely on the telemeter's measure button.
Place the ESP32-CAM camera into one of the binoculars eyepiece. Try to align it carefully using a plastic support. I did cut 2 holes in a plastic piece but you can 3dprint your own. The image should be displayed on the screen along with the measured distance at the bottom.
|
Binoculars eyepiece aligned with the camera |
Use zip ties to secure everything. |
|
|
|
Have fun :)