Datalogger project

Maar dat lukt beslist nog wel...

Postby bmwtouring » Sat Feb 08, 2014 12:00 am

Tijdje even niet aanwezig geweest, maar mijn idee is om een datalogger te maken. Dit zo minimalistisch mogelijk. Dus geen Arduino's of Raspberry's. Zoals mijn CAN-Bus interface vind ik persoonlijk de hardware meer leerzaam (voor mijzelf althans) dan de software.

Het idee is om een Bluetooth GPS te gebruiken en diverse sensoren. De ene sensor is een analoge sensor (zeg schakelsignaal van een motorfiets) en de andere zijn sensoren die meer te maken hebben met locatiebepaling of andere doelen hebben.

Nu zit ik te denken om een OpenLog component te gaan gebruiken. De bedoeling is dat deze OpenLog oplossing een component is die ervoor zorg draagt dat de gecollecteerde informatie weer "uitgespuwd" kan worden. Dit naar een verwerkingsstation (of een PC met Software die deze gegevens in informatie kan omzetten).

Echter de "Bus" zal een RS485 (of CAN) moeten zijn? Dit aangezien een RS232 slechts 1 connectie kan leggen?

Ook dient er een Bluetooth stack aanwezig te zijn. Die ook op de "Bus" dient te worden aangesloten. De NMEA berichten van GPS zullen hierover getransporteerd worden.

Ik heb een plaatje toegevoegd en uiteraard hoor en verneem ik graag jullie input. Of kan het wat jullie betreft heel anders?

(En ja ik weet dat een iPhone of ander SMART toestel een Bluetooth stack heeft en de sensoren ook aan boord heeft. Maar dedicated hardware is toch leuker -- Elektor )
Attachments
Design.jpg
bmwtouring
 
Posts: 137
Joined: Thu Jan 02, 2014 3:29 pm

Postby bmwtouring » Wed Feb 12, 2014 12:00 am

Oke een eerste onderzoekje lijkt mij aan te geven dat ik de sensoren dien te "arbitreren" middels I2C

Even nieuw voor mij, dus kijken hoe ik signaal RS232 naar I2C krijg. Lijkt mij via bijv. een 16F628
Attachments
g01arbit.gif
bmwtouring
 
Posts: 137
Joined: Thu Jan 02, 2014 3:29 pm

Postby bmwtouring » Wed Feb 12, 2014 12:00 am

Een ander ontwerp zonder RS485
Attachments
Design-II.jpg
bmwtouring
 
Posts: 137
Joined: Thu Jan 02, 2014 3:29 pm

Postby bmwtouring » Sun Feb 16, 2014 12:00 am

De MCU geselecteerd. Minimaal 2 I2C's en 2SPI's

UART --> Bluetooth
I2C --> Sensor
SPI --> SD card
A/D --> analoge sensoren

Een bus lijkt dan niet noodzakelijk...al leek mij dit wel een super uitdaging. Maar mogelijk in een latere uitbreiding
bmwtouring
 
Posts: 137
Joined: Thu Jan 02, 2014 3:29 pm

Re: Datalogger project

Postby eriksl » Fri May 30, 2014 9:32 am

Ik heb verspreid over het huis al een aardig tijdje "dataloggers" (temperatuur, licht, vocht, stroomverbruik). De implementatie daarvan is zolangzamerhand bij generatie vijf ofzo ;-)

Ik ben ooit begonnen met Velleman K8055's (die uiteraard met USB op een computer in de buurt aangesloten moeten worden). Het ongelukkige van de 8055 is dat er maar twee analoge ingangen zijn. Voordeel is wel dat de twee analoge uitgangen ook op PWM-niveau zijn af te takken, ideaal voor dimmen van verlichting via een mosfet. Probleem van het beperkt aantal analoge ingangen heb ik opgelost met een analoge switch (cd4066 e.d.), aangestuurd met de digitale uitgangen, maar dat heeft wel nadelen.

Op een gegeven moment ben ik overgestapt op zelf programmeren van microcontrollers. Arduino enz. is inderdaad, wat je zegt, helemaal niet interessant, want je leert er nauwelijks iets van. Ik heb daarbij nog een overweging. Een attiny85 of attiny861 (die voor veel taken gewoon voldoende zijn en grotendeels gelijk zijn aan bijv. de atmega320p die arduino gebruikt), kosten per stuk retail maar 2-3 euro. Dat vergeleken met een Arduino board... Zeker als je er, zoals ik, meerdere wilt gaan inzetten.

