<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Vibe Coding Fun Series on VibeRX360 Fun - 用 AI 做有趣的事</title>
    <link>https://viberx360.com/blog/tags/vibe-coding-fun-series/</link>
    <description>Recent content in Vibe Coding Fun Series on VibeRX360 Fun - 用 AI 做有趣的事</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <lastBuildDate>Fri, 07 Nov 2025 18:56:18 +0800</lastBuildDate><atom:link href="https://viberx360.com/blog/tags/vibe-coding-fun-series/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Coffee Shop Battery Detective: A Weekend Vibe Coding Story</title>
      <link>https://viberx360.com/blog/en/lifestyle/vibe-coding-battery-adventure/</link>
      <pubDate>Fri, 07 Nov 2025 18:56:18 +0800</pubDate>
      
      <guid>https://viberx360.com/blog/en/lifestyle/vibe-coding-battery-adventure/</guid>
      <description>One weekend, one pocket computer, one cup of coffee - solving a 4G crash issue that plagued the community for months. This is the magic of Vibe Coding.</description>
      <content:encoded><![CDATA[<h2 id="from-it-crashed-again-to-i-know-why">From &ldquo;It Crashed Again&rdquo; to &ldquo;I Know Why&rdquo;</h2>
<p>Ever had that experience? Your device has an annoying problem, forum discussions go in circles, but nobody really knows the answer. You think: &ldquo;Can I figure this out myself?&rdquo;</p>
<p>This is my story with the <a href="https://www.clockworkpi.com/uconsole">ClockworkPi uConsole</a>. A pocket-sized Linux computer, clamshell form factor, mechanical keyboard, fits in your backpack - a hacker&rsquo;s dream. But it had a critical problem:</p>
<p><strong>Enable 4G module + battery power = random system freeze</strong></p>
<p>The only fix? Remove battery, restart. Repeat.</p>
<h2 id="vibe-coding-begins-coffee-shop--portable-device--curiosity">Vibe Coding Begins: Coffee Shop + Portable Device + Curiosity</h2>
<p>One weekend afternoon, sitting in a coffee shop, staring at my crashed uConsole again, I had a thought:</p>
<blockquote>
<p>What if I build the diagnostic tools directly on this device? No waiting to get home, no desktop workstation - just here, using the device experiencing the problem to solve its own problem.</p>
</blockquote>
<p>Sounds a bit crazy, but also fun. So I started.</p>
<img src="/images/lifestyle/vibe-coding-battery-adventure/uconsole-debugging-4g.jpg" alt="Debugging the 4G modem issue on uConsole itself" />
<p><em>Building the solution on the device experiencing the problem - true vibe coding in action</em></p>
<h3 id="the-toolkit-was-simple">The Toolkit Was Simple</h3>
<ul>
<li><strong>The uConsole itself</strong> (on battery power, running Ubuntu)</li>
<li><strong>Claude Code</strong> (AI-assisted development, letting me focus on problem-solving instead of syntax details)</li>
<li><strong>Next.js + TypeScript</strong> (rapid prototyping, hot reload, instant feedback)</li>
<li><strong>A cup of coffee</strong> (essential!)</li>
</ul>
<p>No complex lab equipment. No expensive oscilloscope. Just these.</p>
<h2 id="the-joy-of-building-real-time-monitoring--problem-discovery">The Joy of Building: Real-time Monitoring → Problem Discovery</h2>
<p>Step one: I need to see what&rsquo;s actually happening to the battery.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Start dev server</span>
</span></span><span class="line"><span class="cl">npm run dev
</span></span></code></pre></td></tr></table>
</div>
</div><p>Minutes later, a simple web interface appeared:</p>
<ul>
<li>Real-time voltage</li>
<li>Real-time current</li>
<li>Real-time power</li>
<li>Real-time battery percentage</li>
</ul>
<p>Live-updating charts dancing in the browser. I enable the 4G module, watch the screen&hellip;</p>
<p><strong>Voltage dropped!</strong> From 3.7V straight down below 3.4V.</p>
<p>&ldquo;Wait, this isn&rsquo;t a power issue, it&rsquo;s a <strong>voltage</strong> issue!&rdquo;</p>
<h2 id="following-the-trail-datasheets-dont-lie">Following the Trail: Datasheets Don&rsquo;t Lie</h2>
<p>After some searching, I found the SIM7600G-H 4G module specs:</p>
<ul>
<li>Operating voltage range: 3.4V ~ 4.2V</li>
<li><strong>Minimum safe voltage: ~3.45V</strong></li>
<li>Peak current: up to 2A during transmission</li>
</ul>
<p>The mystery solved:</p>
<ol>
<li>4G module suddenly draws 2A current</li>
<li>Battery internal resistance causes voltage to sag instantly</li>
<li>Voltage drops below 3.45V → module brownout</li>
<li>USB bus hangs → system freeze</li>
<li>Only battery removal resets it</li>
</ol>
<p><strong>Key insight:</strong> It&rsquo;s not about battery capacity, it&rsquo;s about voltage dropping too fast.</p>
<h2 id="the-deeper-discovery-half-your-battery-is-unusable">The Deeper Discovery: Half Your Battery Is Unusable</h2>
<p>I dug deeper, running a complete discharge test:</p>
<ul>
<li>From 100% to nearly 0%</li>
<li>Recording voltage, current, energy every second</li>
<li>Total of 4,318 data points over 2 hours 48 minutes</li>
</ul>
<p>Then I plotted: <strong>Energy Output vs Voltage</strong>, with a red line at 3.45V.</p>
<img src="/images/lifestyle/vibe-coding-battery-adventure/feb4000-energy-output-with-threshold.jpg" alt="Battery Energy Output vs Voltage with 3.45V Threshold" />
<p><em>The red line shows the 4G module&rsquo;s minimum voltage. Everything to the right is unusable for 4G connectivity.</em></p>
<p>The shocking result:</p>
<ul>
<li>Total battery capacity: 24.79 Wh</li>
<li><strong>Usable above 3.45V</strong>: 13.39 Wh (54%)</li>
<li><strong>Unusable below 3.45V</strong>: 11.40 Wh (46%)</li>
</ul>
<p>In other words: <strong>For reliable 4G operation, you can only use about half your battery capacity.</strong> The remaining 40-50%? Still there, but useless for 4G.</p>
<h3 id="complete-discharge-data">Complete Discharge Data</h3>
<img src="/images/lifestyle/vibe-coding-battery-adventure/feb4000-battery-percentage.jpg" alt="FEB-4000 Battery Percentage" />
<p><em>Complete discharge curve from 100% to ~2%</em></p>
<img src="/images/lifestyle/vibe-coding-battery-adventure/feb4000-voltage-current.jpg" alt="FEB-4000 Voltage and Current" />
<p><em>Voltage drop and current spike patterns</em></p>
<h2 id="the-solution-smart-power-management">The Solution: Smart Power Management</h2>
<p>With the root cause identified, the fix became obvious:</p>
<p><strong>Reduce current draw → Less voltage sag → Stay above 3.45V</strong></p>
<p>I wrote an automated script:</p>
<ul>
<li>Detect when 4G module is active</li>
<li>Detect when running on battery</li>
<li>If both true: Reduce CPU frequency to 1.8GHz (from 2.4GHz)</li>
<li>Lower power = less current = stable voltage</li>
</ul>
<p>Test results:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">Before: CM5 @ 2.4GHz + 4G + battery = voltage &lt; 3.45V → crash ❌
</span></span><span class="line"><span class="cl">After:  CM5 @ 1.8GHz + 4G + battery = voltage &gt; 3.45V → stable ✓
</span></span></code></pre></td></tr></table>
</div>
</div><p>Problem solved!</p>
<h2 id="why-this-is-vibe-coding">Why This Is Vibe Coding</h2>
<p>Looking back, what excites me most isn&rsquo;t just solving the problem (though that&rsquo;s great), but <strong>the process itself</strong>:</p>
<h3 id="zero-context-switching">Zero Context Switching</h3>
<ul>
<li>Problem is on this device</li>
<li>Solution is built on this device</li>
<li>Testing runs on this device</li>
<li>Everything in one place, one moment</li>
</ul>
<h3 id="instant-feedback">Instant Feedback</h3>
<ul>
<li>Change code → Save → Browser auto-refreshes → See results</li>
<li>From idea to validation in seconds</li>
<li>No compile wait, no deployment steps</li>
</ul>
<h3 id="location-freedom">Location Freedom</h3>
<ul>
<li>Coffee shop</li>
<li>Park bench</li>
<li>On the train</li>
<li>On the couch</li>
</ul>
<p>Anywhere with WiFi and power (or a charged battery), becomes your lab.</p>
<h3 id="ai-assisted-joy">AI-Assisted Joy</h3>
<ul>
<li>Claude Code helps scaffold quickly</li>
<li>No wrestling with syntax details</li>
<li>Focus on the problem essence</li>
<li>Faster iterations, more experimentation</li>
</ul>
<h2 id="this-isnt-just-for-programmers">This Isn&rsquo;t Just for Programmers</h2>
<p>Ten years ago, solving this would require:</p>
<ul>
<li>An engineering lab</li>
<li>Thousands of dollars in test equipment</li>
<li>Cross-compilation toolchains</li>
<li>Days of setup time</li>
</ul>
<p>Today? A $200 pocket computer and one focused weekend.</p>
<p><strong>This means more people can:</strong></p>
<ul>
<li>Tinker with battery-powered projects</li>
<li>Debug hardware issues</li>
<li>Test and compare battery performance</li>
<li>Fix device problems on-site</li>
<li>Learn by building, see results immediately</li>
</ul>
<p>The barrier to DIY problem-solving just collapsed.</p>
<h2 id="open-source-try-it-yourself">Open Source, Try It Yourself</h2>
<p>The entire project is open source (GPL v3):</p>
<p><strong>Repository:</strong> <a href="https://hiwifi.denq.us:8418/denq/battery-monitor">battery-monitor</a></p>
<p><strong>Quick Start:</strong></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git clone https://hiwifi.denq.us:8418/denq/battery-monitor.git
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> battery-monitor
</span></span><span class="line"><span class="cl">npm install
</span></span><span class="line"><span class="cl">npm run dev  <span class="c1"># Visit http://localhost:3000</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Install smart power management (optional)</span>
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> scripts
</span></span><span class="line"><span class="cl">sudo ./install-uconsole-power-regulator.sh install
</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>What you get:</strong></p>
<ul>
<li>Real-time battery monitoring dashboard</li>
<li>Voltage/current/power charts</li>
<li>Discharge curve analysis (Energy vs Voltage)</li>
<li>3.45V threshold visualization</li>
<li>Smart power regulator (auto frequency scaling)</li>
<li>Session recording and data export</li>
</ul>
<h2 id="the-joy-of-building">The Joy of Building</h2>
<p>Building the solution on the device experiencing the problem - there&rsquo;s something special about that.</p>
<p>No &ldquo;I&rsquo;ll fix this later.&rdquo; No &ldquo;when I have time.&rdquo; Just now, right here, solving it directly.</p>
<p>The uConsole now runs stably on battery with 4G active. The community understands why some batteries work better. The entire solution was built in one fun weekend.</p>
<p><strong>This is Vibe Coding:</strong></p>
<ul>
<li>With curiosity</li>
<li>When inspiration strikes</li>
<li>Wherever you&rsquo;re comfortable</li>
<li>Using modern tools and AI assistance</li>
<li>Building what you need</li>
</ul>
<p>Not because you must, but because you <strong>can</strong>, because it&rsquo;s <strong>fun</strong>.</p>
<p>The tools exist. The hardware is affordable. AI assistants are ready.</p>
<p>The only question is: Are you ready to start your Vibe Coding journey?</p>
<hr>
<h2 id="community-impact">Community Impact</h2>
<p><strong>Share Your Results:</strong></p>
<ul>
<li>Test your batteries with the discharge curve tool</li>
<li>Share findings in forums</li>
<li>Help build the community battery database</li>
</ul>
<p><strong>Questions? Want to contribute?</strong></p>
<ul>
<li>ClockworkPi Forum: <a href="https://forum.clockworkpi.com/c/uconsole">https://forum.clockworkpi.com/c/uconsole</a></li>
<li>Gitea Issues: <a href="https://hiwifi.denq.us:8418/denq/battery-monitor/issues">https://hiwifi.denq.us:8418/denq/battery-monitor/issues</a></li>
</ul>
<hr>
<p><em>This article is part of the <strong>Vibe Coding Fun Series</strong>, documenting real projects built on portable devices. Follow along to see what happens when development becomes truly mobile.</em></p>
<p><strong>Coming next:</strong> Generating travel posters with AI in five minutes at a coffee shop</p>
<hr>
<p><strong>License:</strong> GPL v3</p>
<p><strong>Project link:</strong> <a href="https://hiwifi.denq.us:8418/denq/battery-monitor">battery-monitor on Gitea</a></p>
]]></content:encoded>
    </item>
    
    <item>
      <title>咖啡馆里的电池探险：一个周末的 Vibe Coding 故事</title>
      <link>https://viberx360.com/blog/lifestyle/%E5%92%96%E5%95%A1%E9%A6%86%E9%87%8C%E7%9A%84%E7%94%B5%E6%B1%A0%E6%8E%A2%E9%99%A9%E4%B8%80%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84-vibe-coding-%E6%95%85%E4%BA%8B/</link>
      <pubDate>Fri, 07 Nov 2025 18:56:12 +0800</pubDate>
      
      <guid>https://viberx360.com/blog/lifestyle/%E5%92%96%E5%95%A1%E9%A6%86%E9%87%8C%E7%9A%84%E7%94%B5%E6%B1%A0%E6%8E%A2%E9%99%A9%E4%B8%80%E4%B8%AA%E5%91%A8%E6%9C%AB%E7%9A%84-vibe-coding-%E6%95%85%E4%BA%8B/</guid>
      <description>一个周末、一台口袋电脑、一杯咖啡，就这样解决了困扰社区数月的 4G 死机问题。这就是 Vibe Coding 的魅力。</description>
      <content:encoded><![CDATA[<h2 id="从这玩意儿又卡死了到我知道原因了">从&quot;这玩意儿又卡死了&quot;到&quot;我知道原因了&quot;</h2>
<p>你有过这样的经历吗？某个设备有个恼人的问题，论坛上众说纷纭，但没人真正知道答案。你想：&ldquo;我能不能自己搞清楚？&rdquo;</p>
<p>这就是我和 <a href="https://www.clockworkpi.com/uconsole">ClockworkPi uConsole</a> 的故事。一台口袋大小的 Linux 电脑，翻盖外壳，机械键盘，可以塞进背包——黑客的梦想。但它有个致命问题：</p>
<p><strong>开启 4G 模块 + 用电池供电 = 随机死机</strong></p>
<p>唯一的解决办法？拆掉电池，重启。再来一次。</p>
<h2 id="vibe-coding-的开始咖啡馆--便携设备--好奇心">Vibe Coding 的开始：咖啡馆 + 便携设备 + 好奇心</h2>
<p>某个周末下午，坐在咖啡馆里，我盯着又一次死机的 uConsole，突然有个想法：</p>
<blockquote>
<p>如果我直接在这台设备上构建诊断工具呢？不等回家，不用台式机，就在这里，用遇到问题的设备来解决它自己的问题。</p>
</blockquote>
<p>听起来有点疯狂，但也很有趣。于是我开始了。</p>
<img src="/images/lifestyle/vibe-coding-battery-adventure/uconsole-debugging-4g.jpg" alt="在 uConsole 上调试 4G 调制解调器问题" />
<p><em>在遇到问题的设备上构建解决方案——真正的 vibe coding 实践</em></p>
<h3 id="工具箱很简单">工具箱很简单</h3>
<ul>
<li><strong>uConsole 本身</strong>（用电池供电，运行 Ubuntu）</li>
<li><strong>Claude Code</strong>（AI 辅助开发，让我专注解决问题而不是语法细节）</li>
<li><strong>Next.js + TypeScript</strong>（快速原型，热重载，立即看到效果）</li>
<li><strong>一杯咖啡</strong>（重要！）</li>
</ul>
<p>没有复杂的实验室设备。没有昂贵的示波器。就是这些。</p>
<h2 id="构建中的乐趣实时监控--发现问题">构建中的乐趣：实时监控 → 发现问题</h2>
<p>第一步：我需要看到电池到底发生了什么。</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># 开发服务器启动</span>
</span></span><span class="line"><span class="cl">npm run dev
</span></span></code></pre></td></tr></table>
</div>
</div><p>几分钟后，一个简单的 Web 界面出现了：</p>
<ul>
<li>实时电压</li>
<li>实时电流</li>
<li>实时功率</li>
<li>实时电池百分比</li>
</ul>
<p>每秒更新的图表在浏览器里跳动。我开启 4G 模块，盯着屏幕&hellip;</p>
<p><strong>电压掉了！</strong> 从 3.7V 直接掉到 3.4V 以下。</p>
<p>&ldquo;等等，这不是功率问题，是<strong>电压</strong>问题！&rdquo;</p>
<h2 id="追根溯源数据手册不会说谎">追根溯源：数据手册不会说谎</h2>
<p>一番搜索后，我找到了 SIM7600G-H 4G 模块的规格表：</p>
<ul>
<li>工作电压范围：3.4V ~ 4.2V</li>
<li><strong>最低安全电压：约 3.45V</strong></li>
<li>峰值电流：传输时可达 2A</li>
</ul>
<p>谜底揭晓了：</p>
<ol>
<li>4G 模块突然抽取 2A 电流</li>
<li>电池内阻导致电压瞬间下降</li>
<li>电压低于 3.45V → 模块欠压</li>
<li>USB 总线挂起 → 系统死机</li>
<li>只能拆电池重启</li>
</ol>
<p><strong>关键洞察：</strong> 不是电池容量不够，是电压降得太快。</p>
<h2 id="更深的发现你的电池有一半用不上">更深的发现：你的电池有一半用不上</h2>
<p>我继续深挖，做了一个完整的放电测试：</p>
<ul>
<li>从 100% 放电到接近 0%</li>
<li>每秒记录电压、电流、能量</li>
<li>总共记录了 4,318 个数据点，跨度 2 小时 48 分钟</li>
</ul>
<p>然后我画了一张图：<strong>能量输出 vs 电压</strong>，并在 3.45V 处划了一条红线。</p>
<img src="/images/lifestyle/vibe-coding-battery-adventure/feb4000-energy-output-with-threshold.jpg" alt="电池能量输出 vs 电压（带 3.45V 阈值）" />
<p><em>红线显示 4G 模块的最低电压。右侧的所有内容都无法用于 4G 连接。</em></p>
<p>结果令人震惊：</p>
<ul>
<li>电池总容量：24.79 Wh</li>
<li><strong>3.45V 以上可用</strong>：13.39 Wh（54%）</li>
<li><strong>3.45V 以下不可用</strong>：11.40 Wh（46%）</li>
</ul>
<p>换句话说：<strong>对于 4G 操作，你只能用约一半的电池容量。</strong> 剩下的 40-50%？电量还在，但对 4G 来说毫无意义。</p>
<h3 id="完整的放电数据">完整的放电数据</h3>
<img src="/images/lifestyle/vibe-coding-battery-adventure/feb4000-battery-percentage.jpg" alt="FEB-4000 电池百分比" />
<p><em>完整的放电曲线从 100% 到约 2%</em></p>
<img src="/images/lifestyle/vibe-coding-battery-adventure/feb4000-voltage-current.jpg" alt="FEB-4000 电压和电流" />
<p><em>电压下降和电流峰值模式</em></p>
<h2 id="解决方案智能电源管理">解决方案：智能电源管理</h2>
<p>既然知道了原因，修复就很简单：</p>
<p><strong>降低电流消耗 → 减少电压下降 → 保持在 3.45V 以上</strong></p>
<p>我写了一个自动化脚本：</p>
<ul>
<li>检测 4G 模块是否激活</li>
<li>检测是否使用电池供电</li>
<li>如果两者都是：CPU 降频到 1.8GHz（从 2.4GHz）</li>
<li>更低的功耗 = 更少的电流 = 稳定的电压</li>
</ul>
<p>测试结果：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">之前：CM5 @ 2.4GHz + 4G + 电池 = 电压 &lt; 3.45V → 死机 ❌
</span></span><span class="line"><span class="cl">之后：CM5 @ 1.8GHz + 4G + 电池 = 电压 &gt; 3.45V → 稳定运行 ✓
</span></span></code></pre></td></tr></table>
</div>
</div><p>问题解决了！</p>
<h2 id="为什么这是-vibe-coding">为什么这是 Vibe Coding？</h2>
<p>回想整个过程，最让我兴奋的不是解决了问题（虽然这也很爽），而是<strong>过程本身</strong>：</p>
<h3 id="零上下文切换">零上下文切换</h3>
<ul>
<li>问题在这台设备上</li>
<li>解决方案在这台设备上构建</li>
<li>测试在这台设备上运行</li>
<li>一切都在同一个地方，同一时刻</li>
</ul>
<h3 id="即时反馈">即时反馈</h3>
<ul>
<li>改代码 → 保存 → 浏览器自动刷新 → 看到结果</li>
<li>从想法到验证只需几秒钟</li>
<li>没有编译等待，没有部署流程</li>
</ul>
<h3 id="地点自由">地点自由</h3>
<ul>
<li>咖啡馆</li>
<li>公园长椅</li>
<li>火车上</li>
<li>沙发上</li>
</ul>
<p>只要有 WiFi 和电源（或充满电的电池），哪里都是实验室。</p>
<h3 id="ai-辅助的乐趣">AI 辅助的乐趣</h3>
<ul>
<li>Claude Code 帮我快速搭建框架</li>
<li>不用纠结语法细节</li>
<li>专注于问题本质</li>
<li>更快的迭代，更多的尝试</li>
</ul>
<h2 id="这不只是给程序员的">这不只是给程序员的</h2>
<p>十年前，解决这种问题需要：</p>
<ul>
<li>工程实验室</li>
<li>数千美元的测试设备</li>
<li>交叉编译工具链</li>
<li>数天的准备时间</li>
</ul>
<p>今天？一台 200 美元的口袋电脑，一个专注的周末，就够了。</p>
<p><strong>这意味着更多人可以：</strong></p>
<ul>
<li>折腾电池供电的项目</li>
<li>调试硬件问题</li>
<li>测试和比较电池性能</li>
<li>在现场解决设备问题</li>
<li>边学边做，立即看到结果</li>
</ul>
<p>自己动手解决问题的门槛，正在快速降低。</p>
<h2 id="开源欢迎尝试">开源，欢迎尝试</h2>
<p>整个项目都是开源的（GPL v3）：</p>
<p><strong>项目地址：</strong> <a href="https://hiwifi.denq.us:8418/denq/battery-monitor">battery-monitor</a></p>
<p><strong>快速开始：</strong></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git clone https://hiwifi.denq.us:8418/denq/battery-monitor.git
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> battery-monitor
</span></span><span class="line"><span class="cl">npm install
</span></span><span class="line"><span class="cl">npm run dev  <span class="c1"># 访问 http://localhost:3000</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 安装智能电源管理（可选）</span>
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> scripts
</span></span><span class="line"><span class="cl">sudo ./install-uconsole-power-regulator.sh install
</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>你会得到：</strong></p>
<ul>
<li>实时电池监控仪表盘</li>
<li>电压/电流/功率图表</li>
<li>放电曲线分析（能量 vs 电压）</li>
<li>3.45V 阈值可视化</li>
<li>智能电源调节器（自动降频保护）</li>
<li>会话记录和数据导出</li>
</ul>
<h2 id="构建的乐趣">构建的乐趣</h2>
<p>在遇到问题的设备上构建解决方案，这种感觉很特别。</p>
<p>没有&quot;回头再说&quot;。没有&quot;等我有时间&quot;。就是现在，就在这里，直接解决。</p>
<p>uConsole 现在可以稳定地在电池供电下使用 4G 了。社区也理解了为什么某些电池更好用。整个解决方案在一个有趣的周末完成。</p>
<p><strong>这就是 Vibe Coding：</strong></p>
<ul>
<li>带着好奇心</li>
<li>在灵感迸发时</li>
<li>在任何让你舒服的地方</li>
<li>用现代工具和 AI 辅助</li>
<li>构建你需要的东西</li>
</ul>
<p>不是因为必须，而是因为<strong>可以</strong>，因为<strong>好玩</strong>。</p>
<p>工具已经存在。硬件价格实惠。AI 助手随时待命。</p>
<p>唯一的问题是：你准备好开始你的 Vibe Coding 之旅了吗？</p>
<hr>
<h2 id="社区反响">社区反响</h2>
<p><strong>分享你的结果：</strong></p>
<ul>
<li>用放电曲线工具测试你的电池</li>
<li>在论坛分享你的发现</li>
<li>帮助完善社区电池数据库</li>
</ul>
<p><strong>有问题？想贡献代码？</strong></p>
<ul>
<li>ClockworkPi 论坛：<a href="https://forum.clockworkpi.com/c/uconsole">https://forum.clockworkpi.com/c/uconsole</a></li>
<li>Gitea Issues：<a href="https://hiwifi.denq.us:8418/denq/battery-monitor/issues">https://hiwifi.denq.us:8418/denq/battery-monitor/issues</a></li>
</ul>
<hr>
<p><em>本文是 <strong>Vibe Coding Fun Series</strong> 的一部分，记录在便携设备上构建真实项目的故事。关注我们，看看当开发真正变得移动化时会发生什么。</em></p>
<p><strong>下一篇预告：</strong> 在咖啡馆用 AI 五分钟生成旅行海报</p>
<hr>
<p><strong>许可证：</strong> GPL v3</p>
<p><strong>项目链接：</strong> <a href="https://hiwifi.denq.us:8418/denq/battery-monitor">battery-monitor on Gitea</a></p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
