B2b and B2C solution for Zoos and sponsors

Our vision

We have our focus on sustainability and optimization of process in our B2B solution for Zoos, but in addition we have also the intention of promoting animal care and support from normal people out there that wants to help with the time and money consuming task of taking care of animals in controlled and artificial environments.

Proof of concept

Our solution is basically divided in 2 platforms:

B2B solution (SmartZoo admin)

It is based on Azure IoT central implemented in 1 or more Zoo’s; the platform collects data from different devices grouped by species of animals living in different artificial environments inside the facilities.

By collecting data and getting insights, the Zoo’s can share data to optimize their processes, resource consumption and animal quality of life.

We tested several devices sending telemetry from temperature, humidity, pressure, location, and many other sources. We managed to send commands back to the IoT devices, allowing us to define business rules that can simplify procedures and tasks for the zookeepers.

B2C solution (SmartZoo app)

The SmartZoo app is an innovative proof of concept that we implemented during the last day. The idea is to share some of the telemetry and data generated by SmartZoo admin with normal people outside the business. They will be able to Sponsor animals living in the ZOO and then get shared data from the Zoo’s as reward for their support. People will then feel closer to the animals they like and help, encouraging them to share the stories with other people and empower the community.

We are making use of the blockchain technology to manage the transactions of sponsoring animals, by doing this, we implement transparency and decentralization to the system, allowing everyone to track how the money is moving and how it is assigned to the different Zoos.

System architecture

Iot Devices

Everything starts here, IoT devices are constantly producing data that is sent to the IoT central which is the main point of processing. We used a wide variety of sensors to make some tests, but the most common ones were the Azure IoT development kit and the Azure IoT PnP app for mobile phones.

IoT central

It is in charge of receiving and manage the inputs from the devices and allow operators to define dashboards, business rules, commands, and data export to external repositories. Azure logic apps offer connectors to be able to send commands, or other actions back to the IoT devices.

Frontend

IoT central provides a very good user experience, easy to navigate and manage, but data is not flowing in real time in the dashboards. That is why we needed to implement an improved solution using front-end technologies to optimize this.

The front-end system gets real time data exported from IoT central to a cosmos db database that works perfectly to process and query data in short time.

The interesting part of this front-end solution is that is adaptable to many user interfaces, so we implemented it in a Teams tab (for collaboration teams to see dashboards and make desicions), IoT central to have real time visors, and in the B2C solution to show to end users telemetry, images and location of the sponsored animals.

SmartZoo

Our app allows users to browse between all subscribed Zoo’s and their species. So, people can then sponsor the different animals available.

https://smartzooapp.webflow.io/


SmartZoo uses a database to store information about Zoos, species, animals and members (sponsors).

The data is displayed in a nice and response web application that is easy to navigate. Users can see animals and click on “sponsor” to process payment. Once completed, the user has the possibility to Login with their metamask wallet (Web3 login) and then see their sponsorships.

Video of the solution
Attached you can find a video explaining how the app works:

Conclusion

After 3 days of stress, geeks, and a lot of thinking, we managed to put a solution in place that we think can actually be interesting both for businesses, day to day people and environment activists. We are basing our solution in the word “sustainability” and try as much as possible to add value to the zookeepers and the marvelous job they do.

API

We are using many different endpoints to get data from different sources. Some of them by using the sdks and some of them clean http requests:

-Azure Signal R (Hub):

-Azure Web Application:

https://app-acdc2022.azurewebsites.net/api/telemetry/GetTelemetriesWithTemperature

-Azure Maps Geolocation:

https://atlas.microsoft.com/mapData/{location}/status?api-version=1.0&subscription-key={subscription-key}

-IoT Central:

Internal service from IoT Central to LogicApp and Flow.

-Metamask:

The extension injects the Ethereum web3 API into every website’s javascript context, so that dapps can read from the blockchain. We use it when loggin in onhttps://smartzooapp.webflow.io/ :

Power Automate

We are using our powerful end-user skills to create a logic trigger when the turtle (we simulate with our smartphone) is turned upside down. This is done in Power Platform and thus we are claiming Power User Love.

The video we upload yesterday show what happens when the turtle (smartphone) is turned upside downshow. Spoiler alert: Camera light turns ON.

We have implemented a new Teams Tab app that monitors in real time where the turtles (smartphone in our case) are located.
One of our member are currently at the airport to travel back home to Stavanger. The video show that the Teams Tab App accurately shows her location at the airport and our location at the hotel.

The video also shows geolocation data stored in Azure Cosmos DB. We are using React, TypeScript and Hooks to implement the Teams Tab App (Client Side Salsa) .

In our teams group we have also create apps to easily look at the IoT Central, Webflow website and TODO list. All the communication happens inside the Microsoft teams.

