Projecten

Na een aantal jaar was de Peugeot 307 Break toch wat klein, de nieuwe rolstoel was weer wat langer, er zat een stuk onderhoud aan te komen dus na wat zoeken een mooie vervangen gevonden. Weer een echte Citroen C5 Break, met de echte citroen hydraulische vering. Er zitten nog wat puntjes aan die geregeld moeten worden maar dat komt nog wel.

 Hallo Citroen C5 Break Caractere bouwjaar 2006, 2.0 16v LPG-G3

Citroen C5

Citroen C5

Na een aantal jaar was de Peugeot 307 Break toch wat klein, dag 307.

Peugeot 307

Voor de aansturing van o.a. een zonnescherm wilde ik in Domoticz kunnen gebruik maken van de lichtsterkte. Na wat zoeken kwam ik uit bij een simpele lux meter welke voor Arduino en RaspberyyPI gebruikt kan worden: BH1750FVI. Deze heb ik via ebay gekocht (€1,49). Na 2 weken geduld is deze bezorgd, het betreft een simpel bordje. Deze heb ik vervolgens met kabeltje gesoldeerd op de PIN's van de RPI volgens deze website: http://www.raspberrypi-spy.co.uk/2015/03/bh1750fvi-i2c-digital-light-intensity-sensor/

Hierna kon ik met het python script wat ook op die website staat gelijk al de lux meter uitlezen, dit script werkt mooi als demo maar praktisch was het niet. Het zit in een loop en blijft de lux stand doorgeven totdat je het script onderbreekt. Ik gebruik Domoticz voor de aansturing van domotica apparatuur en wilde deze lux waardes in de software kunnen gebruiken voor metingen en vergelijkingen. Er is geen rechtstreekse ondersteuning voor deze  BH1750FVI sensor maar je kan Domiticz sensors ook vullen met info door een post te doen. Om de lux waarde's te kunnen opslaan heb ik 2 virtual LUX devices aangeaakt. Waarom 2? Ik wil de lux waarde van 2 moment kunnen vergelijken. Hiermee kan je voorkomen dat je je zonnescherm in of uit doet omdat er alleen een wolk voor de zon zit ofzo. Deze virtual device's heb ik LUX1 en LUX2 genoemd, daarna heb ik van beide sensors het ID genoteerd uit het device overzicht.

domitcz-lux1

 

