<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[GiZano's Blog]]></title><description><![CDATA[BSc in CS @ UniPi | Exploring IoT, Local AI & Open Source]]></description><link>https://gizano.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6aad99c54335452e88cc118f/dcd8afff-436c-474e-947a-fe0c7d83957c.webp</url><title>GiZano&apos;s Blog</title><link>https://gizano.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 12:54:46 GMT</lastBuildDate><atom:link href="https://gizano.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Winning a Tech Contest with bE-More: Integrating IoT and Local AI for a Greener Office]]></title><description><![CDATA[TL;DR:
What: An IoT semi-automatic system for company energy saving.
Tech: Java 23, Arduino, MQTT, ThingsBoard and local AI (Ollama/Mistral:7b).
Results: Winner of school contest 'Project Day' 2025.
R]]></description><link>https://gizano.hashnode.dev/winning-a-tech-contest-with-be-more-integrating-iot-and-local-ai-for-a-greener-office</link><guid isPermaLink="true">https://gizano.hashnode.dev/winning-a-tech-contest-with-be-more-integrating-iot-and-local-ai-for-a-greener-office</guid><category><![CDATA[iot]]></category><category><![CDATA[AI]]></category><category><![CDATA[Java]]></category><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Giovanni Zanotti]]></dc:creator><pubDate>Thu, 24 Sep 2026 12:11:41 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aad99c54335452e88cc118f/2c4f094a-4d81-4df8-a6d5-db41d3babd86.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p>TL;DR:
What: An IoT semi-automatic system for company energy saving.
Tech: Java 23, Arduino, MQTT, ThingsBoard and local AI (Ollama/Mistral:7b).
Results: Winner of school contest 'Project Day' 2025.
Read further to: discover how local AI can analyze IoT data respecting privacy and environment.</p>
</blockquote>
<h2>I. The Background</h2>
<p>My journey with bE-More started in february 2025, when my team started to gear up for the Project Day, the most anticipated event in my school.</p>
<p>Every year this contest transforms the school in a tech hub, where teams from all classes gather to showcase their projects to representatives of companies of our territory.
We didn't want to develop a project like others, we wanted to create a professional solution for an actual global problem: energy saving.</p>
<h2>II. The Inspo</h2>
<p>To be sure we developed a project that would be in demand, we knew we had to resolve a real-world problem. That's how we decided to look at Agenda 2030, which challenges companies to comply with stricter environmental standards and enhance their energy savings.
However, we found a significant friction point: while trying to optimize, companies are deeply concerned about data privacy. Sending sensitive telemetries to the cloud for analysis can often become a deal-breaker.</p>
<p>This is why we decided to rely on a local AI analysis system. By using Ollama and the (then) newborn Mistral:7b, we created a light-weight, fast and secure solution. It allows users to get data insights and detect anomalies without spending hours reading long, complex charts.</p>
<h2>III. The Project Architecture</h2>
<h3>III.I The Tech Stack</h3>
<p>Our solution relies on different components talking to each other to gather, store and analyze data for the end user, who can then make decisions based on AI-driven insights.
The Controller (Java 23): A desktop app which works as central hub, using WebView for the dashboard and manages the life cycle of AI analysis processes.</p>
<p>The IoT Hub (ThingsBoard): We selected platform for robust data handling and storing, using MQTT and real-time dashboards on the port 8080.</p>
<p>The Edge Hardware (Arduino): The actual operator of the system. It is responsible for gathering real-time telemetry from light sensors and executing local automation rules to save energy.</p>
<p>The Intelligence (Python &amp; Ollama): A middleware service that acts as a bridge between the data and the AI model by querying the PostgreSQL database of ThingsBoard to feed the Mistral:7b model.</p>
<p><img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/1qh1ip68wlr8jj7ao0vc.webp" alt="GUI in Italian" /></p>
<h2>III.II The Communication</h2>
<p>To be able to communicate, the components used MQTT and HTTP(s) protocols, which make the architecture fast and secure.</p>
<ul>
<li><p>MQTT (Message Queuing Telemetry Transport): a light-weight transport protocol to exchange messages based on the subdivision of devices in publishers and subscribers, relying on a central broker that rules the exchange of telemetries in channels called topics. In our project, it's the heartbeat of the communication between the Arduino and ThingsBoard.</p>
</li>
<li><p>HTTP (HyperText Transport Protocol): a request/response protocol, relying on different types of calls (i.e. GET, POST, PUT). We used it to serve the web-based dashboards from the server to the Java app. While HTTP is natively insecure, it is possible to implement HTTPS to encrypt data between the server and the end-user, ensuring that corporate sensitive data remains protected from interceptions.</p>
</li>
</ul>
<p><img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/2agzctn2qv5fkqsz0f4f.png" alt="The modular architecture: bridging Java 23, MQTT and local AI." /></p>
<h2>IV. The Diorama: Bringing Code to Life</h2>
<p>To demonstrate bE-More during the showcase, we didn't just show a screen with code, we built a physical prototype. This diorama represents a typical office environment where our architecture could be tested in real-time.</p>
<h3>IV.I The Physical Implementation</h3>
<p>The diorama was designed to be a miniature office. We integrated the sensor and actuators directly into the structure to simulate a real-life installation:</p>
<ul>
<li><p><strong>The Main Workspace LEDs</strong>: Representing the lighting system, controlled by the Arduino.</p>
</li>
<li><p><strong>Status Feedback</strong>: A dedicated LED is used to indicate if the automatic mode is activated, while a Buzzer is used to signal acoustically when the mode is switched.</p>
</li>
<li><p><strong>Interactive Controls</strong>: Two physical buttons were placed on the Arduino Shell to allow the user to toggle between manual control and <strong>Autonomous Mode</strong>.</p>
</li>
</ul>
<h3>IV.II Circuitery in the Crafted Arduino Shell</h3>
<p><img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/ms40bj5amtncwew9jz6j.webp" alt="bE-More Circuit Diagram" /></p>
<p>The central point of the diorama is an <strong>Arduino</strong> microcontroller (Arduino UNO R4, to natively host Wi-Fi functionalities) that runs a deterministic logic to ensure energy saving without human intervention.</p>
<p><strong>The automation follows a simple rule</strong>:</p>
<ul>
<li><p><strong>Sensor Input</strong>: a photoresistor (connected to pin A3) continuously monitors the environments natural light.</p>
</li>
<li><p><strong>The Publishing</strong>: the Arduino automatically logins (registering can be both manual and automatic on the platoform) to the ThingsBoard MQTT broker, which stores data in the database of the platform.</p>
</li>
<li><p><strong>The Threshold</strong>: if the 'AUTO' mode is active and the natural light value exceeds a value of 450, the system automatically powers down the lighting system.</p>
</li>
</ul>
<h2>V. Conclusion: The Victory</h2>
<p>Thanks to the project and development process, where we found great synergies between the selected technologies, we developed a working product that could be installed in a real-life scenario.</p>
<p><strong>The Project Day 2025</strong> was an unforgettable experience, where the interest of the company representatives was the ultimate validation of our hard work. We were honored to be announced as winners, a title we shared with another brilliant project from our class (VIPRA, whose github repo can be found here).</p>
<p>This double victory proved that our school is a real nursery for innovation, where sustainability and technology meet to solve actual problems.</p>
<h2>VI. Extra: Future Possible Developments</h2>
<p><strong>1. Security (HTTPS)</strong></p>
<ul>
<li>While the initial web server used HTTP, a professional migration to HTTPS would be the next priority. By adding an SSL/TLS layer, we can encrypt all data between the server and the end-user, ensuring total privacy during delivery.</li>
</ul>
<p><strong>2. Artificial Intelligence</strong></p>
<ul>
<li>The local AI landscape has exploded since we first started. We could now enhance our analysis through:</li>
<li>↳ Prompt Engineering: refining the input prompts to make more accurate insights from telemetry.</li>
<li>↳ Llama 3: swapping to a more modern model to use better reasoning capabilities while keeping the same infrastructure.</li>
<li>↳ Ad Hoc AI Models: creating a custom-trained model based on specific analysis samples, allowing a fine-tuned weight balancing.</li>
</ul>
<p><strong>3. Actuators</strong></p>
<ul>
<li><p><strong>Decoupled Architecture</strong>: in the diorama, one Arduino handled both the sensor and actuator roles. In a real-life deployment, these would appear in separate devices distributed across different zones.</p>
</li>
<li><p><strong>ESP32 Board</strong>: for a final product, we would switch to ESP32 board, which include native Wi-Fi, smaller size and superior processing power.</p>
</li>
</ul>
<p><strong>4. Advanced MQTT Infrastructure</strong></p>
<ul>
<li>Currently, our implementation uses an unilateral MQTT flow for telemetry. Introducing an intermediary broker, such as Mosquitto, we would enable bi-directional communication, allowing for real-time analysis and immediate automated correction through actuators without the need to risk database integrity and injections.</li>
</ul>
<h2>VII. Bibliography and Project Links</h2>
<h3>VII.I The Project</h3>
<p><a href="https://github.com/GiZano/bE-More">GitHub (code)</a></p>
<h3>VII.II Bibliography</h3>
<p><a href="https://thingsboard.io/docs/getting-started-guides/what-is-thingsboard/">ThingsBoard</a>
<a href="https://it.wikipedia.org/wiki/Arduino_(hardware)">Arduino</a>
<a href="https://aws.amazon.com/it/what-is/mqtt/">MQTT</a>
<a href="https://www.ibm.com/docs/it/cics-ts/6.x?topic=concepts-http-protocol">HTTP</a>
<a href="https://www.geeksforgeeks.org/ollama-explained-transforming-ai-access%20ibility-and-language-processing/">Ollama</a>
<a href="https://mistral.ai/news/announcing-mistral-7b">Mistral:7b</a></p>
<h2>About the Author</h2>
<p><strong>GiZano</strong>: I am a BSc in CS at University of Pisa with a deep passion for IoT, local AI, and sustainable tech. As the lead architect of bE-More, I focus on building systems that bridge the gap between complex software and real-world environmental impact - always with a privacy-first mindset.</p>
<p>Beyond winning the Project Day 2025, I'm constantly exploring new ways to integrate modern stacks like Java 23, Python aiohttp and local LLMs into everyday life,</p>
<p>Let's connect!
<a href="https://www.linkedin.com/in/giovanni-zanotti-it/">Linkedin</a>
<a href="https://github.com/GiZano">GitHub</a>
<a href="https://giovanni-zanotti.is-a.dev/">Personal website</a></p>
<p><em>This article was originally published on <a href="https://medium.com/@gizano/winning-a-tech-contest-with-be-more-integrating-iot-and-local-ai-for-a-greener-office-f906ec921963">my Medium blog</a></em></p>
]]></content:encoded></item><item><title><![CDATA[Why High School is the Perfect Time to Start Contributing to Open Source]]></title><description><![CDATA[I. The Myth: I’m not ready…


My biggest fear before starting was the lack of experience. I used to think you had to be a senior software developer to even touch an Open Source project, let alone beco]]></description><link>https://gizano.hashnode.dev/why-high-school-is-the-perfect-time-to-start-contributing-to-open-source</link><guid isPermaLink="true">https://gizano.hashnode.dev/why-high-school-is-the-perfect-time-to-start-contributing-to-open-source</guid><category><![CDATA[Open Source]]></category><category><![CDATA[sympy]]></category><category><![CDATA[Python]]></category><category><![CDATA[Beginner Developers]]></category><dc:creator><![CDATA[Giovanni Zanotti]]></dc:creator><pubDate>Tue, 22 Sep 2026 12:00:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aad99c54335452e88cc118f/bec3f6cb-c730-46cf-b2d6-90aada567682.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>I. The Myth: I’m not ready…</h2>
<img src="https://cdn.hashnode.com/uploads/covers/6aad99c54335452e88cc118f/919d3b94-fc00-408a-ae20-44d29be56c9e.webp" alt="SymPy CLI Execution" style="display:block;margin:0 auto" />

