Table of Contents
Surveillance Camera with RaspberryPi Zero W]]
Hardware
- Raspberry PI Zero W
- Raspberry PI Camera V2.1 NOIR
- Raspberry PI Camera Cable for Zero
- Solar Panel (25Watt, 12V (nominal), 17.8V Max
- Solar Charge Controller (10Amp) (12/24V)
- Two LED lights (IR 8W +Visible 18W)
- 2x MOSFET switches
- 1x AHT21 Temp/Humidity sensor
- 1x ADS1115 ADC
- 1x microusb cable (RPI Zero power)
- Fake Camera body
- Outdoor project box
- Cable connectors
- 12V 4AH battery
https://www.amazon.com/dp/B01M9B6RQI?psc=1&ref=ppx_yo2ov_dt_b_product_details
https://www.amazon.com/dp/B07NPDWZJ7?psc=1&ref=ppx_yo2ov_dt_b_product_details
https://www.amazon.com/dp/B00IY3YLCI?psc=1&ref=ppx_yo2ov_dt_b_product_details
https://www.amazon.com/dp/B0771GQMPT?psc=1&ref=ppx_yo2ov_dt_b_product_details
https://www.amazon.com/dp/B09KGDDS37?psc=1&ref=ppx_yo2ov_dt_b_product_details
https://www.amazon.com/dp/B0BZH7CTGX?psc=1&ref=ppx_yo2ov_dt_b_product_details
https://www.amazon.com/gp/product/B08HLYKXC6/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1
https://www.amazon.com/dp/B079GNVSTL?psc=1&ref=ppx_yo2ov_dt_b_product_details
https://www.amazon.com/dp/B09B5DXTLS?psc=1&ref=ppx_yo2ov_dt_b_product_details
https://www.amazon.com/dp/B085NVDC3K?psc=1&ref=ppx_yo2ov_dt_b_product_details
Software
- MotionEyeOS version: 20200606
- MotionEye 4.2.2
- Motion 0.42.1
- Motionpush
Configuration
MotionEye
- File Storage:
- Upload Service: SFTP server
- We setup a user in my server for this. User: motioneye
- location: /home/user/camera1
- Include Subfolders: yes
- Video Device
- Video Resolution: 800×600 (fast), 2592×1944 (max, very slow)
- Automatic Brightness: yes
- Motion detection
- Auto Noise Detection: yes
- Motion Gap 30
- Mininum motion Frames: 20 frames
- Use mask
- Motion Notifications
- Run a command: yes
- Command: /data/usr/bin/motionpush %H:%M
- Motionpush
- Has to be downloaded to the dev computer
- Edit example.conf and motionpush executable:
- motionpush:
- CONFIG_FILE=“/data/etc/motionpush.conf”
- Follow Telegram instructions to create a bot
- Create a Telegram Channel
- Configure (with BotFather) the bot to be able to “post in the channel” “manage channel”
- Add the bot to the channel administrators
- Edit Telegram stuff in example.conf
- Copy example.conf to /data/etc/motionpush.conf with scp to raspberry pi
- Copy motionpush to /data/usr/bin/
Test bot with :
curl -X POST "https://api.telegram.org/bot<Token>/sendMessage" -d "chat_id=-<channelid>&text=my sample text"
Edit example.conf with:
TELEGRAM_BODY="Tap <a href=\"http://cam.memelabs.net:9000\">here</a> to view live stream
Tap <a href=\“<nextcloud share weburl here>\”>here</a> for event videos“
Project:
https://github.com/motioneye-project/motioneyeos
Download image:
wiki:
https://github.com/motioneye-project/motioneyeos/wiki
Telegram Push notifications:
ssh remote forwarding
- On the PI you must run:
ssh -R *:9000:localhost:80 memeruiz@192.168.2.22 -N
- Now you can access from 2.22 with localhost:9000 the PI web server with motioneye
- Configure your modem to forward port 9000 to internal computer 192.168.2.22 to port 9000
nextcloud
- Install nextcloud on debian. Follow these instructions:
https://www.linuxtuto.com/how-to-install-nextcloud-on-debian-12/
- For configuring apache:
- In nextcloud config.php file add this:
‘filesystem_check_changes’ => 1,
- This will instruct nextcloud to update new available files to its webfront end
- Add motioneye debian user to group www-data (to be able to put files inside nextcloud data directory)
- Inside motioneye home directory do a symlink to nextcloud directory:
mkdir /var/www/nextcloud/data/motioneye/files/camera1 chown -R www-data:www-data /var/www/nextcloud/data/motioneye/files/camera1 chmod g+w /var/www/nextcloud/data/motioneye/files/camera1 cd /home/motioneye ln -s camera1 /var/www/nextcloud/data/motioneye/files/camera1 chown -R www-data:www-data camera1
UART + Wanderer
In motioneyeOS things are a bit different:
For activating the UART raspberry pi zero w port:
Edit /boot/config.txt
Add this:
dtoverlay = miniuart-bt
/dev/ttyAMA0 existed before but it doesn't work by default. After activiting miniuart-bt it starts working
With this configuration two uart units are activated
Bluetooth is not necessary to be disabled. Apparently it is already disabled on MotionEyeOS. Also the console is not redirected to the serial.
Test with a loopback cable between tx and rx and with this test program:
import serial test_string = "Test serial port ...".encode('utf-8') port_list = ["/dev/ttyAMA0","/dev/ttyAMA0","/dev/ttyS0","/dev/ttyS"] for port in port_list: try: serialPort = serial.Serial(port, 9600, timeout = 2) print ("Serial port", port, " ready for test :") bytes_sent = serialPort.write(test_string) print ("Sended", bytes_sent, "byte") loopback = serialPort.read(bytes_sent) if loopback == test_string: print ("Received ",len(loopback), "bytes. Port", port,"is OK ! \n") else: print ("Received incorrect data:", loopback, "on serial part", port, "loopback \n") serialPort.close() except IOError: print ("Error on", port,"\n")
Wanderer
For the serial connection to the wanderer we used:
https://github.com/rosswarren/renogymodbus
It must be converted to python2 along with several dependencies
It works!