Vervolgens heb ik met de info uit deze wiki pagina van Domoticz (http://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s) de juiste URL samengesteld om de gegevens te kunnen posten. Deze heb ik aangevuld met de juiste paramaters om als curl cmd te kunnen uitvoeren:

Voorbeeld, met onderstaan command wordt lux sensor met id 7 geupdate met de waarde 700.

curl -s -i -H "Accept: application/json" "http://127.0.0.1:80/json.htm?type=command&param=udevice&idx=7&svalue=700"

Als je dit test dan krijg je een Ok melding terug, als je een fout krijgt loop dan voor je device ID na.

 

Deze informatie heb ik gecombineerd met het eerder gevonden python script. Dit script heb ik aangepast zodat de loop eruit is gehaald, daarna heb ik  een stuk code toegevoegd waarmee ik het CURL commando samen stel met de waarde uit de lux meter. Daarna wordt er een post uitgevoerd. Het is niet de mooiste oplossing maar het werkt wel goed. Dit script heb ik 2x gemaakt, 1x voor LUX1 en 1x voor LUX2 device's in domoticz. Dit script staat onderaan deze pagina.

 

Beide script heb ik vervolgens in de system crontab toegevoegd door de crontab te openen met sudo crontab -e

*/4 * * * * python /home/pi/lux1.py

*/4 * * * * sleep 120 && python /home/pi/lux2.py

 

Beide scripts worden om de 4 minuten uitgevoerd maar voordat het 2e script wordt uitgevoerd wordt er eerst 2 minuten gewacht, hierdoor worden beide LUX devices elke 4 minuten geupdate met een verschil van 2 minuten. Dit verschil kan weer worden gebruikt voor lux vergelijkingen. Als je de script dan enige tijd hebt lopen krijg je mooie grafieken.

domitcz-lux2

Script:

#!/usr/bin/python

#--------------------------------------

#    ___  ___  _ ____          

#   / _ \/ _ \(_) __/__  __ __ 

#  / , _/ ___/ /\ \/ _ \/ // / 

# /_/|_/_/  /_/___/ .__/\_, /  

#                /_/   /___/   

#

#           bh1750.py

#  Read data from a digital light sensor.

#

# Author : Matt Hawkins

# Date   : 15/04/2015

#

# http://www.raspberrypi-spy.co.uk/

#

#--------------------------------------

import smbus

import time

import os

# Define some constants from the datasheet

 

DEVICE     = 0x23 # Default device I2C address

 

POWER_DOWN = 0x00 # No active state

POWER_ON   = 0x01 # Power on

RESET      = 0x07 # Reset data register value

 

# Start measurement at 4lx resolution. Time typically 16ms.

CONTINUOUS_LOW_RES_MODE = 0x13

# Start measurement at 1lx resolution. Time typically 120ms

CONTINUOUS_HIGH_RES_MODE_1 = 0x10

# Start measurement at 0.5lx resolution. Time typically 120ms

CONTINUOUS_HIGH_RES_MODE_2 = 0x11

# Start measurement at 1lx resolution. Time typically 120ms

# Device is automatically set to Power Down after measurement.

ONE_TIME_HIGH_RES_MODE_1 = 0x20

# Start measurement at 0.5lx resolution. Time typically 120ms

# Device is automatically set to Power Down after measurement.

ONE_TIME_HIGH_RES_MODE_2 = 0x21

# Start measurement at 1lx resolution. Time typically 120ms

# Device is automatically set to Power Down after measurement.

ONE_TIME_LOW_RES_MODE = 0x23

 

#bus = smbus.SMBus(0) # Rev 1 Pi uses 0

bus = smbus.SMBus(1)  # Rev 2 Pi uses 1

 

def convertToNumber(data):

  # Simple function to convert 2 bytes of data

  # into a decimal number

  return ((data[1] + (256 * data[0])) / 1.2)

 

def readLight(addr=DEVICE):

  data = bus.read_i2c_block_data(addr,ONE_TIME_HIGH_RES_MODE_1)

  return convertToNumber(data)

 

def main():

 

 

  #while True:

    print "Light Level : " + str(readLight()) + " lx"

  #  time.sleep(0.5)

cu1 = 'curl -s -i -H "Accept: application/json" "http://127.0.0.1:80/json.htm?type=command&param=udevice&idx=7&svalue='

cu2 = str(readLight())

cu3 = '"'

cu = cu1 + cu2 +  cu3

# retvalue = os.system('curl -s -i -H "Accept: application/json" "http://127.0.0.1:80/json.htm?type=command&param=udevice&idx=7&svalue=700"')

retvalue = os.system(cu)

print retvalue  

if __name__=="__main__":

   main()

 

 

Vandaag heb ik weer wat dingen kunnen aanpakken. Als eerste maar weer langs de sloop gegaan. Helaas geen uitlaat kunnen vinden maar wel wat andere dingen. Als eerste 2 nieuwe gasveren voor de achterklep, een mooier (nieuwe) logo voor motorkap, deurbekelding en een ander dashboard. In de huidige zit geen klok.


Vernieuwingen

Vernieuwingen

En dit is het dashboard waarvan ik de kilometerteller over wil zetten vanaf de huidige i.v.m. de kilometer stand.
Todo

Inmiddels zijn de 1e klussen afgerond aan de 106. Als eerste is er een radio ingebouwd, een VDO MS4100 Radio\CD\Navigatie combinatie. Hij was erg goedkoop, een paar lijntjes in het display werken niet maar dat hindert niet en het werkt er niet minder om. Lekker geluid dankzij de 4 speakers en als bonus ook nog navigatie.

Vdo

Vervolgens zijn de knipperlichten voorop vervangen, de oude vielen uit elkaar bij demontage.
1e verbetering voor de P106 uitgevoerd, was ook wel nodig!

Gezien de leeftijd van de auto (22 jaar) is het niet vreemd dat het kunstof verweerd is maar dankzij een verfbrander en wat tijd is dat prima te herstellen. Langzaam de kunstofdelen verwarmen en het kunstof kleurt weer bij, eigenlijk verwarm je het plastic tot het net niet smelt. Dit werkt voor de bumpers maar ook voor dashboarddelen.

Raamslinger P106

Raamslinger P106

Vervolgens heb ik vandaag de sloten van de deuren omgewisseld. In de bestuurdersdeur zat een ander slot, deze heb ik naar de andere zijde overgezet zodat ik maar 1 sleutel nodig heb. De bijrijderskant wordt toch zelden geopend met de sleutel.
Op de sloop heb ik nog een origineel boekjes voor de auto kunnen vinden, evenals 2 deurpanelen (deze moet ik nog los halen, had niet het juiste gereedschap bij me).
Komende week wil ik de koelvloeistof en olie nog vervangen, de uitlaat nakijken en dan kunnen we (voorlopig) vooruit!


P106

Subcategorieën