Load cell mod voor t3pa

Door K-Jay op vrijdag 23 juni 2017 22:41 - Reacties (0)
Categorie: Geknutsel, Views: 275

Inleiding
Naast mountainbiken, rommelen met de raspberry pi en wroeten in de volkstuin heb ik nůg een hobby: simracen. Begin dit jaar heb ik een Thrustmaster T300 racestuur gekocht en er een review over geschreven.
Na een paar maanden gebruik vind ik de T300 nog steeds een prima apparaat, maar constateer ik dat de bijbehorende pedalen wat tekort schieten. Hoezo, zie ik je denken, pedalen zijn pedalen, toch? Nou, niet helemaal. Ik zal proberen dat kort uit te leggen.

https://ic.tweakimg.net/images/member/original/1CMllc3JBh1cxWr.jpeg

Remkracht
De pedalen die je bij de meeste racestuurtjes krijgt werken met potmeters: hoe verder je het pedaal indrukt, hoe meer gas/remkracht/ontkoppeling er naar je virtuele racewagen gestuurd wordt. Net als een volumeknop zeg maar. Voor gaspedaal en koppeling is dat niet zo'n probleem. Zo gaat het in het echt ook. Bij de rem is dat echter anders: de remkracht in een (race)auto is niet louter afhankelijk van hoe ver je het pedaal intrapt, maar juist van de hoeveelheid druk die je voet op het pedaal uitoefent.

Voordeel hiervan is dat je gebruik kan maken van je 'muscle memory' als het op remmen aankomt: het is voor je brein veel makkelijker om te onthouden hoeveel kracht je moest gebruiken dan om te onthouden hoe ver je het pedaal moest intrappen. Dit resulteert in preciezer remmen en daardoor consequentere (en uiteindelijk snellere) rondetijden.

Load cell
Als je op onderzoek uitgaat, zie je al snel dat alle duurdere pedaalsets (Fanatec, Heusinkveld, etc) gebruik maken van een drukgevoelige sensor in het rempedaal, beter bekend als een "load cell". Dat wilde ik ook wel eens proberen. Ik kon twee dingen doen: een dure pedaalset kopen, of zelf iets maken. Je voelt hem al aankomen...

Aan de slag
Mijn belangrijkste uitgangspunt was dat mijn aanpassingen eenvoudig ongedaan te maken moesten zijn. Sterker nog, ik wil dat mijn pedaalset binnen een paar minuten om te bouwen is van drukgevoelig naar "normaal" zonder dat er iets van te zien is. Altijd handig voor eventuele garantiegevallen, of voor als mijn prototype stuk gaat.

https://tweakers.net/ext/f/kPpA2sw0fxXNrP91osrqjktW/full.jpg
Testopstelling

Uiteraard was ik niet de eerste die z'n pedaalsetje van een load cell probeerde te voorzien. Op internet zijn heel wat ervaringen te vinden die goed bruikbaar zijn als inspiratie. Uiteindelijk heb ik een prototype kunnen bouwen dat grofweg bestaat uit de volgende onderdelen:
  • demper voor tussen pedaal en load cell (gele stukje op de foto)
  • de load-cell zelf (het alu staafje waar de zwarte kabel uit komt)
  • load cell amplifier (schakeling met IC om de juiste signalen uit te sturen)
  • behuizing en bevestiging (oude adsl-splitterbehuizing)
  • kabel en connector
De kabel die je normaalgesproken vanuit de pedaalset in de wheelbase prikt, gaat nu in de load cell mod-behuizing. Vanuit de behuizing gaat dan een kabel met net zo'n connector naar de wheelbase. De unit zelf heb ik bevestigd op de houder waar de conical brake mod, standaard bijgeleverd op de t3pa, op vastgemaakt kan worden.

load cell mod
Prototype

Testfase
Op dit moment heb ik de mod een paar weken in gebruik. Ik ben nu aan het experimenteren met de juiste waarde voor de componenten in de amplifier, maar ook met de materialen voor de demper en de bevestiging. Een leuk proces, zeker ook omdat het racen superlekker gaat zo! Wie weet ga ik het eens seriematig produceren...iemand interesse?

Zwembadtemperatuur via mqtt

Door K-Jay op vrijdag 23 juni 2017 11:09 - Reacties (7)
CategorieŽn: Geknutsel, Home automation, Raspberry pi, Views: 921

Inleiding
Als je mijn voorgaande blogposts gelezen hebt, weet je dat ik regelmatig met pimatic in de weer ben. Zo kan ik verlichting schakelen, temperatuur loggen, een foto maken als iemand aanbelt en nog veel meer.