<p>My biggest fear before starting was the lack of experience. I used to think you had to be a senior software developer to even touch an Open Source project, let alone become part of its community. I won’t lie, the first moments are the hardest. Opening a repository and seeing hundreds of thousands of lines of code is intimidating, and the urge to quit immediately is strong. I was convinced it would take me months to make my first contribution. But then, I explored the project’s issues and stumbled upon the “beginner-friendly” labels. Seeing those was the spark that changed my mindset: Wait, I can actually do this too.</p>
<h2>II. Choose the Project: why I chose SymPy</h2>
<img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/i864eqlmwxcyil014196.webp" alt="Math symbols on blackboard" style="display:block;margin:0 auto" />

<p>However, before making a contribution, you face the hardest decision: ‘Which project should I join?’. The answer is entirely up to you and what you love doing. Over the past few years, I’ve been diving deep into Python, and I have a genuine passion for mathematics. I really wanted to contribute under the Python Software Foundation umbrella, so I started exploring their projects. That’s when I stumbled upon SymPy, a Python library for symbolic math. Since I’ve always loved math at school, finding a project that perfectly merged my two biggest interests was an absolute goldmine.</p>
<h2>III. The contribution reality (Not only code!)</h2>
<img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/hy7b8bqj3at9rrzxz5ar.webp" alt="GitHub Codespace Window" style="display:block;margin:0 auto" />

