Adding photos and video to your project can give you access to a huge amount of information. Besides building your own webcam, or time-lapse photo taker, there are a ton of AIs that will categorize the contents of an image for you, which can lead to all kinds of amazing accessibility and information projects. From agriculture, to robots, to security, to you name it, having photos and video in your project can empower you with information often inaccessible to microcontrollers.
We're going to combine some powerful components and show you how to take high-quality photos and send them to a server that you control. Let's do it!
Here's what my prototype looks like:
Important! You're going to be sending a lot of data very quickly over those wires, so those connections need to be really solid. If you get tearing or weird photos, make sure your physical connections are very firmly in place. Maybe consider soldering them, or skipping the breadboard.
Clone the GitHub repository with the firmware and server to your computer.
Okay, now grab the firmware, and change your server address. It's in firmware/tcp_photographer/main.ino near the top.
#define SERVER_ADDRESS "192.168.X.Y"
If you have the Particle-CLI installed you can use the build / flash scripts to flash to your device. Build the tcp_photographer folder, or copy it to the build IDE with the libraries2 folder, and then flash it to your device.
particle flash YOUR_DEVICE tcp_photographer.bin
Make sure you have Node.JS installed and then you can run the server.
cd particle_arducam/services/tcp_server node main.js
If it's working, you should start to see output like this:
writing 449168 bytes to file saving image ...
Congrats! You're now receiving high quality images from your project! This is just a basic technology demo, and the server isn't encrypted, but I'm hoping this project will help inspire you to build something even cooler using this as a starting point. :)
Enjoy and ship it!
Here's a bonus photo of my dog guarding his patch of grass (taken through a screen).