433MHz vs wifi
Het is mooi weer en daarom heb ik een zwembadje in de achtertuin opgezet. Je kunt natuurlijk met je grote teen voelen hoe koud het water is, maar de tweaker in mij wil de watertemperatuur uiteraard objectief vastgelegd hebben. Probleem: de afstand van mijn meterkast naar het zwembad is ongeveer 25 meter. Te lang voor een kabeltje en eigenlijk ook te lang om 433MHz-communicatie te gebruiken. Maar dankzij mijn nieuwe Unifi accesspoint heb ik wel beschikking over betrouwbare wifi!

Mqtt
Het wordt dus wifi. Een geschikt protocol om dan te gebruiken is mqtt, een protocol waarmee IoT-apparaten op een simpele manier informatie met elkaar uitwisselen. Bij een mqtt-uitwisseling zijn drie partijen betrokken:
- een publicerende partij, in mijn geval een ESP8266 met een temperatuursensor
- een ontvangende partij, die de gepubliceerde gegevens weergeeft, in mijn geval pimatic
- een broker die de communicatie tussen beide bovenstaande partijen verzorgt. Ik gebruik Mosquitto, geinstalleerd op de Raspberry pi waar pimatic ook op staat

Wat heb je nodig
- een werkende pimatic installatie op een Raspberry pi
- een ESP8266 nodemcu (ebay link)
- een DS18b20 temperatuursensor (ebay link)
- een weerstand 4.7K
- voeding voor je ESP (standaard telefoonoplader, micro-usb)
- behuizing, ik gebruik deze

Aan de slag

Stap 1: ESPEasy installeren op de ESP8266
De open-sourcesoftware ESPEasy zorgt dat de ESP8266 diverse sensoren kan uitlezen en de waarden via mqtt kan versturen. ESPEasy kan nog veel meer overigens.
Download ESPEasy en verbind je ESP met een USB-kabel aan je PC. Volg nu het stappenplan op de wiki van ESPEasy:
Upload succesvol? Herstart je ESP en maak verbinding met het wifi-netwerk dat je ESP nu heeft opgezet. Vul in de getoonde pagina de gegevens van jouw wifi-netwerk in. De ESP is nu in je netwerk opgenomen en kan via de browser beheerd worden.
Tip vanuit de reacties: kies bij de Controllers voor OpenHAB MQTT.

Stap 2: Temperatuursensor verbinden en uitlezen
Verbind de DS18B20 als volgt aan je ESP:
- zwart aan GND
- rood aan 3V3
- geel aan GPIO 13 (D7)
en plaats een weerstand van 4.7K tussen geel en rood.
Navigeer nu met een browser naar het ip van je ESP. Voeg een nieuw device toe:

https://tweakers.net/ext/f/Tm3FMEeJcEGlIxnvoqZtPp2J/full.png

Stap 3: Mosquitto installeren
Ga met Putty of een andere SSL-tool naar je Raspberry pi. Voer de volgende commando’s uit:
Key importeren:
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key

mosquitto ophalen:
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list

terug naar root:
cd

updaten:
sudo apt-get update

mosquitto installeren:
sudo apt-get install mosquitto

mosquitto starten:
mosquitto -v

Stap 4: pimatic aanpassen
Installeer in pimatic de plugin pimatic-mqtt. Dat kan via de interface, of door de config aan te passen.
Voeg vervolgens de volgende regels toe aan je config, bij de devices:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   {
      "class": "MqttSensor",
      "id": "espeasy_1",
      "name": "espeasy_1",
      "attributes": [
        {
          "name": "temperature",
          "topic": "/espeasy_1/temp_zwembad/Temperature",
          "type": "number",
          "unit": "įC",
          "acronym": "Temperatuur zwembad",
          "messageMap": {}
        }
      ],
      "xAttributeOptions": []
    }


Herstart pimatic. Je nieuwe device zal nu de temperatuur laten zien.

https://tweakers.net/ext/f/XpLIOtp72JIgMsDNxu7EPSuV/full.png

Nog een extra tip: na een eventuele herstart van je pi moet je Mosquitto ook weer starten. Dit kun je automatiseren door het starten van Mosquitto als een regel aan pimatic toe te voegen waarin je gebruik maakt van de shell-execute plugin:

code:
1
2
3
4
5
6
7
    {
      "id": "start-mosquitto",
      "name": "Start mosquitto",
      "rule": "when pimatic is starting then execute \"sudo mosquitto -d\"",
      "active": true,
      "logging": true
    }


En nu verder!
Met ESPEasy kun je nog veel meer. Ik heb inmiddels ook al twee deursensoren op dezelfde ESP aangesloten. Indien gewenst kan ik dat in een volgend blogbericht uitleggen. Verder wil ik de mqtt-communicatie nog beveiligen met een wachtwoord. Genoeg te doen dus!