<p>The reality of contributing is that you don’t need to sit down and read a massive codebase for hours before writing a single line. You just need to find a task within your reach! While browsing the open issues, I found one about adding type hints, and I knew that was my starting point. I focused on a few specific files, particularly in the solvers module, that clearly needed some work. The best part? I didn't even have to download the entire library locally. I simply spun up a GitHub-hosted environment to edit and run the code directly from my browser. I analyzed the functions' inputs and outputs to accurately define their parameters and return types. Sure, I ran into some conflicts, but dealing with them gets surprisingly easy once you learn how to read MyPy error logs. It might look intimidating from the outside, but in every big project, there is a perfect mix of simple and complex tasks just waiting to be tackled.</p>
<h2>IV. Where everything starts: the first Pull Request (PR)</h2>
<img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/67o95r488wx0gmlz0itt.webp" alt="My First Accepted PR" style="display:block;margin:0 auto" />

<p>As I mentioned earlier, the fear of not being experienced enough is real, and right after writing your first lines of code, that imposter syndrome might come rushing back. In open source, you can’t just push your code directly into the main project; it has to pass numerous automated tests and a code review. Mentors and reviewers can sometimes feel like unreachable giants, sitting there with a red marker ready to judge your work. But the reality is completely different: they are just developers like us who once started from scratch too. Most of the time, they are there to guide you and point out what needs improvement. Getting corrections doesn’t mean you aren’t welcome! It just means you need to iterate and adjust your work until it’s ready for a “Merge” — the moment your code officially joins the project. After some back-and-forth, fixing things, and learning a ton from my mentor’s feedback, my code was finally approved. And that is when the ultimate satisfaction hits: seeing that beautiful purple [MERGED] badge appear on your Pull Request. You can finally take a deep breath and say, 'I did it!'. Sure, a single PR might not change the world, but knowing your code is now part of something much bigger is an incredible feeling.</p>
<h2>V. Open Source: everybody’s duty</h2>
<img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/pnihq8q2rgnjk65lv2kz.webp" alt="Obtainable Skills" style="display:block;margin:0 auto" />

