Device is started and shwing the IP it got and that you can connect with to view the webinterface
Webinterface to control the device
Webinterface to control the device
AEternity boot screen
Displaying the latest registered AENS name
Digital Signage "Pay here with AEternity"
Displaying the latest AE price
Displaying the number of transactions for a wallet
When reading about æternity and the humandefihaeck project and suggestions, these things jumped out for me: "prototype", "your craziest idea", "IOT". and these motivated me to bring Blinkit to æternity, Blinkit is a blockchain notification project that i develop, and is build around widely available devices, this release of Blinkit is for an inexpensive IOT device and it connects with æternity and uses it specific features.
Humans love gadgets!
What it does
What can this version of Blinkit do and what are the set goals?
- Make a inexpensive standalone device that connects with and uses æternity.
- Make it easy to get started with, and easy to use
- Keep the hardware cost, and parts and components as low as possible
- Look into the possibilities of partnering with æternity to make these devices available, or make a few available to giveaway.
For the development of this device the cost of the hardware is targeted to be low because of the use of pre build boards that include basically all the required components. if this project would be made more commercialized, best would be to select the best hardware for the users, and get multiple different boards of different brands, and the software should be made compatible with them.
The intention of the standalone version and development is, free software on inexpensive hardware, the cost for a board that can run the made software are around 10 to 20 USD.
This project is a based on one of my previeus Blinkit projects from 2018, and is updated for todays usage and made compatible with æternity and uses it's specific features.
The made software currently has the following features when transferred on the board:
Blinkit - AEternity IOT Prototype v1.0
- Wifi connectivity
- Connects with the æternity blockchain mainnet
- Light and sound
- Webinterface to test, manage and start and stop functions
- Buttons to test light / sound functions
- Buttons to switch to testnet (default is mainnet)
- Show wallet avatar image in the webinterface
- Display the æternity logo on device start
- Display and update æternity price on the device display
- Display "pay here with æternity" (digital signage)
- Display and update the number of æternity wallet transactions (Tx) on the display
- Display and update the latest registered AENS name on the display
- It's possible to stop the functions from the webinterface and start another one.
- Blink and beep to notify the user when displayed information changes.
The code is commented to describe code segments, the code is cleaned up to make it easy to read and dive into.
Startup screen with æternity logo
After the startup screen the device will show the IP address it got and where you can connect too to load the web interface
Web interface on a mobile phone to control the device
Web interface to control the device
Functions that can be started from the webinterface
Digital signage "pay here with æternity"
Showing the æternity price
Showing the latest æternity name (AENS) .chain name
Showing the number of transactions for the users wallet
Device blinks the screen and optionally blinks a connected LED light when a change is detected
How I built it
To connect with æternity the middleware API is used that is described here
The software is made with the Arduino IDE in C++ and uses the following libraries:
ESP8266WiFi.h ESP8266HTTPClient.h WiFiClientSecureBearSSL.h heltec.h Wire.h Adafruit_GFX.h Adafruit_SSD1306.h
Challenges I ran into
It would be better if i had more models/brands to test with so i could have made a hardware compatibility chart with tested devices, and make it work on other boards and brands as well.
At first i could not get the interaction with the API over https to work.
Accomplishments that I'm proud of
it have been a while that i have worked with Arduino, and im proud that i got it working in the short time span, as well that it can get the data from the æternity middleware over https to the device, and can do related things with it. Everything is functional and finished in time.
What I learned
Have learned about the æternity blockchain it features, API's and the superhero.com platform.
What's next for the Blinkit - æternity IOT Prototype
From IOT prototype to IOT æternity product?
To commercialize this project the hardware could maybe be offered pre-installed with the software and the setup of it will than work like any other consumer network connected device. This can be done for the users that not want to do the aimed to be simple, but needed installation instructions that are needed to do when buying just the board / device from a online webshop.
In the begin of an commercialization, different boards / devices can be made compatible, and the users can buy the boards from online webshops and install the latest version of the made software onto the board.
The best board / devices can be selected and, used to further develop around, and this can than be considered to get in stock.
A other approach to intergrade this project into æternity could be to not resell the devices but instead only make the software available for a collection of boards and devices and let the users decided which one to buy from a 3rd party reseller.
Additional things that can be developed:
- Mobile app that loads the device webinterface
- Make it compatible with a wider variety of inexpensive IOT development boards.
- Add and make more specific features based on different use cases and locations like:
-- Retailsector: price tags / proof of payment / in store advertisement "pay here with æternity", "Discount on these products". -- Traders, Price alarm , blink and beep when a price point is reached -- Digital Signage: display messages -- Warehouses: notify about orders / display number of stocked items. -- Display oracle information at specific locations -- Create oracle data points based on sensors and interactions with the device.
Although this board have the looks of a prototype there are approaches to commercialize this idea and have an inexpensive consumer ready products in a nice enclosure.
I'm willing to continue to work on improving the current version as well as to look into other approaches, and will bring my previously gathered experienced with opensource projects and products, and can do this by myself and / or in cooperation with the æternity team.
- Download and install the Arduino IDE
- Follow the board specific installation instructions
- Install the libraries listed at the top of the Blinkit-aeternity-IOT-v1.ino file, with the libraries tool.
- Change the WIFI details and the wallet address to yours
- Upload the Blinkit-aeternity-IOT-v1.ino sketch file to the device
After this the device will reboot and when started it shows the ip address that it got and that you can connect to too view the web interface that you can use to start / stop, and test functions.
You can download the latest version from Github
If you need help with the installation you can find me (@techtek ) on Discord, in the æternity server or in the Blinkit server.