<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gurinayat Kaur Mangat</title>
    <description>The latest articles on DEV Community by Gurinayat Kaur Mangat (@gurinayat_kaurmangat_27d).</description>
    <link>https://dev.to/gurinayat_kaurmangat_27d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4155664%2Fa93854fb-3ab9-4d8b-bbc6-22982ab6166d.png</url>
      <title>DEV Community: Gurinayat Kaur Mangat</title>
      <link>https://dev.to/gurinayat_kaurmangat_27d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gurinayat_kaurmangat_27d"/>
    <language>en</language>
    <item>
      <title>I kept forgetting about my cactus…</title>
      <dc:creator>Gurinayat Kaur Mangat</dc:creator>
      <pubDate>Fri, 23 Oct 2026 17:29:01 +0000</pubDate>
      <link>https://dev.to/gurinayat_kaurmangat_27d/i-kept-forgetting-about-my-cactus-1866</link>
      <guid>https://dev.to/gurinayat_kaurmangat_27d/i-kept-forgetting-about-my-cactus-1866</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;SlothPlant is a plant caretaker for people who forget their plants. An Arduino UNO R4 WiFi watches the soil moisture of my cactus, and a small open-weight model running on my laptop reads the readings and writes a sleepy two-line message to my phone, but only when the plant actually needs me.&lt;/p&gt;

&lt;p&gt;It saves me the chore of remembering to check on the plant. I never look at it; it quietly checks itself and speaks up when it matters. A cactus is also the ultimate sloth plant, since it barely needs anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here's SlothPlant watching my cactus, with the soil sensor in the pot and wired to the Arduino's &lt;code&gt;A0&lt;/code&gt; pin:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqyo87r1qv08xo3yhisxg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqyo87r1qv08xo3yhisxg.jpeg" alt=" " width="800" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And here's the notification that arrived on my phone when the soil read dry:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2d4bvuii11n3s2ze5i5u.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2d4bvuii11n3s2ze5i5u.jpeg" alt=" " width="800" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/gkm2004" rel="noopener noreferrer"&gt;
        gkm2004
      &lt;/a&gt; / &lt;a href="https://github.com/gkm2004/slothplant" rel="noopener noreferrer"&gt;
        slothplant
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;SlothPlant 🦥🌱&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A plant caretaker for people who forget their plants. An Arduino watches the soil all day, a small open-weight model running &lt;strong&gt;locally&lt;/strong&gt; reads the readings, and your phone gets a sleepy two-line message only when the plant actually needs you.&lt;/p&gt;
&lt;p&gt;Built for the Hacktoberfest Open-Source AI Challenge (Week 3: Sloth Day). It grew out of a class assignment on Arduino, and the open-source AI part was built this week.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How it works&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;Soil sensor -&amp;gt; Arduino UNO R4 WiFi -&amp;gt; Flask server (laptop) -&amp;gt; Ollama (gemma3:1b) -&amp;gt; ntfy -&amp;gt; your phone
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;The Arduino reads the soil moisture sensor every few seconds and sends the value over WiFi.&lt;/li&gt;
&lt;li&gt;A small Flask server saves each reading to &lt;code&gt;readings.csv&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;On a schedule, the server looks at recent readings and works out the trend.&lt;/li&gt;
&lt;li&gt;A local open-weight model (&lt;code&gt;gemma3:1b&lt;/code&gt; through Ollama) writes the plant's message and judges borderline cases.&lt;/li&gt;
&lt;li&gt;The…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/gkm2004/slothplant" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;MIT licensed, with setup steps in the README.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The pipeline: soil sensor → Arduino UNO R4 WiFi → Flask server on my laptop → Ollama running &lt;code&gt;gemma3:1b&lt;/code&gt; → ntfy → my phone.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open-source AI:&lt;/strong&gt; &lt;code&gt;gemma3:1b&lt;/code&gt;, an open-weight model, runs locally through Ollama. It writes every plant message in a sleepy, sloth-like voice and judges borderline cases from the recent trend. It runs fine on my 8 GB laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rules plus model:&lt;/strong&gt; My first version let the model make every decision, and it confidently said "QUIET" while the soil was clearly dry. Small models turned out to be better at voice than at yes/no decisions. Now simple rules handle the obvious cases (clearly dry, clearly fine), and the model handles the in-between zone and writes the messages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Along the way:&lt;/strong&gt; Public campus WiFi blocked the Arduino from reaching my laptop, so I switched to a phone hotspot. I also hit a broken &lt;code&gt;pip&lt;/code&gt; path on Windows and got around it by calling &lt;code&gt;python -m pip&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Where it came from:&lt;/strong&gt; This started as a class assignment where the Arduino just beeped when the soil was dry. The WiFi, server, and open-source AI parts were built this week in a new repo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Because the model runs on my own laptop, my data never leaves it. There are no API keys, no usage fees, and nothing that stops working if a service changes its pricing. A project like this is tiny, a $30 board and a free model sending a few messages a day, and a closed API would turn it into a recurring cost for almost no work. Open weights also let me pick a model small enough for a student laptop and swap it later without rewriting anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;During testing, my first "thirsty" notification arrived without me checking on anything, which was the whole point. I'm still tuning it: my thresholds are placeholders from class testing, and a cactus likes dry soil, so it can ask for water more than it should. Next steps are per-plant tuning, or telling the model the plant is a cactus so it asks far less often.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
