Project: Jachtseizoen

by BennoDi in Circuits > Electronics

260 Views, 1 Favorites, 0 Comments

Project: Jachtseizoen

Teamproject.jpeg

I am a student at Howest studying MCT. This means I had to make my second big project at the end of the third semester. My team and I decided to use electronics to realise our vision. I was the most skilled in electronics so that part was entirely my responsibility. We are creating a game that's a combination of our everyone's beloved childhood "hide and seek" and "tag" that's played in 2 teams (hunters and hunted). In this Instructable I will walk you through the steps of creating the encasing that the hunted will wear so the hunters can tag them.

Supplies

Capture.PNG
esp.PNG
passive buzzer.PNG
rfid.PNG
  • led ring with 12 neopixels (50 mm outer diameter, 35 mm inner diameter (!important for encasing))
  • esp32 (wroom devkit v1 (doesn't matter a lot, code might differ))
  • passive buzzer
  • rfid reader (RFID-RC522)


You will also need soldering equipment and some wires.

Printing the Case

20230118_101009.jpg
20230118_101017.jpg
20230118_101056.jpg
BehuizingTPHJ.JPG

Just like I did with the DogBit I 3D printed the case. A file with both parts is attached to this cell.

We used a GoPro harness to wear the case but a belt will do fine.

Building the Circuit

circuit.JPG

You should solder the components together. Mind the order you solder them in because they should be in the case.

For example you will have to solder the LED ring through the small hole on top of the case.

Coding the ESP32


The code for the esp32 is fairly simple. I did add more files than I have ever done but this is also the most fun I've ever had coding an esp32.

The code includes:

  • MQTT: publishing and subscribing. All devices have to start when the game starts, publishing when the game is over etc.
  • Reading an RFID tag/card (just checks whether or not there is one present. Because that's all we need for this project (don't let this stop you from doing it))
  • LED control: I coded LED's to show system status and for the winning/losing animation.
  • Buzzer: When the hunted lose because they get tagged or win because the timer runs out the buzzer will play a melody. You can take creative freedom here with which melodies you like.


2 files couldn't be uploaded because the upload kept failing. So they are in the "otherFiles" file.

Coding the Backend

Github url: https://github.com/DierickxBenno/JachtSeizoenBackEnd


MQTT

Because we use a lot of C# in this project I decided to also code the MQTT communication in C#. You can also use Python. Unless you have a good reason not to use Python like I did, you should it's much easier and the documentation is a lot better. As far as I know I will be sharing the most recent working C# code for MQTT.

I used simple API calls to publish on the MQTT broker.

I also implemented code to stay connected to the MQTT broker.


API

We used cosmos DB on Azure to store our data. You can use whatever cloud service or database you want and you should be fine. To keep our database secure we of course didn't include ConnectionStrings etc. so you have to add these yourself.

Frontend

We made a web application on which the hunters can see the location of the other team, you can find the Github repository here. The web app is UX friendly.

https://github.com/Het-Jachtseizoen-Groep1/HetJachtseizoen.git