updated pandoc templates

master
marcel 10 months ago
parent ccba7dd551
commit 439a6b6a1f
  1. 4
      build-doc/Makefile
  2. 16
      build-doc/template/custom_settings.tex
  3. 29
      build-doc/template/template.html
  4. 48
      build-doc/weather_station.html
  5. 9
      build-doc/weather_station.md
  6. BIN
      build-doc/weather_station.pdf

@ -1,9 +1,9 @@
html: html:
pandoc -s weather_station.md --toc --toc-depth=1 -c ./css/mvp.css \ pandoc -s weather_station.md --toc --toc-depth=1 -c ./css/mvp.css \
--template template.html -o weather_station.html --template ./template/template.html -o weather_station.html
pdf: pdf:
pandoc weather_station.md --toc -o weather_station.pdf --pdf-engine=xelatex pandoc weather_station.md --toc -o weather_station.pdf --pdf-engine=xelatex -H ./template/custom_settings.tex
clean: clean:
rm -rvf build rm -rvf build

@ -0,0 +1,16 @@
% Override default figure placement To be within the flow of the text rather
% than on it's own page.
\usepackage{float}
\usepackage{graphicx}
\makeatletter
\def\fps@figure{H}
\makeatother
% Scale all large images to 50% of twext width
\makeatletter
\setkeys{Gin}{width=\ifdim\Gin@nat@width>\linewidth
0.5\linewidth
\else
\Gin@nat@width
\fi}
\makeatother

@ -49,14 +49,31 @@ $endfor$
$if(title)$ $if(title)$
<header id="title-block-header"> <header id="title-block-header">
<nav id="$idprefix$TOC"> <nav id="$idprefix$TOC">
<a href="https://www.meezenest.nl/mees/"><img alt="Logo" src="$logo$" height="70"></a>
$if(toc)$
<ul> <ul>
<li><a href="#">Menu</a> $if(toc)$
<li>
<a href="#">Index</a>
$table-of-contents$ $table-of-contents$
</li> </li>
$endif$
$if(pdf_version)$
<li>
<a href="$pdf_version$">PDF version</a>
</li>
$endif$
$if(git_repo)$
<li>
<a href="$git_repo$">Git repo</a>
</li>
$endif$
$if(website)$
<li>
<a href="$website$">Back</a>
</li>
$endif$
</ul> </ul>
$endif$
<a href="https://www.meezenest.nl/mees/"><img alt="Logo" src="$logo$" height="70"></a>
</nav> </nav>
<h1 class="title">$title$</h1> <h1 class="title">$title$</h1>
$if(subtitle)$ $if(subtitle)$
@ -68,8 +85,8 @@ $endfor$
$if(date)$ $if(date)$
<p class="date">$date$</p> <p class="date">$date$</p>
$endif$ $endif$
$if(website)$ $if(pdf_version)$
<p><a href="$website$"><i>Back &nearr;</i></a></p> <p><a href="$pdf_version$"><i>PDF version</i></a></p>
$endif$ $endif$
</header> </header>
$endif$ $endif$