https://tweakers.net/ext/f/C7aFklF19mquZ2S4nT3kpwIe/full.jpg
En je ziet er bijna niets van

Op verzoek twee foto's van mijn ESP in de schuur, kastje open en kastje dicht.
https://tweakers.net/ext/f/YiYTP7b3vqurungVou81S6wj/medium.jpg
https://tweakers.net/ext/f/FbYRkU3fLVcuXHCY24q725IY/medium.jpg

Review T300 alcantara

Door K-Jay op vrijdag 10 maart 2017 15:39 - Reageren is niet meer mogelijk
Categorie: -, Views: 2.632

Beetje stil op mijn blog. Maak je geen zorgen, pimatic draait nog hier. Maar ik heb nog meer hobby's die tijd kosten. Een van die hobby's heeft geen blogpost, maar een review opgeleverd: https://tweakers.net/prod...antara-edition-zwart.html

Heteluchtverwarming loggen (pimatic deel 5)

Door K-Jay op maandag 5 december 2016 11:55 - Reacties (4)
CategorieŽn: Geknutsel, Home automation, Raspberry pi, Views: 3.620

Inleiding
Mijn woning wordt verwarmd met een heteluchtverwarmingssysteem van Brink. Omdat ik wel benieuwd ben wat dat apparaat allemaal uitspookt, wil ik dat inzichtelijk hebben in pimatic. Ik wil wel eens zien wanneer en hoe vaak hij aanslaat en hoe lang hij dan aanstaat.

Achtergrond
De installatie werkt als volgt.
Op zolder heb ik een normale CV-ketel (Brink Kombi Kompakt) die warm water maakt voor de verwarming en de douche. Het warme water voor de verwarming stroomt echter niet door radiatoren, maar naar een luchtverwarmer (Brink Elan). Deze zet de warmte van het water om naar warme lucht en stuurt deze naar alle uitstroomroosters in huis.
De warmtevraag wordt geregeld door een Honeywell Chronotherm Touch-thermostaat in de woonkamer.

Meten is weten
De luchtverwarmer slaat aan als de temperatuur van het aangevoerde water boven een bepaalde drempel komt. Die ligt volgens mij rond de 30 graden. Dus als ik die temperatuur kan meten, weet ik wanneer de luchtverwarmer aan is.
Ik heb een DS18B20-sensor gekoppeld aan een ESP8266 met ESPimatic. De sensor zit op de aanvoerleiding ge-tiewrapt en ESPimatic geeft elke minuut de meetwaarde door aan pimatic.

De sensor

Verwerking in pimatic
Ik kan de meetwaarden nu dus zien in pimatic. I love grafiekjes. Het temperatuurverloop is duidelijk zichtbaar.

Grafiek met meetwaarden

Nu wil ik nog in een oogopslag zien of de heteluchtverwarmer aan staat of niet. Dat kan met een variabele, twee regels en een device.

Variabele
In de variabele "vorigecvtemp" leg ik de voorlaatste meetwaarde vast. Let op, je moet deze bij het definieren even een startwaarde van nul geven.

Regels
Met deze regels stel ik vast of de of de aanvoertemperatuur aan het stijgen of aan het dalen is. Stijgend en warmer dan 30 betekent Aan, dalend betekent uit. $temp2 is overigens de doorgegeven meetwaarde.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
      "id": "heteluchtverwarming-aan-of-uit",
      "name": "Heteluchtverwarming aan of uit 1",
      "rule": "when $temp2 > 30 and $vorigecvtemp < $temp2 then $vorigecvtemp = $temp2 and $cvketel = \"Aan\"",
      "active": true,
      "logging": false
},
{
      "id": "heteluchtverwarming-aan-of-uit-2",
      "name": "Heteluchtverwarming  aan of uit2",
      "rule": "when $vorigecvtemp > $temp2 then $vorigecvtemp = $temp2 and $cvketel = \"Uit\"",
      "active": true,
      "logging": false
}



Device
Als laatste een VariablesDevice om de status weer te kunnen geven in de gui van pimatic:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
{
      "id": "heteluchtverwarming",
      "name": "Heteluchtverwarming",
      "class": "VariablesDevice"
      "variables": [
        {
          "name": "cvketel",
          "expression": "$cvketel",
          "type": "string"
        }
      ],
      "xAttributeOptions": []
}



En dan is dit het resultaat:

Status in de GUI

En verder...
Ik heb dus geen fancy slimme thermostaat, maar in mijn Honeywell thermostaat zit wel een zogenaamd "TELE"-contact. Volgens de handleiding "biedt de TELE-functie de mogelijkheid om de temperatuurinstelling op afstand, bijvoorbeeld via de telefoon, te wijzigen.". Ik zie een volgend project aankomen...

Snapshot op je mobiel als de bel gaat (pimatic deel 4)

