JulyOT Student Ambassador Projects

This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Tech Community.

JimBennett_0-1625264767368.png

 

 

Every July we celebrate JulyOT here at Microsoft – a whole month where those of us who like IoT and bad puns create and share IoT projects with the world. We also love it when our communities share the projects they have built to celebrate JulyOT with us.

 

In this post I want to highlight a few projects that our Microsoft Learn Student Ambassadors have worked on and shared with us in their own words.

 

Majd Safi - Sustainable electricity and monitored consumption :light_bulb:

 

JimBennett_0-1627601785633.jpeg

 

Majd’s Student Ambassador Profile | Connect with Majd on LinkedIn

 

Sustainable energy does not only consist of increasing the production of energy but also decreasing waste and minimizing consumption. For example, Lebanon is a country that does not have the capability to produce more energy because of the state of its economy and thus, blackouts happen on a daily basis. Monitoring power consumption of every plug in a household will lead to a better understanding of the usage of electricity. Furthermore collecting consumption data will help us detect which appliance brands are the most efficient, detect unexpected power consumption, analyze how many people live in a household and know which appliances we should expect in every house, restaurant, factory etc. Finally, we can reduce the waste of energy by automating the use of appliances, such as the deactivation time of a street light in the morning.

 

JimBennett_1-1627601785633.jpeg

 

You can see more on the projects GitHub page.

 

Ricardo Zamudio – Growing cherry tomatoes with IoT :tomato:

 

JimBennett_2-1627601785633.png

 

Ricardo’s Student Ambassador Profile | Connect with Ricardo on LinkedIn

 

At the beginning of this year, I decided to grow some cherry tomato plants to understand a little more about one of the most important industries that is the industry of food obtained through agriculture. As the weeks passed, the plants began to grow and when I least expected it, they were already huge, and the tomatoes fruits were already starting to grow.

 

I am enthusiastic about the concept of IoT mainly because I believe that if it is used in the right way it can bring incredible benefits to the proper industries. Crop food production is one of those industries, so I decided to prototype a monitoring station to supervise the conditions of my tomato plants and explore on a smaller scale what an IoT solution for agriculture would look like.

 

The home garden is a couple dozens of meters away from my wi-fi router, in addition to the fact that there is no electrical outlet nearby, so I built the following solution based on two devices:

 

1.- Sensor node

The sensor node is developed around the ATmega4809 microcontroller within the Arduino framework, the firmware was developed to collect data from different sensors and send the records obtained through radio frequency across a transceiver module with LoRa protocol. Additionally, to feed with power the node a solar panel with a lithium battery and a voltage regulator was added to ensure its 24/7 function.

 

Measured variables:

  • Air Temperature
  • Air Relative Humidity
  • Atmospheric pressure
  • Lux
  • Soil Temperature
  • Soil Moisture

 

JimBennett_3-1627601785633.jpeg

 

JimBennett_4-1627601785633.jpeg

 

JimBennett_5-1627601785634.jpeg

 

2.- Gateway

 

Consists of the ESP32-DevKitC board and a LoRa Module.

Takes advantage of the dual core of the ESP32. One core is dedicated to receiving the data through the LoRa module and the second to send the received data to the Azure IoT Central App.

 

Device tasks:

  • Data reception through RF LoRa module
  • Data transmission via ESP32 Wi-Fi microcontroller connected to the network. The software was developed using the Azure IoT Hub library for Arduino.

 

JimBennett_6-1627601785634.jpeg

 

User graphical interface for data display and analysis

 

With the two devices ready, what follows is to develop an interface to display all the data collected by the sensor node and received by the gateway through LoRa. For that I opted for Azure IoT central, since once you configure your device template and connect your device it allows you to create amazing dashboards for the display and analysis of the data from your IoT devices.

 

Results:

 

JimBennett_7-1627601785634.jpeg

 

You can find more of Ricardo’s projects on his GitHub.

 

Marko Paloski - Program your TV remote 

 

JimBennett_10-1627601785634.jpeg

 

Marko’s Student Ambassador Profile | Connect with Marko on LinkedIn

 

You can program “any” TV remote so you can use it on your computer with Arduino Pro Micro, Infrared Receiver, and little knowledge of C++. The whole reason after this project is for the need if you are watching movies and laying on your bed, to do not use any wireless mouse or similar things, but to use it the remote TV controller. It is very good product in the end, in correlation with the time used to make it. 

 

Github code: https://github.com/magicalturtle420/tv-remote 

 

The hardware that is needed: 

 

JimBennett_11-1627601785634.jpeg

 

 

 

JimBennett_12-1627601785634.png

 

 

  • TV Remote (tip: Better to have some remote from some TV, not universal TV remote because you will need to search the internet for libraries or decoding codes schemes) 

JimBennett_13-1627601785634.jpeg

 

 

The software that is needed: 

 

 

Arduino Pro Micro it has different chipset than the Arduino Uno, which is more made for small micro USB things, like controllers, mouses, keyboards etc. And in our case, more like micro-USB IR receiver for the TV remote. 

 

For me the most complicated and important part was the function IREventHandler from line 176 to 244. This function is recognizing and decoding the signals from the TV remote with big help from IRremote.h library. And after that it puts them in variables. Because every signal is composed with protocol, address and command. In my case the protocol is Samsung, Address 0xE0E and command 0xA2.  

 

From line 57 to 169 is the most interesting part where we point which button on the remote will do which command on the computer. The codes which are hexadecimal numbers (ex. 0x000000A20E0E0010), we get by using the Serial Monitor in the Arduino IDE, and by pressing the buttons on the Monitor will show the code for the pressed button. 

 

JimBennett_14-1627601785634.png

 

 

And after we know which button has which code, we then program what we want to happen when that code is shown. 

 

For example, line 70 is Play and Pause, or line 73 will start your default browser with your home page. There are a lot of things possible to do thanks to the HID-Project.h . Also, we can complicate things to be more advanced, like line 91 to 97 will do the following when I press button 1 on the remote: open new tab on Firefox/Chrome browser and open www.youtube.com. It is possible to combine more commands for single button. 

 

There are two help prints on the Monitor for button down and button up (when the button is pressed and when it is released), this is useful because some commands need to be directly programmed to update the command if the button is pressed more time, for example if you hold the volume up button it needs to know that after some time the command needs to be executed again (in my case it is 250 milliseconds), but for buttons like mute it needs only once to be executed no matter how much time you hold the button pressed.  

 

Pictures: 

 

JimBennett_15-1627601785634.jpeg

 

 

JimBennett_16-1627601785634.jpeg

 

Microsoft Learn Student Ambassadors

 

If you’ve not come across our Microsoft Learn Student Ambassadors program before, it’s a program for students who are leaders in their own tech communities, supporting other students in building their tech skills. You can learn more at studentambassadors.microsoft.com.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.