Added fragments annimation

This commit is contained in:
choelzl 2022-05-05 23:06:27 +02:00
parent 1ac4732d55
commit fe9f95271e
Signed by: sora
GPG Key ID: A362EA0491E2EEA0
2 changed files with 53 additions and 57 deletions

BIN
dist/img/metrum.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

View File

@ -21,14 +21,14 @@
<img src="https://static.slid.es/reveal/logo-v1/reveal-white-text.svg" alt="reveal.js logo" style="height: 180px; margin: 0 auto 4rem auto; background: transparent;" class="demo-logo">
</a> -->
<h3>METESP</h3>
<img src="dist/img/build.jpg" alt="System Diagram" style="height: 300px; margin: 0 auto 4rem auto; background: transparent;" class="demo-logo">
<br/><small>A measurement station by <a href="http://helcel.net/bio">Cedric Hölzl</a></small>
<img src="dist/img/build.jpg" alt="System Diagram" style="height: 300px; margin: 0 auto 4rem auto; background: transparent;border-radius:15px" class="demo-logo">
<br/><small class="fragment">A measurement station by <a href="http://helcel.net/bio">Cedric Hölzl</a></small>
</section>
<section>
<h2>Goal</h2>
<p>Build an environment quality monitor.</p>
<p>
<small>Powered by FreeRTOS, a low power IOT device</small>
<small class="fragment">Powered by FreeRTOS, and a low power IOT device</small>
</p>
</section>
<section>
@ -41,8 +41,8 @@
<a href="https://www.espressif.com/"><img src="dist/img/espressif.svg" alt="ESPressif" style="height: 100px; margin: 0 auto 4rem auto; background: transparent;" class="demo-logo"/></a>
<small><ul>
<li>Low power, dual-core processor</li>
<li>C/C++ & FreeRTOS support</li>
<li>WiFi & BLE support</li>
<li class="fragment">C/C++ & FreeRTOS support</li>
<li class="fragment">WiFi & BLE support</li>
</ul></small>
</section>
<section>
@ -51,10 +51,10 @@
<small><ul>
<li>BM280: temperature, humidity & pressure</li>
<li>SGP40: Volatile Organic Compounds (VOC)</li>
<li>LTR390-UV-1: UV</li>
<li>TSL25911: ambient light (infrared & visible)</li>
<li>PMSA003I : particle concentration by size</li>
<li class="fragment">SGP40: Volatile Organic Compounds (VOC)</li>
<li class="fragment">LTR390-UV-1: UV</li>
<li class="fragment">TSL25911: ambient light (infrared & visible)</li>
<li class="fragment">PMSA003I : particle concentration by size</li>
</ul></small>
</section>
<section>
@ -63,9 +63,9 @@
<small><ul>
<li>GT1151: Touch</li>
<li>Multiple views of live data</li>
<li>Low power consumption</li>
<li>User interaction</li>
<li class="fragment">Multiple views of live data</li>
<li class="fragment">Low power consumption</li>
<li class="fragment">User interaction</li>
</ul></small>
</section>
<section>
@ -74,8 +74,8 @@
<small><ul>
<li>Exterior realtime data source</li>
<li>Free API access</li>
<li>+200'000 cities</li>
<li class="fragment">Free API access</li>
<li class="fragment">+200'000 cities</li>
</ul></small>
</section>
<section>
@ -83,8 +83,8 @@
<a href="https://www.influxdata.com/"><img src="dist/img/influxdb.svg" alt="InfluxDB" style="height: 100px; margin: 0 auto 4rem auto; background:transparent;" class="demo-logo"/></a>
<small><ul>
<li><b>Influx DB</b>, open source database system</li>
<li>Time-Series optimized storage</li>
<li>Lightweight HTTP client</li>
<li class="fragment">Time-Series optimized storage</li>
<li class="fragment">Lightweight HTTP client</li>
</ul></small>
</section>
<section>
@ -93,8 +93,8 @@
<small><ul>
<li>Get time from the network</li>
<li>Compute & display local time</li>
<li>Keep it up-to-date using internal RTC</li>
<li class="fragment">Compute & display local time</li>
<li class="fragment">Keep it up-to-date using internal RTC</li>
</ul></small>
</section>
</section>
@ -105,27 +105,27 @@
<img src="dist/img/i2cd.svg" alt="I2C Block" style="height: 160px; margin: 0 auto 4rem auto; background: white;border-radius:25px;" class="demo-logo"/>
<small><ul>
<li>2 wires: clock & data</li>
<li>Device have unique address</li>
<li>Bi-directional, half-duplex</li>
<li>Simple protocol</li>
<li class="fragment">Targets have unique address</li>
<li class="fragment">Bi-directional, half-duplex</li>
<li class="fragment">Simple protocol</li>
</ul></small>
</section>
<section>
<h2>I2C protocol</h2>
<img src="dist/img/i2c.png" alt="System Diagram" style="height: auto; margin: 0 auto 4rem auto; background: white;border-radius:15px" class="demo-logo"/>
<small><ul>
<li>Select device with R/W capability</li>
<li>Select register</li>
<li>Send/Read data</li>
<li>Select target with R/W capability</li>
<li class="fragment">Select register</li>
<li class="fragment">Send/Read data</li>
</ul></small>
</section>
<section>
<h2>Technical specs</h2>
<small><ul>
<li>100kbps usually, up to multiple Mbps</li>
<li>120 target devices in 7 bit mode</li>
<li>Some devices have 10 bit addresses</li>
<li>Some devices have multi-byte register addresses</li>
<li class="fragment">120 target devices in 7 bit mode</li>
<li class="fragment">Some targets have 10 bit addresses</li>
<li class="fragment">Some targets have multi-byte register addresses</li>
</ul></small>
</section>
</section>
@ -137,25 +137,25 @@
<img src="dist/img/spid.svg" alt="SPI Block" style="height: 160px; margin: 0 auto 4rem auto; background: white;border-radius: 25px;" class="demo-logo"/>
<small><ul>
<li>+4 wires: clock, controller-data, target-data, chip-select</li>
<li>Device have unique address</li>
<li>Bi-directional, full duplex</li>
<li>More complex protocol</li>
<li class="fragment">Target have unique address/CS</li>
<li class="fragment">Bi-directional, full duplex</li>
<li class="fragment">More complex protocol</li>
</ul></small>
</section>
<section>
<h2>SPI protocol</h2>
<small><ul>
<li>Multiple configurations (direct or chained, data lines)</li>
<li>For the EPD, library is provided by constructor</li>
<li class="fragment">For the EPD, library is provided by constructor</li>
</ul></small>
</section>
<section>
<h2>Technical specs</h2>
<small><ul>
<li>1Mbps usually, ~2x the speed of I2C, up to hundreds of Mbps</li>
<li>Possibility for multiple data lines to increase bandwidth further</li>
<li>Target number limited by IO in direct configuration</li>
<li>Target number limited by delay in chained configuration</li>
<li class="fragment">Possibility for multiple data lines to increase bandwidth further</li>
<li class="fragment">Target number limited by IO in direct configuration</li>
<li class="fragment">Target number limited by delay in chained configuration</li>
</ul></small>
</section>
</section>
@ -167,9 +167,9 @@
<small><ul>
<li>Manually imported certificates</li>
<li>GET from OWM (JSON)</li>
<li>POST to Telegram & DB (String)</li>
<li>JSON handled with <b>arduinojson</b> library</li>
<li class="fragment">GET from OWM (JSON)</li>
<li class="fragment">POST to Telegram & DB (String)</li>
<li class="fragment">JSON handled with <b>arduinojson</b> library</li>
</ul></small>
</section>
<!-- <section>
@ -194,8 +194,8 @@
<a href=""><img src="dist/img/timer.svg" alt="Timer" style="height: 100px; margin: 0 auto 4rem auto; background: transparent;" class="demo-logo"/></a>
<small><ul>
<li>Base clock runs at 80Mhz</li>
<li>We set the scaler to run at 1Mhz</li>
<li>We trigger IRQ every 1 second</li>
<li class="fragment">We set the scaler to run at 1Mhz</li>
<li class="fragment">We trigger IRQ every 1 second</li>
</ul></small>
</section>
<section>
@ -204,8 +204,8 @@
<a href=""><img src="dist/img/cpu.svg" alt="Timer" style="height: 100px; margin: 0 auto 4rem auto; background: white;border-radius:30cm;" class="demo-logo"/></a>
<small><ul>
<li>Sensor read, network get & post (Core 0)</li>
<li>Touch screen IRQ polling & handling (Core 1)</li>
<li>E-Ink Display refresh & drawing (Core 1)</li>
<li class="fragment">Touch screen IRQ polling & handling (Core 1)</li>
<li class="fragment">E-Ink Display refresh & drawing (Core 1)</li>
</ul></small>
</section>
<section>
@ -213,8 +213,8 @@
<a href=""><img src="dist/img/green.svg" alt="Sleep" style="height: 100px; margin: 0 auto 4rem auto; background: white;border-radius:30cm;" class="demo-logo"/></a>
<small><ul>
<li>After inactivity the device goes into sleep mode</li>
<li>Wakes up periodically to run measurements</li>
<li>Returns to standard mode on touch IRQ <b>[WIP]</b></li>
<li class="fragment">Wakes up periodically to run measurements</li>
<li class="fragment">Returns to standard mode on touch IRQ <b>[WIP]</b></li>
</ul></small>
</section>
<section>
@ -222,8 +222,8 @@
<a href=""><img src="dist/img/timer.svg" alt="Timer" style="height: 100px; margin: 0 auto 4rem auto; background: transparent;" class="demo-logo"/></a>
<small><ul>
<li>List of functions with their run frequency</li>
<li>On minute tick check if any should have run since last tick</li>
<li>Not affected by function execution time</li>
<li class="fragment">On minute tick check if any should have run since last tick</li>
<li class="fragment">Not affected by function execution time</li>
</ul></small>
</section>
</section>
@ -255,14 +255,14 @@
<td>104.7 mA</td>
<td>245.4 uA</td>
</tr>
<tr>
<tr class="fragment">
<td></td>
<td>~330 mA (33mAh)</td>
<td>~1.1 mA (1mAh)</td>
</tr>
</tbody>
</table>
<p style="font-size:x-small">(default state for ~30s per 5min, sleep state remaining time: 34mAh in total)</p>
<p style="font-size:x-small" class="fragment">(default state for ~30s per 5min, sleep state remaining time: 34mAh in total)</p>
</small>
</section>
</section>
@ -279,16 +279,17 @@
<section>
<h2>Future Features</h2>
<small><ul>
<li>Sleep between measurements (wake from touch/timer interrupt)</li>
<li>Improved "Air quality" metric</li>
<li>More views & layouts to choose from</li>
<li>Support to control IOT heating/cooling/ventilation</li>
<li>Solar power by 4-5W cell (~450cm²)</li>
<li>Improve sleep (wake from touch)</li>
<li class="fragment">Improved "Environment quality" metric</li>
<li class="fragment">More views & layouts</li>
<li class="fragment">Support to automatically control IOT heating/cooling/ventilation</li>
<li class="fragment">Solar power by 4-5W cell (~400cm²)</li>
</ul></small>
</section>
<section>
<h2>Questions</h2>
</section>
</div>
</div>
@ -298,13 +299,8 @@
<script src="plugin/markdown/markdown.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
// Learn about plugins: https://revealjs.com/plugins/
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
});
</script>