IoT Central:

Webflow website:

TODO list:

HTML5

We are using HTML5 responsive website templates from webflow (https://webflow.com/templates). Take a look at the website we are currently working on
–> https://smartzooapp.webflow.io/

We are developing a interactive website were customers can subscribe, sponsor and follow their favorite Zoos. They can also subscribe to specific animals they want to follow. It is like a social platform for animals.


Happy coding!

Dashboard for the Zookeepers

The Zookeepers should be able to have access to detail information of the turtles habitat. The dashboard in the IoT Central shows relevant information about how their movement, acceleration and rotation (gyroscope). It also describe how many turtles there are and how the humidity, temperatur and pressure is in their habitat

We are claiming the Feature Bombing Badge, due to a smashing dashboard with many features.

Helping out a fellow turtle

In this crazy world we turtles need to stay together and help each other. In a hackaton there is not much time for making clean code and updating the documentation. We thought we would help out another team by submitting a pull request with some code-cleanup and added description.

nINjas happily approved the changes:

Check it out: https://github.com/TommyBakkenMydland/nINjas/commit/e66048bd8488f0caacb0e9531aded1b60d56a341

Pizza Learning

Today we tried to solve the head 2 head power apps challenge. We could not come with solution in time, but we managed to learn and prepare a lot about ML and power apps. While exploring the possibilities, we found the following option:

Lobe is a very easy to use product hat easily generates models based on images that you provide to the application. It has a direct integration with power apps. Here you can see a little bit of the UI:

Once the model was created and trained we exported it to power apps studio and got it available as a model under AI builder modules:

The next step as actually pretty simple, by just adding the model to a power app and running the Predict function, we got answer from the model to identify the type of pizza selected on an image picker.

Thanks to Ahmad Najjar for the tips and the challenge, new things learned 😊

Happy coding!

Todays progress

So far so Good 😊, we have done some modifications to our solution and have now established a more attractive business value and some better user interfaces and data integrations.

First of all the new idea is to reduce the monitoring space and range, so we came up with changing the scope and customer type to: ZOOs. Our new brand is: SmartZoo.

In each ZOO we can find different species of animals living together in controlled habitats, they have very different needs and behaviors, that is why we needed an adaptable system that could receive information from different IoT devices measuring different types of data.

Our platform is “device ready”, it means that we can include new devices in an easy way by using the concept of “device groups” which allows us to differentiate animals by grouping IoT devices based on species.

Our final goal is to implement Smart ZOO in multiple locations around the world in different ZOOs and get Insights from all of them so we can identify anomalies, improve facilities and procedures and last but not least increase sustainability by optimizing the use of resources like electricity, food and water.

We created a web page to be presented to possible customers, it is responding very well to different screens and devices and it is a good entry point to get in touch with us. The URL is: https://smartzoo.webflow.io/

We have created a dashboard, in IoT Central, with data from the IoT devices (smarthphones + IoT DevKit). IoT DevKit provides data of temperature, pressure and humidity.

We are tracking the turtles locations in and showing it in a map. We want to use this information to send alerts if turtles escape their cage. We also want to generally gather information about their movement, which can be used to tell if a turtle is sick or hurt.

Smartphone (turtle) devices provides gyroscope (x,y,z) which tell how the rotation is for the smartphone (turtle). We are using this to provide information if the turtle is turned upside down (the worst thing that can happen to a turtle…). If the turtle (smarphone in our case) is upside down a rule is trigged and an email is sent to the zoo keeper and the light on the smarphone is turned on.

Logic app:

Email:

Light turned on the smartphone:

Machine Learning

We are currently working on implementing machine learning such as anomaly detection. If there is any spikes or dibs in the temperature value want to store this information in CosmosDB and send an alert message. This can detect any abnormal behavior in any of data we are collecting, and automate the job of alerting relevant people of what is happening.

We are gathering temperature information from the Event hub, sending it to Stream Analytics Jobs to detect anomaly and sending output result to Cosmos DB:

CosmosDB:

WebApplication

We have implemented Geolocation with SignalR so the markers are shown in the map in real time. When the devices are in motion the markers will move at the same time.

The front end calls the Hub so it does not need to call the controllers each time with a common Http call.

Excellent user experience

Here we can include all changes to our branding and webpage. IoT central got also a new brand and it is much easier to identify the different habitats per species in the dashboards.

We have also improved the responsiveness of some of the visuals in the IoT central by implementing signalr and React.

Most extreme business Value

We tried to explain it in the overview of this POST, but as we mentioned before, the real business values comes when getting data from different Zoos and produce Insights and make decisions based on it.

Rock Solid Geekness

Here is an overview of technology used:

Killer App We find it difficult to explain how it is a killer app, but we hope it is enough with all the previous text 😊