Hipsters dreamworld

We are making some improvements in the solution with the help of 2 technologies that we think might be considered for he Hipsters badge. They are:

  1. Azure IoT central V3 (Preview) connector: This allows us to send commands back to the devices from IoT central. Perfect for the business flow.
  1. Metamask plugin for login: We are working in a solution for end users where they can log in to a page and see real time data flowing into graphs and maps. One of the possible ways to login is by using Metamask as a Web 3 platform to login to an hypothetical blockchain that could work as decentralized data repository for members of ZOOs. (read more here: https://docs.metamask.io/guide/). This feature is in an experimental phase, but the POC is working good.

Happy coding!

Tips from an ACDC veteran!

Hello everyone! It has been a very interesting event this year, we got a new room, new participants and a lot of new challenges and ideas.

We were impressed with the sustainability challenge that we got yesterday and wanted to contribute a little bit with some ideas around it.

Some of us have been in this event many times and learned some tips that might suit everyone and in addition contribute a little bit with some of the the Principles of Sustainable Software Engineering.

Try not to go to bed so late, it’s not good for your mind and body to work under stress, you are less productive and creative. Try instead waking up early after a good sleep and you will think clearly and ideas will just start flowing.

Remember of course to shutdown your Azure services during the night and start them again during the day (Take a look at https://aka.ms/learn-green) to learn more about what we mean.

Happy coding!

Setting up the projects backbone

Azure Cosmos DB

The solution is using CosmosDB to store Users and Telemetry coming from the different devices/assets

CosmosDB is fast and easy to maintain for noncomplex solutions. The main use here is for very simple data structure and for mass data allocation. Since we are getting data from this DB in real time, so we need to send a lot of requests in very short time ranges. Since CosmodDB is DocumentDB based so it handles these kinds of situations smoothly.

Azure WebApplication

We have created a web application as the user interface to keep track on the assets. The web applications is based on .Net Core 6 with React/TypeScript. We have implemented some of the main .net core features as:

– Entity Framework: To connect in a simple way to CosmosDB

– Controllers: As API endpoints

– Azure KeyVault Provider: As a provider, the same as an appsettings file. This protects all of the secret variables like codes, keys, connection strings and so on.

– Session: To create an encrypted cookie (Https, SameSite) to keep the session alive

– Cors: to prevent other origins to send requests to the BackEnd

– Dependency Injection: To inject all different services to the solution, including custom services and custom repositories.

– Hub: To connect to the SignarlR applcation

Azure Maps

Azure maps is used to track the geo location for all different assets. It will show the position of all assets in real time with the help of Signal R.

We have given a little bit of extra styling to the pointers and added some of the out of the box controls.

Azure Signal R

We have implemented Signal R to open a websocket for real time communication. The main idea was to avoid so many common http requests to the backend which is not so good when it comes to performance and security.

The front end sends requests to the Hub and it immediately gets a response so the data is always fresh and new. This is the way we keep track on the assets by getting all the telemetry/data needed from the Cosmos DB.

GOOD MOOOOOOOOOORNING TURTLEEEES

We have found ourselves some coffee and we are now ready to start the day. At 07:15 the whole team was in place.

We took sometime last night to go through this challenge and learned very interesting concepts that we don’t usually think about in our day to day work. Thanks to the ACDC judges for this info, good to have it in our heads while designing solutions.

Rules

For å ha bedre kontroll på system, uten å måtte manuelt overvåke hele døgnet, har vi implementert “Rules” i IoT Central.

Hvis temperature går under 18 grader blir en alerm aktivert, hvor det sendes ut mail relevante personer med informasjon om hva som har skjedd.

Hvis Rotation/Y overstiger 0.1 betyr det at telefon (eller skildpadden i tenkt tilfelle) er snudd opp ned. Da sendes det ut en alarm beskjed om at gitt telefon er snudd på hode.

Bildet under viser hvordan en mail ser ut når en skildpadde er snudd på opp ned.

Claimed Badge:

IoT Central

Med hjelp av IoT Central kan vi vise frem leselig data. Microsoft har en “IoT Plug and Play” app som kan sende data hentet fra smart telefonen. Bilde nedenfor er et skjermbilde av appen på telefon.

IoT Plug and Play – App

Denne dataen har vi klart å sende til IoT Central. Bilde under viser data som blir sendt fra smarttelefonen.


IoT central:

Smarttelefonen kan vi bruke som som å simulere hvordan skildpadder eller fisker beveger seg i området. Med denne løsningen kan vi koble flere smarttelefoner til IoT Central, slik at det blir mer realistisk.

IoT DevKit

Vi har også koblet opp en MXCHIP (IoT DevKit) til Iot Central til vise frem temperatur, humidity osv… som er viktige data for å skape et godt og behagelig miljø til dyrene:

IoT Central/IoT Plug and Play er nytt og hipt så vi claimer Hipster badge. Dasboardet godt leselige grafer, så vi prøver oss på Dash It Out Badge. Vi claimer også Embedding numbuts grunnet IoT-løsningen.

Github repository & Azure Devops

For å få en god start på prosjektet setter vi i Bouvet Shredders opp en Github repository og Azure Devops. Med Azure Devops kan vi jobbe på tvers av teamet på best mulig måte.

Alle som ønsker å følge med på vår progresjon er hjertelig velkommen til å ta en titt på vår Github Repository:

  • https://github.com/bricenocar/acdc-2022

Vi tar i mot inspill med åpne armer, så ikke vær redd for å si ifra hvis du ser noe som kan gjøres bedre måte!

Bouvet Shredders

I årets ACDC event skal vi i Bouvet Shredders fokusere på fiskeoppdrett i Norge. Da skal vi hente ulike data fra sensorer og sende det fra Raspberry PI opp i skyen. Data vil bli behandlet og analysert i skyen og fremstilt på brukervennlig måte til brukeren med hjelp av Power BI. Løsningen kommer til å inneholde mange ulike Azure applikasjoner. Bilde under viser litt hva vi har tenkt til å gjøre..

Blant annet ønsker vi å bruke temperatur, CO2 og motion sensor til å hente relevante data som kan beskrive tilstanden på et fiskeoppdrett. Vi ønsker også å koble til en kamera module til Raspberry PI slik at vi kan implementere Computer Vision (Azure Cognitive Services). Ved hjelp av Object Detection kan vi hente data på hvor mange fisker det i annlegget og hvordan tilstand på fiskene.

Den endelige løsningen er ikke ferdig bestemt, men vi gleder oss til å se hvordan dette prosjektet vil utvikle seg de neste 3 dagene.