@ -22,9 +22,9 @@
<body> <body>
<header id="title-block-header"> <header id="title-block-header">
<nav id="TOC"> <nav id="TOC">
<a href="https://www.meezenest.nl/mees/"><img alt="Logo" src="./images/mees_logo.svg" height="70"></a> <ul>
<ul> <li>
<li><a href="#">Menu</a> <a href="#">Index</a>
<ul> <ul>
<li><a href="#why-do-you-need-a-weather-station" <li><a href="#why-do-you-need-a-weather-station"
id="toc-why-do-you-need-a-weather-station">Why do you need a id="toc-why-do-you-need-a-weather-station">Why do you need a
@ -55,13 +55,24 @@
<li><a href="#license" id="toc-license">License</a></li> <li><a href="#license" id="toc-license">License</a></li>
</ul> </ul>
</li> </li>
</ul> <li>
</nav> <a href="./weather_station.pdf">PDF version</a>
</li>
<li>
<a href="https://git.meezenest.nl/">Git repo</a>
</li>
<li>
<a href="https://meezenest.nl/mees/">Back</a>
</li>
</ul>
<a href="https://www.meezenest.nl/mees/"><img alt="Logo" src="./images/mees_logo.svg" height="70"></a>
</nav>
<h1 class="title">Weather station</h1> <h1 class="title">Weather station</h1>
<p class="subtitle">with ModBus RTU interface</p> <p class="subtitle">with ModBus RTU interface</p>
<p class="author">M.T. Konstapel</p> <p class="author">M.T. Konstapel</p>
<p class="date">2024-01-15</p> <p class="date">2024-01-15</p>
<p><a href="https://meezenest.nl/mees/"><i>Back &nearr;</i></a></p> <p><a href="./weather_station.pdf"><i>PDF version</i></a></p>
</header> </header>
<main> <main>
<article> <article>
@ -579,7 +590,7 @@ import minimalmodbus
# port name, slave address (in decimal) # port name, slave address (in decimal)
instrument = minimalmodbus.Instrument(&#39;/dev/ttyUSB1&#39;, 14) instrument = minimalmodbus.Instrument(&#39;/dev/ttyUSB1&#39;, 14)
# Register number, number of decimals, function code # register number, number of decimals, function code
wind_direction = instrument.read_register(1, 0, 4) wind_direction = instrument.read_register(1, 0, 4)
print(wind_direction)</code></pre> print(wind_direction)</code></pre>
<h3 id="input-registers">Input registers</h3> <h3 id="input-registers">Input registers</h3>
@ -669,10 +680,33 @@ APRS weather reports. But of course we use SI units.</p>
<td>Temperature (two’s complement)</td> <td>Temperature (two’s complement)</td>
<td>degrees Celcius * 100</td> <td>degrees Celcius * 100</td>
</tr> </tr>
<tr class="odd">
<td>30014</td>
<td>Status bits</td>
<td>see table below</td>
</tr>
</tbody> </tbody>
</table> </table>
<p><sup>NOTE</sup> Register 30013 holds the backup temperature reading <p><sup>NOTE</sup> Register 30013 holds the backup temperature reading
from the pressure sensor.</p> from the pressure sensor.</p>
<table>
<thead>
<tr class="header">
<th>Status bits</th>
<th>Description</th>
<th>logic 0</th>
<th>logic 1</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>0</td>
<td>Heater status</td>
<td>heater off</td>
<td>heater on</td>
</tr>
</tbody>
</table>
<p>The ModBus registers are 16 bit wide. For better precision, some <p>The ModBus registers are 16 bit wide. For better precision, some
units are scaled by a factor of 10 or 100. This way, values with up to units are scaled by a factor of 10 or 100. This way, values with up to
two decimal points can be stored as 16 bit integer values. Just divide two decimal points can be stored as 16 bit integer values. Just divide

@ -5,7 +5,11 @@ author: M.T. Konstapel
date: 2024-01-15 date: 2024-01-15
website: https://meezenest.nl/mees/ website: https://meezenest.nl/mees/
logo: ./images/mees_logo.svg logo: ./images/mees_logo.svg
pdf_version: ./weather_station.pdf
git_repo: https://git.meezenest.nl/
numbersections: true numbersections: true
# Formatting:
geometry: "a4paper, left=2.0cm, right=2.0cm, top=1.9cm, bottom=2.54cm"
abstract: > abstract: >
A weather station build around a SparkFun Weather Meter Kit (SEN-15901). The temperature, humidity and pressure are measured with I2C sensors housed in an RS1 Passive Radiation Shield from Garni. The data can be read via an RS485 ModBus RTU interface. The main processor is an Arduino Pro Mini (ATmega328P 5V@16MHz) A weather station build around a SparkFun Weather Meter Kit (SEN-15901). The temperature, humidity and pressure are measured with I2C sensors housed in an RS1 Passive Radiation Shield from Garni. The data can be read via an RS485 ModBus RTU interface. The main processor is an Arduino Pro Mini (ATmega328P 5V@16MHz)
--- ---
@ -286,9 +290,14 @@ The measurements and order of the measurements are the same as for APRS weather
| 30011 | Snow fall | NOT IMPLEMENTED | | 30011 | Snow fall | NOT IMPLEMENTED |
| 30012 | Raw rain counter | NOT IMPLEMENTED | | 30012 | Raw rain counter | NOT IMPLEMENTED |
| 30013 | Temperature (two's complement) | degrees Celcius * 100 | | 30013 | Temperature (two's complement) | degrees Celcius * 100 |
| 30014 | Status bits | see table below |
^NOTE^ Register 30013 holds the backup temperature reading from the pressure sensor. ^NOTE^ Register 30013 holds the backup temperature reading from the pressure sensor.
| Status bits | Description | logic 0 | logic 1 |
|-------------|---------------|------------|-----------|
| 0 | Heater status | heater off | heater on |
The ModBus registers are 16 bit wide. For better precision, some units are scaled by a factor of 10 or 100. This way, values with up to two decimal points can be stored as 16 bit integer values. Just divide by 10 or 100 to get the floating point values. The ModBus registers are 16 bit wide. For better precision, some units are scaled by a factor of 10 or 100. This way, values with up to two decimal points can be stored as 16 bit integer values. Just divide by 10 or 100 to get the floating point values.
# Schematic # Schematic

Binary file not shown.
Loading…
Cancel
Save