I’m a fan of stranger things and wanted to build a wall like Joyce’s (with LEDs on a raspberry pi) and be able to use a web interface to show messages on it (by lighting the appropriate LED temporarily for each character in a phrase). I was very confident on building the Raspberry PI and hardware part but didn’t want to spend too much time on the web app though I’ve developed web staff in the past. I felt kind of bored to build such a simple thing using NodeJS, GraphQL, web sockets over HTTPS, react with typescript and an autogenerated SDK to invoke the GraphQL API (which would also communicate with the Pi) with less effort/code completion.
So I came across Anvil and decided to give it a go. Super impressed with everything! As you can guess it was as simple as:
- cloning one of the example apps (I chose the Simple Website template)
- adding an uplink
- changing the Contact form to show just one text area and sent it to the pi via a server call upon submit
- install the anvil uplink package on the pi, create a function to accept the text and do the magic on the LEDs
- hit deploy and also create a QR code linking to the app deployed on anvil.
In other words I didn’t write any code other than the business logic that was needed for my use case. Brilliant and thanks for developing this! I will post a video later if this is interesting to the community.
As I was truly impressed but the philosophical aspect of Anvil, especially with having server and client modules in one IDE, I thought to myself that this could be expanded further to also have “IoT modules”. I could have coded the purely Raspberry PI part within an IoT module in Anvil and whenever the code changes or whenever I hit deploy, Anvil magic could step in and send the IoT code to the Raspberry PI as a string, and run it with exec(), using a preconfigured uplink and suitable callable python functions. I prototyped this on a local installation of anvil and Pi and technically it works. We need to think about security, pip install and code completion but it would be a really nice addition. For the Pico (I watched the tutorial) it could be set up up to work by default in the firmware image in this way.
Happy to hear any thoughts on this. Keep up the incredibly great work and let me know how I can invest in Anvil