Added fragments annimation
This commit is contained in:
parent
1ac4732d55
commit
fe9f95271e
BIN
dist/img/metrum.png
vendored
Normal file
BIN
dist/img/metrum.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 196 KiB |
110
index.html
110
index.html
@ -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">
|
<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> -->
|
</a> -->
|
||||||
<h3>METESP</h3>
|
<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">
|
<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>A measurement station by <a href="http://helcel.net/bio">Cedric Hölzl</a></small>
|
<br/><small class="fragment">A measurement station by <a href="http://helcel.net/bio">Cedric Hölzl</a></small>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Goal</h2>
|
<h2>Goal</h2>
|
||||||
<p>Build an environment quality monitor.</p>
|
<p>Build an environment quality monitor.</p>
|
||||||
<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>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
<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>
|
<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>
|
<small><ul>
|
||||||
<li>Low power, dual-core processor</li>
|
<li>Low power, dual-core processor</li>
|
||||||
<li>C/C++ & FreeRTOS support</li>
|
<li class="fragment">C/C++ & FreeRTOS support</li>
|
||||||
<li>WiFi & BLE support</li>
|
<li class="fragment">WiFi & BLE support</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
@ -51,10 +51,10 @@
|
|||||||
|
|
||||||
<small><ul>
|
<small><ul>
|
||||||
<li>BM280: temperature, humidity & pressure</li>
|
<li>BM280: temperature, humidity & pressure</li>
|
||||||
<li>SGP40: Volatile Organic Compounds (VOC)</li>
|
<li class="fragment">SGP40: Volatile Organic Compounds (VOC)</li>
|
||||||
<li>LTR390-UV-1: UV</li>
|
<li class="fragment">LTR390-UV-1: UV</li>
|
||||||
<li>TSL25911: ambient light (infrared & visible)</li>
|
<li class="fragment">TSL25911: ambient light (infrared & visible)</li>
|
||||||
<li>PMSA003I : particle concentration by size</li>
|
<li class="fragment">PMSA003I : particle concentration by size</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
@ -63,9 +63,9 @@
|
|||||||
|
|
||||||
<small><ul>
|
<small><ul>
|
||||||
<li>GT1151: Touch</li>
|
<li>GT1151: Touch</li>
|
||||||
<li>Multiple views of live data</li>
|
<li class="fragment">Multiple views of live data</li>
|
||||||
<li>Low power consumption</li>
|
<li class="fragment">Low power consumption</li>
|
||||||
<li>User interaction</li>
|
<li class="fragment">User interaction</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
@ -74,8 +74,8 @@
|
|||||||
|
|
||||||
<small><ul>
|
<small><ul>
|
||||||
<li>Exterior realtime data source</li>
|
<li>Exterior realtime data source</li>
|
||||||
<li>Free API access</li>
|
<li class="fragment">Free API access</li>
|
||||||
<li>+200'000 cities</li>
|
<li class="fragment">+200'000 cities</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<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>
|
<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>
|
<small><ul>
|
||||||
<li><b>Influx DB</b>, open source database system</li>
|
<li><b>Influx DB</b>, open source database system</li>
|
||||||
<li>Time-Series optimized storage</li>
|
<li class="fragment">Time-Series optimized storage</li>
|
||||||
<li>Lightweight HTTP client</li>
|
<li class="fragment">Lightweight HTTP client</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
@ -93,8 +93,8 @@
|
|||||||
|
|
||||||
<small><ul>
|
<small><ul>
|
||||||
<li>Get time from the network</li>
|
<li>Get time from the network</li>
|
||||||
<li>Compute & display local time</li>
|
<li class="fragment">Compute & display local time</li>
|
||||||
<li>Keep it up-to-date using internal RTC</li>
|
<li class="fragment">Keep it up-to-date using internal RTC</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
</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"/>
|
<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>
|
<small><ul>
|
||||||
<li>2 wires: clock & data</li>
|
<li>2 wires: clock & data</li>
|
||||||
<li>Device have unique address</li>
|
<li class="fragment">Targets have unique address</li>
|
||||||
<li>Bi-directional, half-duplex</li>
|
<li class="fragment">Bi-directional, half-duplex</li>
|
||||||
<li>Simple protocol</li>
|
<li class="fragment">Simple protocol</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>I2C protocol</h2>
|
<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"/>
|
<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>
|
<small><ul>
|
||||||
<li>Select device with R/W capability</li>
|
<li>Select target with R/W capability</li>
|
||||||
<li>Select register</li>
|
<li class="fragment">Select register</li>
|
||||||
<li>Send/Read data</li>
|
<li class="fragment">Send/Read data</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Technical specs</h2>
|
<h2>Technical specs</h2>
|
||||||
<small><ul>
|
<small><ul>
|
||||||
<li>100kbps usually, up to multiple Mbps</li>
|
<li>100kbps usually, up to multiple Mbps</li>
|
||||||
<li>120 target devices in 7 bit mode</li>
|
<li class="fragment">120 target devices in 7 bit mode</li>
|
||||||
<li>Some devices have 10 bit addresses</li>
|
<li class="fragment">Some targets have 10 bit addresses</li>
|
||||||
<li>Some devices have multi-byte register addresses</li>
|
<li class="fragment">Some targets have multi-byte register addresses</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
</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"/>
|
<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>
|
<small><ul>
|
||||||
<li>+4 wires: clock, controller-data, target-data, chip-select</li>
|
<li>+4 wires: clock, controller-data, target-data, chip-select</li>
|
||||||
<li>Device have unique address</li>
|
<li class="fragment">Target have unique address/CS</li>
|
||||||
<li>Bi-directional, full duplex</li>
|
<li class="fragment">Bi-directional, full duplex</li>
|
||||||
<li>More complex protocol</li>
|
<li class="fragment">More complex protocol</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>SPI protocol</h2>
|
<h2>SPI protocol</h2>
|
||||||
<small><ul>
|
<small><ul>
|
||||||
<li>Multiple configurations (direct or chained, data lines)</li>
|
<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>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Technical specs</h2>
|
<h2>Technical specs</h2>
|
||||||
<small><ul>
|
<small><ul>
|
||||||
<li>1Mbps usually, ~2x the speed of I2C, up to hundreds of Mbps</li>
|
<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 class="fragment">Possibility for multiple data lines to increase bandwidth further</li>
|
||||||
<li>Target number limited by IO in direct configuration</li>
|
<li class="fragment">Target number limited by IO in direct configuration</li>
|
||||||
<li>Target number limited by delay in chained configuration</li>
|
<li class="fragment">Target number limited by delay in chained configuration</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
@ -167,9 +167,9 @@
|
|||||||
|
|
||||||
<small><ul>
|
<small><ul>
|
||||||
<li>Manually imported certificates</li>
|
<li>Manually imported certificates</li>
|
||||||
<li>GET from OWM (JSON)</li>
|
<li class="fragment">GET from OWM (JSON)</li>
|
||||||
<li>POST to Telegram & DB (String)</li>
|
<li class="fragment">POST to Telegram & DB (String)</li>
|
||||||
<li>JSON handled with <b>arduinojson</b> library</li>
|
<li class="fragment">JSON handled with <b>arduinojson</b> library</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<!-- <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>
|
<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>
|
<small><ul>
|
||||||
<li>Base clock runs at 80Mhz</li>
|
<li>Base clock runs at 80Mhz</li>
|
||||||
<li>We set the scaler to run at 1Mhz</li>
|
<li class="fragment">We set the scaler to run at 1Mhz</li>
|
||||||
<li>We trigger IRQ every 1 second</li>
|
<li class="fragment">We trigger IRQ every 1 second</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<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>
|
<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>
|
<small><ul>
|
||||||
<li>Sensor read, network get & post (Core 0)</li>
|
<li>Sensor read, network get & post (Core 0)</li>
|
||||||
<li>Touch screen IRQ polling & handling (Core 1)</li>
|
<li class="fragment">Touch screen IRQ polling & handling (Core 1)</li>
|
||||||
<li>E-Ink Display refresh & drawing (Core 1)</li>
|
<li class="fragment">E-Ink Display refresh & drawing (Core 1)</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<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>
|
<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>
|
<small><ul>
|
||||||
<li>After inactivity the device goes into sleep mode</li>
|
<li>After inactivity the device goes into sleep mode</li>
|
||||||
<li>Wakes up periodically to run measurements</li>
|
<li class="fragment">Wakes up periodically to run measurements</li>
|
||||||
<li>Returns to standard mode on touch IRQ <b>[WIP]</b></li>
|
<li class="fragment">Returns to standard mode on touch IRQ <b>[WIP]</b></li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
<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>
|
<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>
|
<small><ul>
|
||||||
<li>List of functions with their run frequency</li>
|
<li>List of functions with their run frequency</li>
|
||||||
<li>On minute tick check if any should have run since last tick</li>
|
<li class="fragment">On minute tick check if any should have run since last tick</li>
|
||||||
<li>Not affected by function execution time</li>
|
<li class="fragment">Not affected by function execution time</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
@ -255,14 +255,14 @@
|
|||||||
<td>104.7 mA</td>
|
<td>104.7 mA</td>
|
||||||
<td>245.4 uA</td>
|
<td>245.4 uA</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr class="fragment">
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>~330 mA (33mAh)</td>
|
<td>~330 mA (33mAh)</td>
|
||||||
<td>~1.1 mA (1mAh)</td>
|
<td>~1.1 mA (1mAh)</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</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>
|
</small>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
@ -279,16 +279,17 @@
|
|||||||
<section>
|
<section>
|
||||||
<h2>Future Features</h2>
|
<h2>Future Features</h2>
|
||||||
<small><ul>
|
<small><ul>
|
||||||
<li>Sleep between measurements (wake from touch/timer interrupt)</li>
|
<li>Improve sleep (wake from touch)</li>
|
||||||
<li>Improved "Air quality" metric</li>
|
<li class="fragment">Improved "Environment quality" metric</li>
|
||||||
<li>More views & layouts to choose from</li>
|
<li class="fragment">More views & layouts</li>
|
||||||
<li>Support to control IOT heating/cooling/ventilation</li>
|
<li class="fragment">Support to automatically control IOT heating/cooling/ventilation</li>
|
||||||
<li>Solar power by 4-5W cell (~450cm²)</li>
|
<li class="fragment">Solar power by 4-5W cell (~400cm²)</li>
|
||||||
</ul></small>
|
</ul></small>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2>Questions</h2>
|
<h2>Questions</h2>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -298,13 +299,8 @@
|
|||||||
<script src="plugin/markdown/markdown.js"></script>
|
<script src="plugin/markdown/markdown.js"></script>
|
||||||
<script src="plugin/highlight/highlight.js"></script>
|
<script src="plugin/highlight/highlight.js"></script>
|
||||||
<script>
|
<script>
|
||||||
// More info about initialization & config:
|
|
||||||
// - https://revealjs.com/initialization/
|
|
||||||
// - https://revealjs.com/config/
|
|
||||||
Reveal.initialize({
|
Reveal.initialize({
|
||||||
hash: true,
|
hash: true,
|
||||||
|
|
||||||
// Learn about plugins: https://revealjs.com/plugins/
|
|
||||||
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
|
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user