Door K-Jay op donderdag 1 december 2016 15:24 - Reacties (16)
CategorieŽn: Geknutsel, Home automation, Raspberry pi, Views: 6.653

Belofte maakt schuld
In mijn laatste blogpost over domotica kondigde ik aan om wat te schrijven over het meesturen van een snapshot als er wordt aangebeld. Inmiddels zijn we bijna een jaar verder. Tijd om de belofte in te lossen.

Camera
Om een plaatje te maken heb je een camera nodig. En een beetje tweaker laat die uit China komen. Ik hoorde goede verhalen over de TOP-201 camera, dus die werd het. Het kostte een middag prutsen om hem aan de praat te krijgen, maar uiteindelijk had ik beeld via de meegeleverde web-interface. Tijd voor de volgende stap: zorgen dat het ding een snapshot maakt.

Snapshot maken en versturen
Kort samengevat moet het volgende gebeuren als er wordt aangebeld:
  • De camera maakt een foto en slaat die lokaal op
  • De gemaakte foto wordt ge-upload naar een plaats waar mijn telefoon ook toegang heeft
  • Er wordt een notificatie naar mijn telefoon gestuurd met daarin de locatie van de foto
Mijn camera levert een rtsp-stream aan. Daar kun je een snapshot van maken met het commando "avconv". Om daarvan gebruik te kunnen maken moet je eerst het commando

sudo apt-get install libav-tools 

uitvoeren op je raspberry pi.

Nu moet je een .sh-bestandje maken waarin we alle stappen gaan uitvoeren. Met de volgende regel maak je de snapshot en sla je het op in de map "snapshot/images":

code:
1
/usr/bin/avconv -rtsp_transport tcp -i 'rtsp://'ip-van-je-camera'/user=user-van-je-camera&password=paswword-van-je-camera&channel=1&stream=1.sdp' -f image2 -vframes 1 -aspect 16:9 /home/pi/snapshot/images/filename-van-je-plaatje.jpeg



En met dit commando upload je de afbeelding naar een plekje in de cloud:

code:
1
curl -T /home/pi/snapshot/images/filename-van-je-plaatje.jpeg ftp://$USERNAME:$PASSWORD@$SERVER/$DIR


Je zou hier ook Dropbox of iets anders voor kunnen gebruken, zie de reactie van i-chat onder deze blogpost.

Nu heb je alle informatie die in het pushbericht moet. Versturen doe ik met Pushalot:

code:
1
curl -F "AuthorizationToken=XXX" -F "Body=Er staat iemand voor de deur..." -F "Title=De bel gaat!" -F "LinkTitle=Afbeelding" -F  "Link=http://url-van-je-plaatje/"$today.jpeg -F "Image=http://url-van-je-plaatje/"$today.jpeg -F "Source=Voordeur" https://pushalot.com/api/sendmessage



Zorg dat je .sh-bestand in ieder geval bovenstaande commando's bevat. Desgewenst kun je het uitbreiden door alle variabelen netjes te definieren, de datumtijd in de bestandsnaam te verwerken, eerst te controleren of de camera wel online is, enzovoort. Ik heb het bestand opgeslagen als debelgaat.sh op mijn raspberry pi.

De laatste stap
Nu nog even aan pimatic vertellen dat debelgaat.sh uitgevoerd moet worden als er op de bel gedrukt wordt. Ik heb een device "deurbelsnapshot" gedefinieerd:

code:
1
2
3
4
5
6
7
8
9
10
{
      "id": "deurbelsnapshot",
      "name": "Snapshot deurbel",
      "class": "ShellSwitch",
      "onCommand": "sudo /home/pi/snapshot/snapshot.sh >/dev/null 2>&1 || true",
      "offCommand": "echo off",
      "getStateCommand": "echo false",
      "interval": 0,
      "forceExecution": true
    },


Deze maakt gebruik van de shell-execute-plugin.

Als er wordt aangebeld, treedt de volgende regel in werking:

code:
1
if deurbel is opened then switch on deurbelsnapshot after 1 second


en binnen een paar tellen wordt de foto gemaakt, opgeslagen, ge-upload, wordt de pushmessage verzonden en ontvangen op mijn telefoon.

Pushberichten

Niet alleen als de bel gaat...
Ik laat mijn camera niet alleen een foto maken als de bel gaat, maar ook als de voordeur open gaat of als er beweging gedetecteerd wordt. In deze gevallen gaat er echter geen pushbericht naar mijn telefoon. Om alle foto's wel inzichtelijk te hebben, heb ik een iframe in pimatic draaien waar een php-script achter zit dat de meest recente foto's toont. Met de knoppen kun je navigeren en door te swipen krijg je de vorige/volgende foto.

pakketje uit China?