<p>It might seem like the Open Source world is completely out of reach for high schoolers, but the reality is the exact opposite! Contributing to an Open Source project teaches you crucial skills that you simply won’t learn in a traditional classroom:</p>
<ul>
<li><p>Navigating Git on massive, real-world projects</p>
</li>
<li><p>Practicing technical English by communicating with international mentors and peers</p>
</li>
<li><p>Working with GitHub Actions (CI/CD) and strictly following formatting standards</p>
</li>
</ul>
<p>But beyond the technical skills, contributing to Open Source feels like a moral duty. It’s our way of giving something back to the giant sea of free libraries and tools that we rely on every single day to build our own projects!</p>
<h2>VI. Conclusion</h2>
<img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/ulwfhvtz6z0iw3qjrqmo.webp" alt="GSoC Logo" style="display:block;margin:0 auto" />

<p>Whether you are a high school student or anyone else looking to learn — you don’t need a fancy title to start contributing. Now is the perfect time! Hop on GitHub, do a quick search, and look for repositories with ‘good first issue’ or ‘beginner-friendly’ tags. The fix might seem small, but landing that first PR will give you the momentum you need to eventually tackle much bigger challenges. For me, this was just the first step on an exciting new path: I have officially submitted my proposal for the Google Summer of Code 2026! I’m hoping to spend my summer diving even deeper into SymPy. Fingers crossed!</p>
<h2>VII. About the Author</h2>
<p>Hi, I’m GiZano! I am a BSc in CS at University of Pisa, deeply passionate about IoT, local AI, and sustainable technology. As an active Open Source contributor, my goal is to dive deeper into the FOSS (Free and Open-Source Software) world and help make tech accessible to anyone.</p>
<p>Let's connect! <a href="https://www.linkedin.com/in/giovanni-zanotti-it/">Linkedin</a> <a href="https://github.com/GiZano">GitHub</a> <a href="https://giovanni-zanotti.is-a.dev/">Personal website</a></p>
<p><em>This article was originally published on</em> <a href="https://medium.com/@gizano/why-high-school-is-the-perfect-time-to-start-contributing-to-open-source-83f364d77f22"><em>my Medium blog</em></a><em>.</em></p>
]]></content:encoded></item></channel></rss>