Ik heb nu één uitvoering die communiceert met i2c naar een ELV i2c <-> USB interface naar de computer. Ik heb daarvoor een eigen USI i2c implementatie gemaakt (de tiny's hebben geen volledige hardware support voor i2c). Als je dit eenmaal werkend hebt, blijkt het enorm robuust te zijn, omdat het zo simpel is. Waar je wel rekening mee moet houden is dat je de bus niet eindeloos lang kunt maken. Ik heb i2c bus extenders gebruikt en tvs diodes om spikes/surges op te vangen en dan kan ik de tien meter afstand die nodig, is overbruggen.

Een andere uitvoering maakt gebruikt van USB, ook op een attiny861.Daarvoor gebruik ik een bestaande software-implementatie van (low-speed) USB voor atmel devices. Dit werkt meestal goed, maar je merkt wel dat je je op de randen van de specificaties van USB begeeft, het is niet heel erg robuust. De implementatie van USB is noodgedwongen minimaal.

Waar ik nu mee bezig ben is weer hetzelfde in feite, maar dan over ethernet+ip. Ik heb op Ebay een paar ENC28J60's boardjes gekocht, die kosten rond de drie euro. Dat is veel goedkoper dan de WIZnet en vergelijkbare boards omdat er geen 32 bits ARM microcontroller op zit met veel geheugen. En dus ook geen IP-implementatie. Het enige wat het doet is complete ethernet frames ontvangen en versturen. Dat kun je als een nadeel zien, maar ik vind het juist wel een voordeel. Ik heb er een eigen IP-implementatie op gemaakt en dat werkt best goed. Ik heb hiervoor wel een atmega320p moeten gebruiken, omdat de tiny's hiervoor ècht te weinig geheugen hebben. ICMP echo (ping) werkt helemaal, UDP werkt ook helemaal (zij het met kleine, ongefragmenteerde packets) en TCP werkt beperkt (door het kleine geheugen geen mogelijkheid tot retransmissie etc.), maar het werkt goed genoeg om met telnet een connectie te maken en commando's in te tikken.

En zo heb je dus voor minder dan tien euro in totaal een "InternetOfThings" apparaat.

Naar mijn idee is wat Elektor doet, met seriele bussen zoals RS422 en RS485, dat je wel heel erg ouderwetse, achterhaalde techniek gebruikt. Ik begrijp heel goed dat het voor thuishobbyisten niet ál te complex mag zijn, maar dat betekent niet dat je geen gebruikt kunt maken van hedendaagse techniek. Ethernet dus, in dit geval. Kun je storingsvrij 100 meter mee overbruggen. Het enige is dat je meerdere switches nodig hebt als je meerdere devices verdeeld over het huis gaat gebruiken. Maar die kosten ook bijna niks meer tegenwoordig.

Ben benieuwd hoe jij verder gegaan bent.
eriksl
 
Posts: 515
Joined: Thu Jan 02, 2014 3:28 pm

Re: Datalogger project

Postby bmwtouring » Sun Jan 25, 2015 1:34 pm

Hallo eriksl,

Ik ben nog streeds aan het onderzoeken waar ik mijn tijd aan ga besteden. Dit aangezien het nog tijd vergt ;-) Het onderzoek van mijzelf richt zich nu op het interfacen met bestaande oplossingen. Aangezien het weer winter is ga ik hiermee verder.

En jij? Ook nog bezig?
bmwtouring
 
Posts: 137
Joined: Thu Jan 02, 2014 3:29 pm

Re: Datalogger project

Postby eriksl » Sun Jan 25, 2015 2:59 pm

Yep. Ik ben nu aan de slag met de ESP8266, voordeel: hele IP stack op de chip zelf, nadeel: interface is lastig, via uart, de ENC28J60 gaat met SPI da's veel makkelijker. Alleen veel te weinig tijd natuurlijk.
eriksl
 
Posts: 515
Joined: Thu Jan 02, 2014 3:28 pm

Re: Datalogger project

Postby bmwtouring » Sun Jan 25, 2015 3:13 pm

Oke ethernet. Klinkt als bekabeld ;-) Ik ga mijn project iets vereenvoudigen. De CAN Bus protocollen liggen niet voor het oprapen en het analyseren van het protocol van bijv BMW is geen eenvoudige klus. Althans ik ben er wel even zoet mee haha Zelf stap ik maar eens naar OBD-II. Misschien met een ELM327 en probeer dan de data te loggen. GPS informatie combineren met 1 parameter leek mij wel een "haalbare" uitdaging.
bmwtouring
 
Posts: 137
Joined: Thu Jan 02, 2014 3:29 pm

Re: Datalogger project

Postby eriksl » Sun Jan 25, 2015 6:22 pm

ESP8266 is WLAN (wireless), 2.4 GHz 802.3G (54 MBps). Kost 2-4 dollar.
eriksl
 
Posts: 515
Joined: Thu Jan 02, 2014 3:28 pm

Re: Datalogger project

Postby bmwtouring » Sun Jan 25, 2015 9:41 pm

Hmm nice!!
bmwtouring
 
Posts: 137
Joined: Thu Jan 02, 2014 3:29 pm

Next

Return to Mijn schakeling werkt nog niet...

Who is online

Users browsing this forum: No registered users and 1 guest