<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Teknik &#8211; Tomas hjemmeside</title>
	<atom:link href="https://tomas.dk/ps/category/teknik/feed/" rel="self" type="application/rss+xml" />
	<link>https://tomas.dk/ps</link>
	<description>Min foto/vejr/3D print blog</description>
	<lastBuildDate>Sun, 13 Jul 2025 19:14:46 +0000</lastBuildDate>
	<language>da-DK</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>Vejrstation updates</title>
		<link>https://tomas.dk/ps/vejrstation-updates/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Tue, 10 Jun 2025 11:47:00 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Gør det selv]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[Vejr]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[regn]]></category>
		<category><![CDATA[vejrstation]]></category>
		<category><![CDATA[weather]]></category>
		<category><![CDATA[weather station]]></category>
		<guid isPermaLink="false">https://tomas.dk/ps/?p=2729</guid>

					<description><![CDATA[Update 13. juli:Det virker. Nu viser regnmåleren nedbør som den skal En regnfuld sommerdag blev jeg træt af, at regnmåleren ikke altid virker efter hensigten. Det er som om at den ikke altid vipper når der er vand nok i. Ved lidt eftertanke, kunne årsagen være, at det metalstykke, der skal påvirke sensoren sidder for&#8230; <a class="more-link" href="https://tomas.dk/ps/vejrstation-updates/">Læs mere <span class="screen-reader-text">Vejrstation updates</span></a>]]></description>
										<content:encoded><![CDATA[
<p style="font-style:italic;font-weight:400">Update 13. juli:<br />Det virker. Nu viser regnmåleren nedbør som den skal</p>



<p>En regnfuld sommerdag blev jeg træt af, at regnmåleren ikke altid virker efter hensigten. Det er som om at den ikke altid vipper når der er vand nok i. Ved lidt eftertanke, kunne årsagen være, at det metalstykke, der skal påvirke sensoren sidder for højt, og derfor kan vandet ikke vippe måleren. Jeg har nu flyttet metalstykket ned. Det gør, at der nu kun skal falde ca. 0,3mm regn før den vipper.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1180" height="726" data-attachment-id="2728" data-permalink="https://tomas.dk/ps/vipperv2/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2025/06/VipperV2.png" data-orig-size="1180,726" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="VipperV2" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2025/06/VipperV2-300x185.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2025/06/VipperV2.png" src="https://tomas.dk/ps/wp-content/uploads/2025/06/VipperV2.png" alt="" class="wp-image-2728" srcset="https://tomas.dk/ps/wp-content/uploads/2025/06/VipperV2.png 1180w, https://tomas.dk/ps/wp-content/uploads/2025/06/VipperV2-300x185.png 300w, https://tomas.dk/ps/wp-content/uploads/2025/06/VipperV2-150x92.png 150w, https://tomas.dk/ps/wp-content/uploads/2025/06/VipperV2-768x473.png 768w" sizes="(max-width: 1180px) 100vw, 1180px" /></figure>



<p>Det kræver så også, at der ændres lidt i koden til målercomputeren.</p>



<pre class="wp-block-code"><code>// Variable
float tryk;
float indetemp;
String cmd = "";
volatile int rain = 0;
volatile unsigned long pulseTime = millis();
volatile unsigned long lastPulseTime = pulseTime;
int rain5 = 0;
unsigned long nuTid;
unsigned long tid;
// float VIPFAKTOR = 0.408;  // Vipper V.1
float VIPFAKTOR = 0.294;     // Vipper V.2
int minRain&#91;5] = {0, 0, 0, 0, 0};</code></pre>



<p>VIPFAKTOR er ændret til 0.294 mm pr. vip.</p>



<p>Ny 3D tegning kan hentes <a href="https://tomas.dk/download/VejrStation/Regnmåler_1.1.FCStd">her</a>. Tegning er lavet i FreeCAD 0.21.1.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2729</post-id>	</item>
		<item>
		<title>Vejrstation del 4</title>
		<link>https://tomas.dk/ps/vejrstation-del-4/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Sun, 12 Jan 2025 17:16:32 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Gør det selv]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[Vejr]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mariadb]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python3]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[webserver]]></category>
		<guid isPermaLink="false">https://tomas.dk/ps/?p=2710</guid>

					<description><![CDATA[Det hele samles i en web-server med en mariadb database.Først oprettes en database med: Databasen burde nu være klar til brug. For at hente data til databasen har jeg lavet et lille python script. Python skal være version 3.11 eller derover. Husk DTR skal være klippet i FTDI kablet, da arduinoen ellers resetter hver gang&#8230; <a class="more-link" href="https://tomas.dk/ps/vejrstation-del-4/">Læs mere <span class="screen-reader-text">Vejrstation del 4</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" width="1004" height="1024" data-attachment-id="2713" data-permalink="https://tomas.dk/ps/vejrstation-del-4/vippervipperbund/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund.jpg" data-orig-size="2459,2508" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.7&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1734605440&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;5.11&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.00625&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="VipperVipperBund" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-294x300.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1004x1024.jpg" src="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1004x1024.jpg" alt="Gammel vipperbund med vipper og proximitysensor." class="wp-image-2713" srcset="https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1004x1024.jpg 1004w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-294x300.jpg 294w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-147x150.jpg 147w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-768x783.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1506x1536.jpg 1506w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-2008x2048.jpg 2008w, https://tomas.dk/ps/wp-content/uploads/2025/01/VipperVipperBund-1568x1599.jpg 1568w" sizes="(max-width: 1004px) 100vw, 1004px" /></figure>



<p>Det hele samles i en web-server med en mariadb database.<br />Først oprettes en database med:</p>



<pre class="wp-block-code" style="font-size:10px"><code>CREATE DATABASE arduinovejr;
CREATE USER 'vejr'@'localhost' IDENTIFIED BY '_DITPASSWORD_';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT ON arduinovejr.* TO 'vejr'@'localhost';
FLUSH PRIVILEGES;

USE arduinovejr;
CREATE TABLE vejrdata ( tid DATETIME, temp_inde FLOAT(6,2), temp_ud FLOAT(6,2), tryk FLOAT(6,2), temp_cpu FLOAT(6,2), humid FLOAT(6,2), regn1min FLOAT(6,2), regn5min FLOAT(6,2), temp_1 FLOAT(6,2), temp2 FLOAT(6,2), temp3 FLOAT(6,2) );</code></pre>



<p>Databasen burde nu være klar til brug.</p>



<p>For at hente data til databasen har jeg lavet et lille python script. Python skal være version 3.11 eller derover.</p>



<pre class="wp-block-code" style="font-size:10px"><code>#!/usr/bin/python3.11

import serial
import time
from datetime import datetime
import re
import mysql.connector as mysql

# Setup serial

tty = serial.Serial(port='/dev/ttyUSB0', baudrate=9600, timeout=1)

# Setup mysql connection
vejrDB = mysql.connect(
        host = "localhost",
        user = "vejr",
        password = "DITPASSWORD",
        database = "arduinovejr")

def speakToArduino(txt):
    tty.write(bytes(txt, 'utf-8'))
    time.sleep(0.05)
    data = tty.readline().decode('utf-8').rstrip()
    return data

time.sleep(2)

svar = "na"

while not (re.search(r'&#91;0-9\.:\?]+', svar)):
    svar = speakToArduino('\n')
    time.sleep(0.1)

svar = speakToArduino('getPress')
#print("Lufttryk         : %8s"%svar)
tryk = svar

svar = speakToArduino('getTempIn')
#print("Temperatur cpu   : %8s"%svar)
tempCpu = svar

svar = speakToArduino('getTempOut')
#print("Temperatur ude   : %8s"%svar)
tempUd = svar

svar = speakToArduino('getOutHumidity')
#print("Luftfugtighed ude: %8s"%svar)
humid = svar

svar = speakToArduino('getrain5')
#print("5 minuters regn  : %8s"%svar)
rain5 = svar

svar = speakToArduino('getrain1')
#print("1 minuters regn  : %8s"%svar)
rain1 = svar


vejrCursor = vejrDB.cursor()
now = datetime.now()
tid = now.strftime('%Y-%m-%d %H:%M:%S')

sql = "INSERT INTO vejrdata (tid, temp_cpu, tryk, temp_ud, humid, regn5min, regn1min ) VALUES (%s, %s, %s, %s, %s, %s, %s)"
val = (str(tid), str(tempCpu), str(tryk), str(tempUd), str(humid), str(rain5), str(rain1))

vejrCursor.execute(sql, val)
vejrDB.commit()
</code></pre>



<p>Husk DTR skal være klippet i FTDI kablet, da arduinoen ellers resetter hver gang programmet køres. Brugeren der kører scriptet, skal også være i dialout gruppen. Gøres med: &#8216;sudo usermod -a -G dialout exampleusername&#8217;.</p>



<p>Jeg kører scriptet i crontab:</p>



<pre class="wp-block-code" style="font-size:10px"><code>* * * * * /home/BRUGER/arduinoVejr/getWeather</code></pre>



<p>Dernæst skal der laves et lille php script for at displayenheden kan hente data:</p>



<pre class="wp-block-code" style="font-size:10px"><code>&lt;?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

error_reporting(0);

# Hent logindata til databasen.
# Disse ligger ikke i web-serverens datapath og kan derfor ikke hentes af andet
# skriptet.
include('/home/BRUGER/vejrgraf/dbinfo.php');

$conn = new mysqli("localhost", $dbuser, $dbpasswd, $dbname);

#$result = $conn-&gt;query("SELECT systtamp, t_out, rho, ws, dir0, wc, r1h, r24h FROM vejrlog ORDER BY systtamp DESC LIMIT 1");

$result = $conn-&gt;query("SELECT tid, temp_ud, tryk, humid FROM vejrdata ORDER BY tid DESC LIMIT 1");
while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {
        $tid     = $rs&#91;"tid"];
        $temp_ud = $rs&#91;"temp_ud"];
        $humid   = $rs&#91;"humid"];
        $tryk    = $rs&#91;"tryk"];
}
# Hent summerede data

# find 24 timer regn
#
$result   = $conn-&gt;query("SELECT SUM(regn1min) AS r24timer FROM vejrdata WHERE tid &gt;= NOW() - INTERVAL 1 DAY;");
while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {
        $r24timer = $rs&#91;"r24timer"];
}


# find 1 time regn
#
$result   = $conn-&gt;query("SELECT SUM(regn1min) AS r1timer FROM vejrdata WHERE tid &gt;= NOW() - INTERVAL 1 HOUR;");
while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {
        $r1timer = $rs&#91;"r1timer"];
}

# find 15 min regn
#
$result   = $conn-&gt;query("SELECT SUM(regn1min) AS r15min from vejrdata where tid &gt;= NOW() - INTERVAL 15 MINUTE;");
while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {
        $r15min = $rs&#91;"r15min"];
}


$outp = "";
#while ( $rs = $result-&gt;fetch_array(MYSQLI_ASSOC) ) {

        $outp .= '{"systid":"'  . $tid      . '",';
        $outp .= '"tempout":'   . $temp_ud  . ',';
        $outp .= '"rhout":'     . $humid    . ',';
        $outp .= '"tryk":'      . $tryk     . ',';
        $outp .= '"r1hour":'    . $r1timer  . ',';
        $outp .= '"r24hour":'   . $r24timer . ',';
        $outp .= '"r15min":'    . $r15min   . '}';
#}

$conn-&gt;close();

echo ($outp);
?&gt;
</code></pre>



<pre class="wp-block-code" style="font-size:10px"><code>Logindata filen:
&lt;?php
        $dbname = "arduinovejr";
        $dbuser = "vejr";
        $dbpasswd = "DITPASSWORD";
?&gt;
</code></pre>



<p>Min webserver er en apache i et temmelig standard setup.</p>



<p>Har du spørgsmål, så skriv endelig på tcj snabel_a tomas.dk</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2710</post-id>	</item>
		<item>
		<title>Vejrstation del 3</title>
		<link>https://tomas.dk/ps/vejrstation-del-3/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Mon, 30 Dec 2024 14:58:27 +0000</pubDate>
				<category><![CDATA[Gør det selv]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[Vejr]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[esp32]]></category>
		<category><![CDATA[programmering]]></category>
		<guid isPermaLink="false">https://tomas.dk/ps/?p=2700</guid>

					<description><![CDATA[Diagrammer og software Diagrammerne er ret simple. Først diagrammet over målecomputeren, der håndterer diverse følere. Diagram over måleenhed De to kredse til højre er diagrammet over FTDI interface, der bruges til at enten kommunikere med enheden eller reprogrammere den. Denne del har jeg to versioner af, da der opstår lidt bøvl med kommunikationen hvis der&#8230; <a class="more-link" href="https://tomas.dk/ps/vejrstation-del-3/">Læs mere <span class="screen-reader-text">Vejrstation del 3</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" width="1200" height="783" data-attachment-id="2665" data-permalink="https://tomas.dk/ps/vejrstation-del-1/tempude/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-scaled.jpg" data-orig-size="2560,1670" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.3&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1731873655&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;10.22&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.05&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="TempUde" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-300x196.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1200x783.jpg" src="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1200x783.jpg" alt="" class="wp-image-2665" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1200x783.jpg 1200w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-300x196.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-150x98.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-768x501.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1536x1002.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-2048x1336.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/11/TempUde-1568x1023.jpg 1568w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<h2 class="wp-block-heading">Diagrammer og software</h2>



<p>Diagrammerne er ret simple. </p>



<p>Først diagrammet over målecomputeren, der håndterer diverse følere.</p>



<h2 class="wp-block-heading">Diagram over måleenhed</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1190" height="845" data-attachment-id="2698" data-permalink="https://tomas.dk/ps/sch_arduinomaalestation_1-p1_2024-12-30/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/SCH_ArduinoMaalestation_1-P1_2024-12-30.png" data-orig-size="1190,845" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SCH_ArduinoMålestation_1-P1_2024-12-30" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/SCH_ArduinoMaalestation_1-P1_2024-12-30-300x213.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/SCH_ArduinoMaalestation_1-P1_2024-12-30.png" src="https://tomas.dk/ps/wp-content/uploads/2024/12/SCH_ArduinoMaalestation_1-P1_2024-12-30.png" alt="" class="wp-image-2698" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/SCH_ArduinoMaalestation_1-P1_2024-12-30.png 1190w, https://tomas.dk/ps/wp-content/uploads/2024/12/SCH_ArduinoMaalestation_1-P1_2024-12-30-300x213.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/SCH_ArduinoMaalestation_1-P1_2024-12-30-150x107.png 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/SCH_ArduinoMaalestation_1-P1_2024-12-30-768x545.png 768w" sizes="auto, (max-width: 1190px) 100vw, 1190px" /></figure>



<p>De to kredse til højre er diagrammet over FTDI interface, der bruges til at enten kommunikere med enheden eller reprogrammere den. Denne del har jeg to versioner af, da der opstår lidt bøvl med kommunikationen hvis der ikke laves en lille ændring. Der sker, det at DTR går lav når python eller andet software vil kommunikere med en arduino. Dette skal den iflg. rs232 protokollen, men det gør desværre at en arduino genstarter, da den ser det som om at den skal programmeres. For at undgå dette afbrydes DTR når enheden benyttes som vejrstation.<br />Seriel kommunikation fungerer heldigvis fint uden DTR.<br />Hvis der skal lægges rettelser på, skal DTR reetableres for at man kan overføre ny software.</p>



<p>Herunder er koden til målecomputeren.</p>



<pre class="wp-block-code has-black-color has-text-color has-link-color wp-elements-99e6a589b613dd030443277e1170dd00" style="padding-top:0;padding-bottom:0;font-size:9px;line-height:1"><code>#include &lt;Arduino.h>
#include &lt;dhtnew.h>

#include &lt;Adafruit_Sensor.h>
#include &lt;Adafruit_BMP280.h>
#include &lt;Wire.h>
#include &lt;Adafruit_Sensor.h>

// put function declarations here:
// 
float getTempIn(void);
float getTempOut(void);
float getPress(void);
float getOutHumid(void);
void  rainInt(void);
void  rollRain(int);
float getRain5(void);
float getRain(void);

//Constants
#define DHTPIN 5
#define RAINPIN 2

// Init temp/hum sensor
DHTNEW outdoorSensor(DHTPIN);

#define OUTTEMP_ADJUST  -1.16
#define INTEMP_ADJUST   -1.58

// Init pressure sensor
Adafruit_BMP280 bmp;

// Variable
float tryk;
float indetemp;
String cmd = "";
volatile int rain = 0;
volatile unsigned long pulseTime = millis();
volatile unsigned long lastPulseTime = pulseTime;
int rain5 = 0;
unsigned long nuTid;
unsigned long tid;
float VIPFAKTOR = 0.408;
int minRain&#91;5] = {0, 0, 0, 0, 0};

void setup() {
  Serial.begin(9600);
	Serial.println("Klargør hardware");
  Serial.println();

  // trykmaaler
  while (!bmp.begin(0x76)) {
    Serial.println("Kunne ikke finde BMP280!!!");
    delay(5000);
  }

  bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,     /* Operating Mode. */
                  Adafruit_BMP280::SAMPLING_X2,     /* Temp. oversampling */
                  Adafruit_BMP280::SAMPLING_X16,    /* Pressure oversampling */
                  Adafruit_BMP280::FILTER_X16,      /* Filtering. */
                  Adafruit_BMP280::STANDBY_MS_500);  /* Standby time. */
  Serial.println("BMP280 klar");

  // Setup interrupt for regnmåler
  pinMode(RAINPIN, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(RAINPIN), rainInt, FALLING);
  Serial.println("Interrupt klar");

  Serial.println("Vejrstation klar");
  nuTid = millis();
}

void loop() {
  // Seriel kommunikation
  // --------------------
  if ( Serial.available() ) {
    cmd = Serial.readStringUntil('\n');
  
    cmd.trim();
    if ( cmd.equalsIgnoreCase("getTempIn")) {
      //Serial.print("Inde Temperatur ");
      Serial.println(getTempIn());
    } 
    else if ( cmd.equalsIgnoreCase("getTempOut")) {
      //Serial.print("Ude Temperatur ");
      Serial.println(getTempOut());
    } 
    else if ( cmd.equalsIgnoreCase("getPress")) {
      //Serial.print("tryk ");
      Serial.println(getPress());
    } 
    else if ( cmd.equalsIgnoreCase("getOutHumidity")) {
      //Serial.print("ude luftfugtighed ");
      Serial.println(getOutHumid());
    }
    else if ( cmd.equalsIgnoreCase("getRain5")) {
      Serial.println(getRain5());
    }
    else if ( cmd.equalsIgnoreCase("getRain1")) {
      Serial.println(getRain());
    }
    else {
      //Serial.print("Ukendt kommando: ");
      Serial.println("?: " + cmd);
    }
  }

  // Regnmåler 
  // ---------
  tid = millis();
  if (tid >= nuTid + 60000) {
    rollRain(rain);
    rain = 0;
    nuTid = tid;
  }

}

float getRain5(void) {
  int i;
  int rain5 = 0;
  float mm;
  for (i=0; i&lt;5; i++){
    rain5 += minRain&#91;i];
    // Serial.println(minRain&#91;i]);
  }
  mm = rain5 * VIPFAKTOR;
  return mm;
}

float getRain(void) {
  float mm;

  mm = minRain&#91;4] * VIPFAKTOR;
  return mm;
}

void rollRain(int r1){
  int i;
  rain5 = 0;
  // sum 5 min regn
  for (i = 0; i &lt; 5; i++) {
    rain5 += minRain&#91;i];
  }

  // rul rain5
  for (i = 1; i &lt; 5; i++) {
    minRain&#91;i - 1] = minRain&#91;i];
  }
  minRain&#91;4] = r1;
}

void rainInt(void) {
  pulseTime = millis();
  if (pulseTime - lastPulseTime > 5000) {
    rain++;
  } else {
    rain = 0;
  }
  lastPulseTime = pulseTime;
}

float getTempIn(void){
  float indetemp;
  indetemp = bmp.readTemperature() + INTEMP_ADJUST;
  return indetemp;
}

float getTempOut(void) {
  float udeTemp;
  outdoorSensor.read();
  udeTemp = outdoorSensor.getTemperature() + OUTTEMP_ADJUST;
  return udeTemp;
}

float getOutHumid(void) {
  float hum;
  outdoorSensor.read();
  hum = outdoorSensor.getHumidity();
  return hum;
}

float getPress(void){
  tryk = bmp.readPressure()/100+4.4;
  return tryk;
}
</code></pre>



<p>Det enester der er lidt specielt er:<br />void rainInt(void) {<br />  pulseTime = millis();<br />  if (pulseTime &#8211; lastPulseTime > 5000) {<br />    rain++;<br />  } else {<br />    rain = 0;<br />  }<br />  lastPulseTime = pulseTime;<br />}</p>



<p>Dette er interrupt rutinen. Den tæller op, når der kommer en puls fra regnmåleren, medmindre der er gået under 5 sekunder mellem to pulser. Dette ses som støj og der tælles ikke op.</p>



<h2 class="wp-block-heading">Diagram over displayenheden</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="812" data-attachment-id="2699" data-permalink="https://tomas.dk/ps/oleddisplay_schem/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/OLEDDisplay_schem.jpg" data-orig-size="1442,976" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="OLEDDisplay_schem" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/OLEDDisplay_schem-300x203.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/OLEDDisplay_schem-1200x812.jpg" src="https://tomas.dk/ps/wp-content/uploads/2024/12/OLEDDisplay_schem-1200x812.jpg" alt="" class="wp-image-2699" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/OLEDDisplay_schem-1200x812.jpg 1200w, https://tomas.dk/ps/wp-content/uploads/2024/12/OLEDDisplay_schem-300x203.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/OLEDDisplay_schem-150x102.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/OLEDDisplay_schem-768x520.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/12/OLEDDisplay_schem.jpg 1442w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<p>Igen et meget simpelt kredsløb. Alt kommunikation med denne enhed er via et web kald.</p>



<p>Herunder koden:</p>



<pre class="wp-block-code" style="font-size:9px;line-height:1"><code>#include &lt;Arduino.h>

/*


  U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2
  make -f Makefile.184.uno

   text
   8732	    					default, all active
   8500	    -232	    -2.65%		no U8G2_WITH_CLIP_WINDOW_SUPPORT
   8316	    -416	    -4.76%		no U8G2_WITH_FONT_ROTATION
   8606	    -126	    -1.44%	 	no U8G2_WITH_UNICODE
   8692	    -40	    -0.45%		no U8G2_WITH_INTERSECTION
   8328	    -404	    -4.62%	  	no U8G2_WITH_INTERSECTION  no U8G2_WITH_CLIP_WINDOW_SUPPORT
   8718	    -14	    -4.86%		no U8G2_WITH_HVLINE_SPEED_OPTIMIZATION
   8026	    -706	    -8.08%		no U8G2_WITH_FONT_ROTATION   no U8G2_WITH_INTERSECTION  no U8G2_WITH_CLIP_WINDOW_SUPPORT

   Some flags depend on each other: `U8G2_WITH_INTERSECTION` is required for `U8G2_WITH_CLIP_WINDOW_SUPPORT`, so `U8G2_WITH_INTERSECTION` is partly active as long
   as `U8G2_WITH_CLIP_WINDOW_SUPPORT` is requested.

*/

#include &lt;Arduino.h>
#include &lt;U8g2lib.h>
#include &lt;WiFi.h>
#include &lt;HTTPClient.h>
#include &lt;Arduino_JSON.h>
#include &lt;OneWire.h>
#include &lt;DallasTemperature.h>

#ifdef U8X8_HAVE_HW_SPI
#include &lt;SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include &lt;Wire.h>
#endif

#define FALSE 1
#define TRUE 0
const int ONEWIREPIN = 4;

// init oled
//U8G2_SH1106_128X64_NONAME_F_HW_I2C oled(U8G2_R0, /* reset=*/U8X8_PIN_NONE);
//U8G2_SSD1309_128X64_NONAME2_F_HW_I2C oled(U8G2_R0, /*reset=*/U8X8_PIN_NONE);
U8G2_SSD1309_128X64_NONAME0_F_HW_I2C oled(U8G2_R0, /*reset=*/U8X8_PIN_NONE);

// init onewire og sensor
OneWire oneWire(ONEWIREPIN);
DallasTemperature indeSensor(&amp;oneWire);

// WiFi setup
const char *ssid = "DIN_SSID";
const char *password = "SSID_PASSWORD";

// URL for vejrdata
const char *vejrDataURL = "URL_for_data";

JSONVar udeTemp = "-99.99";
JSONVar indeTemp = "-99.99";
JSONVar regn1 = "-99.99";
JSONVar regn24 = "-99.99";
JSONVar regn15 = "-99.99";
JSONVar humid = "-99.99";
JSONVar tryk = "-9999.99";
JSONVar tidString = "--";

unsigned JsonOk = FALSE;
int dispNr = 0;

unsigned long sidsteTid = millis(); // Web Refresh
unsigned long tid = 0;              // Tid nu
unsigned long dTid = millis();      // Display Refresh
const long interval = 60000;
const long webInterval = 60000;
const long dispUpdate = 5000;
unsigned int wifiOk = FALSE; // 1 = notok 0 = ok
const int cpuSpeedSaving = 80;
int strLen = 0;
int strPos = 0;
int pxStart = 0;
int nLen = 0;
int firstRead = 1;
int hour = 0;
int minUr = 0;
String vString = "";
String tekst = "";
String enhed = "";
String maalinger = "";
String sysTid = "";
float ut = 999.9;
float it = 999.9;
float r1 = 999.9;
float r15 = 999.9;
float r24 = 999.9;
float h = 999.9;
float p = 999.9;
char buffer&#91;30];
char ur&#91;5];

float vaerdi = 0.0;

// funtioner deklarationer
void displayRSSI(void);
String httpGETRequest(const char *serverName);
void dispData(String, JSONVar, String);
void dispBullet(int);

void setup(void)
{
  setCpuFrequencyMhz(cpuSpeedSaving);
  delay(500);
  // seriel baud rate
  Serial.begin(115200);
  // oled display
  oled.begin();
  // Temp sensor
  indeSensor.begin();

  // Wifi
  //WiFi.hostname("espWeather");
  WiFi.begin(ssid, password);

  Serial.print("CPU speed: ");
  Serial.println(getCpuFrequencyMhz());
  Serial.println("Forbinder");
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  // Set wifi sleep mode
  WiFi.setSleep(true);

  Serial.println("");
  Serial.print("Forbundet til WiFi med IP Adresse: ");
  Serial.println(WiFi.localIP());
  wifiOk = 0;
}

void loop(void)
{

  // Spørg efter data på webserver
  tid = millis();
  if (((tid - sidsteTid) > webInterval) || (firstRead == 1))
  {
    firstRead = 0;
    sidsteTid = millis();

    // Aflæs indesensor
    indeSensor.requestTemperatures();
    it = indeSensor.getTempCByIndex(0);
    Serial.printf("Inde temp: %.1f\n", it);

    // Tjek wifi
    if (WiFi.status() == WL_CONNECTED)
    {
      wifiOk = 0;
      maalinger = httpGETRequest(vejrDataURL);
      // Serial.println(maalinger);
      JSONVar vejrDataJson = JSON.parse(maalinger);
      if (JSON.typeof(vejrDataJson) == "undefined")
      {
        Serial.println("Fejl i modtagne JSON");
        JsonOk = FALSE;
      }
      else
      {
        JsonOk = TRUE;
        Serial.println(vejrDataJson);
        if (vejrDataJson.hasOwnProperty("systid"))
        {
          tidString = vejrDataJson&#91;"systid"];
          vString = JSON.stringify(tidString);
          hour = vString.substring(12, 14).toInt();
          minUr = vString.substring(15, 17).toInt();
          //Serial.println(hour);
        }
        if (vejrDataJson.hasOwnProperty("tryk"))
        {
          tryk = vejrDataJson&#91;"tryk"];
          vString = JSON.stringify(tryk);
          p = vString.toFloat();
        }
        if (vejrDataJson.hasOwnProperty("tempout"))
        {
          udeTemp = vejrDataJson&#91;"tempout"];
          vString = JSON.stringify(udeTemp);
          ut = vString.toFloat();
        }
        if (vejrDataJson.hasOwnProperty("rhout"))
        {
          humid = vejrDataJson&#91;"rhout"];
          vString = JSON.stringify(humid);
          h = vString.toFloat();
        }
        if (vejrDataJson.hasOwnProperty("r15min"))
        {
          regn15 = vejrDataJson&#91;"r15min"];
          vString = JSON.stringify(regn15);
          r15 = vString.toFloat();
        }
        if (vejrDataJson.hasOwnProperty("r1hour"))
        {
          regn1 = vejrDataJson&#91;"r1hour"];
          vString = JSON.stringify(regn1);
          r1 = vString.toFloat();
        }
        if (vejrDataJson.hasOwnProperty("r24hour"))
        {
          regn24 = vejrDataJson&#91;"r24hour"];
          vString = JSON.stringify(regn24);
          r24 = vString.toFloat();
        
        }
      }
    }
    else{
      wifiOk = 1;
    }
  }

  // Display data
  if (tid - dTid > dispUpdate)
  {
    dTid = millis();

    if (dispNr == 7)
    {
      dispNr = 0;
    }

    switch (dispNr)
    {
    case 0:
      vaerdi = ut;
      tekst = "Temp Ude i ";
      enhed = (String) char(176);
      dispNr++;
      break;

    case 1:
      vaerdi = it;
      tekst = "Temp inde i ";
      enhed = (String) char(176);
      dispNr++;
      break;

    case 2:
      vaerdi = h;
      tekst = "Luftfugtighed ";
      enhed = "%";
      dispNr++;
      break;

    case 3:
      vaerdi = p;
      tekst = "Tryk i ";
      enhed = "hPa";
      dispNr++;
      break;

    case 4:
      vaerdi = r15;
      tekst = "Regn 15 min ";
      enhed = "mm";
      dispNr++;
      break;

    case 5:
      vaerdi = r1;
      tekst = "Regn 1 t ";
      enhed = "mm";
      dispNr++;
      break;

    case 6:
      vaerdi = r24;
      tekst = "Regn 24 t ";
      enhed = "mm";
      dispNr++;
      break;

    default:
      break;
    }

    oled.clearBuffer();
    if ( hour >= 18 || hour &lt;= 8 ) {
      oled.setContrast(1);
      Serial.printf("Lav kontrast");
    }
    else
    {
      oled.setContrast(255);
      Serial.println("Høj kontrast");
    }
    
    if (wifiOk == 1)
    {
      Serial.println("WIFI AFBRUDT");
      oled.setCursor(0, 30);
      oled.print("WiFi AFBRUDT");
    }
    
    // Skillelinie
    oled.drawHLine(0, 19, 128);
    
    // overskrift
    oled.setCursor(2, 15);
    oled.setFont(u8g2_font_t0_13b_te);
    Serial.println(tekst);
    oled.print(tekst);
    oled.printf("%s", enhed);

    // Vaerdi
    sprintf(buffer, "%.1f", vaerdi);
    strPos = 4 - (strlen(buffer) / 2);
  
    if ((strlen(buffer) % 2) == 1)
    {
      pxStart =  (strPos-1) * 17 + 8 ;
    }
    else
    {
      pxStart = strPos * 17 - 5;
    }
    oled.setCursor(pxStart, 50);
    oled.setFont(u8g2_font_timR24_tn);
    Serial.println(buffer);
    oled.print(buffer);
    
    // Ur
    oled.setCursor(2, 63);
    oled.setFont(u8g2_font_6x10_mn);
    //oled.setFont(u8g2_font_t0_13b_te);
    sprintf(ur, "%02d:%02d", hour, minUr);
    oled.print(ur);
    Serial.println(ur);

    // WIFI signal styrke
    displayRSSI();
    // display indikator
    dispBullet((dispNr-1));
    oled.sendBuffer();
  }
}

void displayRSSI(void)
{
  int rssi;

  rssi = WiFi.RSSI();
  // Serial.printf("RSSI: %d\n", rssi);

  // virkelig godt signal >= -32dBm
  if (rssi >= -48)
  {
    oled.drawHLine(119, 2, 8);
    oled.drawHLine(119, 3, 8);
  }

  // rimeligt signal >= -67dBm
  if (rssi >= -67)
  {
    oled.drawHLine(121, 6, 4);
    oled.drawHLine(121, 7, 4);
  }

  // dårligt signal >= 70dBm
  if (rssi >= -70)
  {
    oled.drawHLine(122, 10, 2);
    oled.drawHLine(122, 11, 2);
  }
  // røv signal &lt; 70dBm
  if (rssi &lt; -70)
  {
    oled.drawHLine(122, 10, 1);
  }
}

void dispBullet(int nr)
{
  int x = 125;
  int y;
  int i;
  int r = 2;

  for (i = 0; i &lt;= 6; i++)
  {
    y = i * 6 + 25;
    if (i == nr)
    {
      // fyldt cirkel
      oled.drawDisc(x, y, r), U8G2_DRAW_ALL;
    }
    else
    {
      // Cirkel
      oled.drawCircle(x, y, r, U8G2_DRAW_ALL);
    }
  }
}

void dispData(String tekst, JSONVar vaerdi, String enhed)
{
  int strLen = 0;
  int strPos = 0;
  int pxStart = 0;
  String vString;

  // Ramme
  // oled.drawFrame(0, 0, 128, 64);

  // Værdi
}

String httpGETRequest(const char *serverName)
{
  WiFiClient client;
  HTTPClient http;

  // Your Domain name with URL path or IP address with path
  http.begin(client, serverName);

  // Send HTTP POST request
  int httpResponseCode = http.GET();

  String payload = "--";

  if (httpResponseCode > 0)
  {
    Serial.print("HTTP Response code: ");
    Serial.println(httpResponseCode);
    payload = http.getString();
  }
  else
  {
    Serial.print("Error code: ");
    Serial.println(httpResponseCode);
  }
  // Free resources
  http.end();

  return payload;
}</code></pre>



<p>Ikke så meget hokus pokus over dette. Meget er &#8220;lånt&#8221; fra diverse tutorials deraf de engelske kommentarer.</p>



<p>Næste del, som kommer senere, vil kort beskrive serverdelen.</p>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2700</post-id>	</item>
		<item>
		<title>Ultimativ powerbank</title>
		<link>https://tomas.dk/ps/ultimativ-powerbank/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Sun, 22 Dec 2024 20:02:27 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Gør det selv]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[3d print]]></category>
		<category><![CDATA[bosch]]></category>
		<category><![CDATA[li-ion]]></category>
		<category><![CDATA[Lithium]]></category>
		<category><![CDATA[usb]]></category>
		<guid isPermaLink="false">https://tomas.dk/ps/?p=2693</guid>

					<description><![CDATA[Efter al den snak om at man bør have noget minimumsudstyr til at overleve på, tænkte jeg at det burde være muligt at lave noget selv. I stedet for at købe en radio, der kan trækkes op tænkte jeg at det ville være smartere at bruge noget af det der allerede var i huset.Faktisk viser&#8230; <a class="more-link" href="https://tomas.dk/ps/ultimativ-powerbank/">Læs mere <span class="screen-reader-text">Ultimativ powerbank</span></a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1119" height="1024" data-attachment-id="2685" data-permalink="https://tomas.dk/ps/printpaasat1/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-scaled.jpg" data-orig-size="2560,2342" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.7&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1734898766&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;5.11&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.066666666666667&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="PrintPåsat1" data-image-description="" data-image-caption="&lt;p&gt;Konverter monteret på batteri&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-300x274.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1119x1024.jpg" src="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1119x1024.jpg" alt="" class="wp-image-2685" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1119x1024.jpg 1119w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-300x274.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-150x137.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-768x703.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1536x1405.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-2048x1874.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1568x1435.jpg 1568w" sizes="auto, (max-width: 1119px) 100vw, 1119px" /></figure>



<p>Efter al den snak om at man bør have noget minimumsudstyr til at overleve på, tænkte jeg at det burde være muligt at lave noget selv. I stedet for at købe en radio, der kan trækkes op tænkte jeg at det ville være smartere at bruge noget af det der allerede var i huset.<br />Faktisk viser det sig, at vi har en radio, der kan forsynes med 5V og kan modtage både AM, FM og DAB+. Der ud over har vi en plæneklipper der kører på et stk. 36V batteri. Dem har vi så to af, og de er altid opladte. Derfor er det jo nærliggende at benytte dem som en reserve. Man kan reelt benytte batterier fra boremaskiner og lignende med denne løsning.<br />Jeg købte et USB panel og en buck down på Aliexpress for under 75kr, og spadestik hos T. Hansen. Buck down dimsen omsætter de 36V fra batteriet til 24V, som er det maximale USB panelet kan tage. USB panelet er beregnet til mellem 12-24V.<br />Se løsningen i Galleriet herunder:</p>



<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/tomas.dk\/ps\/ultimativ-powerbank\/"}'  class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="701" height="474" data-attachment-id="2690" data-permalink="https://tomas.dk/ps/powerbank-2/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBank-1.jpg" data-orig-size="701,474" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="PowerBank" data-image-description="" data-image-caption="&lt;p&gt;Konverter med Låg&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBank-1-300x203.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBank-1.jpg" data-id="2690" src="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBank-1.jpg" alt="" class="wp-image-2690" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBank-1.jpg 701w, https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBank-1-300x203.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBank-1-150x101.jpg 150w" sizes="auto, (max-width: 701px) 100vw, 701px" /><figcaption class="wp-element-caption">Konverter med Låg</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="682" height="495" data-attachment-id="2689" data-permalink="https://tomas.dk/ps/powerbankulaag/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBankUlaag.jpg" data-orig-size="682,495" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="PowerBankUlaag" data-image-description="&lt;p&gt;Elektronikbox uden låg med BuckDown converter.&lt;/p&gt;
" data-image-caption="&lt;p&gt;Konverter uden låg&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBankUlaag-300x218.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBankUlaag.jpg" data-id="2689" src="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBankUlaag.jpg" alt="" class="wp-image-2689" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBankUlaag.jpg 682w, https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBankUlaag-300x218.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/PowerBankUlaag-150x109.jpg 150w" sizes="auto, (max-width: 682px) 100vw, 682px" /><figcaption class="wp-element-caption">Konverter uden låg</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="650" height="917" data-attachment-id="2687" data-permalink="https://tomas.dk/ps/usbplug/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/USBPlug.jpg" data-orig-size="650,917" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="USBPlug" data-image-description="" data-image-caption="&lt;p&gt;USB Panel&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/USBPlug-213x300.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/USBPlug.jpg" data-id="2687" src="https://tomas.dk/ps/wp-content/uploads/2024/12/USBPlug.jpg" alt="" class="wp-image-2687" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/USBPlug.jpg 650w, https://tomas.dk/ps/wp-content/uploads/2024/12/USBPlug-213x300.jpg 213w, https://tomas.dk/ps/wp-content/uploads/2024/12/USBPlug-106x150.jpg 106w" sizes="auto, (max-width: 650px) 100vw, 650px" /><figcaption class="wp-element-caption">USB Panel</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1121" height="1024" data-attachment-id="2686" data-permalink="https://tomas.dk/ps/printtop/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop.jpg" data-orig-size="2404,2196" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.7&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1734898743&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;5.11&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.05&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="PrintTop" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-300x274.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-1121x1024.jpg" data-id="2686" src="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-1121x1024.jpg" alt="" class="wp-image-2686" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-1121x1024.jpg 1121w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-300x274.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-150x137.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-768x702.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-1536x1403.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-2048x1871.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintTop-1568x1432.jpg 1568w" sizes="auto, (max-width: 1121px) 100vw, 1121px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1119" height="1024" data-attachment-id="2685" data-permalink="https://tomas.dk/ps/printpaasat1/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-scaled.jpg" data-orig-size="2560,2342" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.7&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1734898766&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;5.11&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.066666666666667&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="PrintPåsat1" data-image-description="" data-image-caption="&lt;p&gt;Konverter monteret på batteri&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-300x274.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1119x1024.jpg" data-id="2685" src="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1119x1024.jpg" alt="" class="wp-image-2685" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1119x1024.jpg 1119w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-300x274.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-150x137.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-768x703.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1536x1405.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-2048x1874.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat1-1568x1435.jpg 1568w" sizes="auto, (max-width: 1119px) 100vw, 1119px" /><figcaption class="wp-element-caption">Konverter monteret på batteri</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="728" data-attachment-id="2684" data-permalink="https://tomas.dk/ps/printpaasat/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-scaled.jpg" data-orig-size="2560,1553" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.7&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1734898784&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;5.11&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.1&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="PrintPåsat" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-300x182.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-1200x728.jpg" data-id="2684" src="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-1200x728.jpg" alt="" class="wp-image-2684" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-1200x728.jpg 1200w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-300x182.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-150x91.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-768x466.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-1536x932.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-2048x1243.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintPaasat-1568x951.jpg 1568w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="900" data-attachment-id="2683" data-permalink="https://tomas.dk/ps/printconnector/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-scaled.jpg" data-orig-size="2560,1920" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.7&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1734898819&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;5.11&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.033333333333333&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="PrintConnector" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-300x225.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-1200x900.jpg" data-id="2683" src="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-1200x900.jpg" alt="" class="wp-image-2683" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-1200x900.jpg 1200w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-300x225.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-150x113.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-768x576.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-1536x1152.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-2048x1536.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/12/PrintConnector-1568x1176.jpg 1568w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1023" height="748" data-attachment-id="2682" data-permalink="https://tomas.dk/ps/buckdown/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/BuckDown.jpg" data-orig-size="1023,748" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="BuckDown" data-image-description="" data-image-caption="&lt;p&gt;Buck down (5-50V ind, 5-40V ud)&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/BuckDown-300x219.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/BuckDown.jpg" data-id="2682" src="https://tomas.dk/ps/wp-content/uploads/2024/12/BuckDown.jpg" alt="" class="wp-image-2682" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/BuckDown.jpg 1023w, https://tomas.dk/ps/wp-content/uploads/2024/12/BuckDown-300x219.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/BuckDown-150x110.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/BuckDown-768x562.jpg 768w" sizes="auto, (max-width: 1023px) 100vw, 1023px" /><figcaption class="wp-element-caption">Buck down (5-50V ind, 5-40V ud)</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="863" data-attachment-id="2681" data-permalink="https://tomas.dk/ps/bosch36v/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-scaled.jpg" data-orig-size="2560,1841" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;1.7&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XQ-BQ52&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1734898749&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;5.11&quot;,&quot;iso&quot;:&quot;200&quot;,&quot;shutter_speed&quot;:&quot;0.076923076923077&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="Bosch36V" data-image-description="" data-image-caption="&lt;p&gt;Bosch batteri&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-300x216.jpg" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-1200x863.jpg" data-id="2681" src="https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-1200x863.jpg" alt="" class="wp-image-2681" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-1200x863.jpg 1200w, https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-300x216.jpg 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-150x108.jpg 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-768x552.jpg 768w, https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-1536x1104.jpg 1536w, https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-2048x1472.jpg 2048w, https://tomas.dk/ps/wp-content/uploads/2024/12/Bosch36V-1568x1127.jpg 1568w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">Bosch batteri</figcaption></figure>
</figure>



<p>3D tegning hentes her: <a href="https://tomas.dk/download/Bosch36VPowerBank.FCStd">Bosch36VPowerBank</a><br />Tegning er lavet i FreeCad1.0.0.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2693</post-id>	</item>
		<item>
		<title>Vejrstation del 2</title>
		<link>https://tomas.dk/ps/vejrstation-del-2/</link>
		
		<dc:creator><![CDATA[Tomas Jensen]]></dc:creator>
		<pubDate>Sun, 08 Dec 2024 13:51:57 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Natur]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[Vejr]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[3d print]]></category>
		<category><![CDATA[freecad]]></category>
		<category><![CDATA[pla]]></category>
		<category><![CDATA[sensorer]]></category>
		<category><![CDATA[vejrstation]]></category>
		<guid isPermaLink="false">https://tomas.dk/ps/?p=2672</guid>

					<description><![CDATA[Vejrstationen er delt i flere hovedkomponenter: Alt 3D arbejde er lavet med FreeCad.Hent tegninger via følgende links:&#8211; Engelsk hus.&#8211; Regnmåler.&#8211; Stueenhed.&#8211; Kabinet for ardunio. Delene der placeres udendørs er printet i PETG og indendørs dele er printet i PLA. Hvis der er nogen der har interesse, eksporterer jeg gerne til et format der kan læses&#8230; <a class="more-link" href="https://tomas.dk/ps/vejrstation-del-2/">Læs mere <span class="screen-reader-text">Vejrstation del 2</span></a>]]></description>
										<content:encoded><![CDATA[
<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/tomas.dk\/ps\/vejrstation-del-2\/"}'  class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large is-style-twentytwentyone-border"><img loading="lazy" decoding="async" width="587" height="864" data-attachment-id="2657" data-permalink="https://tomas.dk/ps/engelskhus/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" data-orig-size="587,864" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="EngelskHus" data-image-description="" data-image-caption="&lt;p&gt;Engelsk hus med AM2120 sensor&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-204x300.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" data-id="2657" src="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" alt="" class="wp-image-2657" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png 587w, https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-204x300.png 204w, https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-102x150.png 102w" sizes="auto, (max-width: 587px) 100vw, 587px" /><figcaption class="wp-element-caption">Engelsk hus med AM2120 sensor</figcaption></figure>
</figure>



<p>Vejrstationen er delt i flere hovedkomponenter:</p>



<ul class="wp-block-list">
<li>Engelsk hus, der indeholder temperatur og luftfugtighedssensor, AM2120</li>



<li>Regnsensor som er af vippetypen. Her kan bruges enten et reed relæ eller en proximity sensor der virker ved 5V.</li>



<li>En Arduino der aflæser værdier fra sensorer og holder dem klar til af læsning fra en webserver. I denne enhed sidder ligeledes lufttrykmåleren.</li>



<li>En stueenhed, der kan vise de vigtigste data. Denne er baseret på ESP32. Den  måler ligeledes stuetemperaturen.</li>
</ul>



<figure data-carousel-extra='{"blog_id":1,"permalink":"https:\/\/tomas.dk\/ps\/vejrstation-del-2\/"}'  class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="587" height="864" data-attachment-id="2657" data-permalink="https://tomas.dk/ps/engelskhus/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" data-orig-size="587,864" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="EngelskHus" data-image-description="" data-image-caption="&lt;p&gt;Engelsk hus med AM2120 sensor&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-204x300.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" data-id="2657" src="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png" alt="" class="wp-image-2657" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus.png 587w, https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-204x300.png 204w, https://tomas.dk/ps/wp-content/uploads/2024/11/EngelskHus-102x150.png 102w" sizes="auto, (max-width: 587px) 100vw, 587px" /><figcaption class="wp-element-caption">Engelsk hus med AM2120 sensor</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="698" height="818" data-attachment-id="2658" data-permalink="https://tomas.dk/ps/regnmaaler/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler.png" data-orig-size="698,818" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="" data-image-description="" data-image-caption="&lt;p&gt;Regnmåler. Her vist med reed relæ.&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler-256x300.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler.png" data-id="2658" src="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler.png" alt="Regnmåler" class="wp-image-2658" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler.png 698w, https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler-256x300.png 256w, https://tomas.dk/ps/wp-content/uploads/2024/11/Regnmaaler-128x150.png 128w" sizes="auto, (max-width: 698px) 100vw, 698px" /><figcaption class="wp-element-caption">Regnmåler. Her vist med reed relæ.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="825" height="544" data-attachment-id="2655" data-permalink="https://tomas.dk/ps/displayfront/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront.png" data-orig-size="825,544" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="DisplayFront" data-image-description="" data-image-caption="&lt;p&gt;Stueenhed med OLED skærm&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront-300x198.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront.png" data-id="2655" src="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront.png" alt="" class="wp-image-2655" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront.png 825w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront-300x198.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront-150x99.png 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayFront-768x506.png 768w" sizes="auto, (max-width: 825px) 100vw, 825px" /><figcaption class="wp-element-caption">Stueenhed med OLED skærm</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="892" height="675" data-attachment-id="2654" data-permalink="https://tomas.dk/ps/displaybottom/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom.png" data-orig-size="892,675" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="DisplayBottom" data-image-description="" data-image-caption="&lt;p&gt;Stueenhed. Vist med temperatursensor og plads til kabel for sensoren.&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom-300x227.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom.png" data-id="2654" src="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom.png" alt="" class="wp-image-2654" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom.png 892w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom-300x227.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom-150x114.png 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/DisplayBottom-768x581.png 768w" sizes="auto, (max-width: 892px) 100vw, 892px" /><figcaption class="wp-element-caption">Stueenhed. Vist med temperatursensor og plads til kabel for sensoren.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="971" height="591" data-attachment-id="2653" data-permalink="https://tomas.dk/ps/arduinobox/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox.png" data-orig-size="971,591" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="ArduinoBox" data-image-description="" data-image-caption="&lt;p&gt;Kabinet for arduinoen&lt;/p&gt;
" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox-300x183.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox.png" data-id="2653" src="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox.png" alt="" class="wp-image-2653" srcset="https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox.png 971w, https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox-300x183.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox-150x91.png 150w, https://tomas.dk/ps/wp-content/uploads/2024/11/ArduinoBox-768x467.png 768w" sizes="auto, (max-width: 971px) 100vw, 971px" /><figcaption class="wp-element-caption">Kabinet for arduinoen</figcaption></figure>
</figure>



<p>Alt 3D arbejde er lavet med FreeCad.<br />Hent tegninger via følgende links:<br />&#8211; <a href="https://tomas.dk/download/EngelskHus.FCStd">Engelsk hus</a>.<br />&#8211; <a href="https://tomas.dk/download/Regnmaaler.FCStd">Regnmåler</a>.<br />&#8211; <a href="https://tomas.dk/download/Display.FCStd">Stueenhed</a>.<br />&#8211; <a href="https://tomas.dk/download/ArduinoBox.FCStd">Kabinet for ardunio</a>.</p>



<p>Delene der placeres udendørs er printet i PETG og indendørs dele er printet i PLA.</p>



<p>Hvis der er nogen der har interesse, eksporterer jeg gerne til et format der kan læses af andre designværktøjer. Send da en mail til tcj(a)tomas.dk</p>



<p>Opdatering 12. januar 2025:<br />Jeg har opdaget, at der er problemer med vippebunden i det engelske hus. Vippen har det med at hænge p.g.a. at der samler sig en dråbe på undersiden. Overfladespændingen gør, at vippen &#8220;limer&#8221; sig fast. Derfor er designet nu lavet så vandet nemmere render fra og kontaktfladen er minimeret. Der ud over er det en fordel at give både vippebunden og vippen noget silicone. Dette kan enten være på spray eller som siliconefedt. Det sidste holder bedst men det skal være et meget tyndt lag. Det nye design kan hentes via dette link: <strong><a href="https://tomas.dk/download/VejrStation/VippeBundV2.step">VippeBundV2.step</a></strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="798" height="630" data-attachment-id="2708" data-permalink="https://tomas.dk/ps/vejrstation-del-2/vippebundv2/" data-orig-file="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2.png" data-orig-size="798,630" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="VippebundV2" data-image-description="" data-image-caption="" data-medium-file="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2-300x237.png" data-large-file="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2.png" src="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2.png" alt="" class="wp-image-2708" srcset="https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2.png 798w, https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2-300x237.png 300w, https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2-150x118.png 150w, https://tomas.dk/ps/wp-content/uploads/2024/12/VippebundV2-768x606.png 768w" sizes="auto, (max-width: 798px) 100vw, 798px" /></figure>



<p>Desuden er hængslerne forstærket og der er lavet hul til en 8 mm proximitysensor.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2672</post-id>	</item>
	</channel>
</rss>
