Arduino, Raspberry, Blockchain and IoT - Project ideas

Hello Arduino community!

I've been interested in the blockchain technology for a couple years now, and I recently got the opportunity to work with a IoT Blockchain project and contribute to the devs community.

I've been using some Arduino for an industrial machine in the past (three arduino leonardo were controlling 6 analog motors, two step motors, a display, and some I/O logic), that was fun but that was my only experience.

Now that I'm working with blockchain tech and it's applications into the IoT space, I'm back to the Arduino world to see what I can develop to put this technology at test, an possibly design something that people can use to easily experiment with blockchain + IoT.

Some easy projects that came to my mind are:

  • A "Blink" Get-started example: a simple smart-contract on the blockchain where one can set the blink frequency and a on/off settings, and have a simple device blinking his led as a result

  • A smart lock / light bulb project, based on the same concept

Would love to hear your opinions / suggestions, ideas for projects, how you would use the blockchain, if that would be useful to have a platform to experiment with blockchain based on Raspberry as a gateway & Arduino devices...

Thank you for any feedback!

1 Like

Do you need to run any robust encryption, i.e. blockchain calculations on the actual Arduino for this? Typically, the relatively slow processor and small memory makes this impractical. Or does that heavy lifting occur on an external server?

Well, the cryptography part comes down to the generation of a public/private keys, and signing a transaction or a message with that private key.

I think I saw a nice Arduino “hardware cold wallet” for Ethereum that could receive a transaction, sign it and send the signed tx back: non very secure but still nice!

doing some crypto stuffs directly onboard of Arduino could lead to some interesting projects where the sensor could just identify itself with his own Blockchain account, by signing the data it generates, and send transactions directly through gRPC api, but that would probably be too much for small devices:

I believe the very small devices just connect to a server on Raspberry through typical IoT connection standards (bte, zigbee, lora.. even wired), then the Raspberry stores blockchain identities for each device, creates, signs & broadcasts the transactions to the blockchain gateway node (that Probably runs on the sane raspberry).

On the blockchain I would have the smart-contracts layer, with some kind of “standard interface “ for sensors, actuators etc to send data / read status and eventually interacting each other with some type of logic on the smart contract.

This seems like the more reasonable architecture to me. Just wondering what type of projects could be implemented, if plugging a blockchain layer into it could be interesting or it makes not much sense for the average arduino developer. Maybe that could become something like a “learning platform” for those who want to experiment with Blockchain + IoT? Like a template architecture people can clone, plug some supported sensors, write their smart contract logic (or customize existing templates) and be ready to go with a blockchain based IoT project

Not sure if the answer to my question is in that... but the baseline Arduinos like UNO and so on, don't even come close to the processing power that you need to do a secure encryption. They can't even do SSH for that reason.

Sorry for the lengthy message!

I'm not actually interested in implementing a blockchain client into an Arduino device itself, just wanting to explore what you guys think of adding a blockchain layer to Arduino IoT projects, if there is any interest in the community, what an example project using blockchain would look like.

Perhaps you could explain what features or advantages blockchain technology could bring to an IoT project?

I think that your projects boil down to a secure connection between the Arduino(s) and RasPi, and RasPi to the Cloud.