draadloze overbrenging van meetgegevens

Dag,

Voor onze GIP moeten we een draadloze overbrenging van meetgegevens realiseren.

Dus we moeten de temperatuur meten van koelwater RF verzenden
en dan om de 30 minuten binnen brengen in een Excel bestand.

Om de temperatuur te meten gebruiken we een PT100 en deze wordt gekoppeld aan een 0-10V omvormer
(0,1V komt overeen met 1°C) die we van het bedrijf zelf krijgen.
Dan wordt de analoge waarde omgezet in een digitale waarde door middel van een ADC0801.
Daarna zouden we het digitale signaal in een multiplexer binnen brengen.
en verzenden met een ALPHA-TRX433S van farnell.

We zouden dan het signaal ontvangen met een ALPHA-RX433S ook van farnell.
Dan zou ik het signaal serieel laten omdat we een RS232 gebruiken om het
signaal binnen te brengen in de computer.
Maar wat we tussen de ontvanger en de RS232 gaan gebruiken om het
signaal binnen te brengen in de computer weten we nog niet.

Verder zitten we nog met het probleem dat het niet gelijk is met welke
snelheid we de gegevens moeten versturen om te kunnen comuniceren
met de computer.

Vraag je nu hoe je TTL-signaalniveau omzet naar RS-niveau? Een MAX232 of vergelijkbaar en je bent klaar, of mis ik iets.
Het is me ook niet helemaal duidelijk wat je "multiplexer" tussen de ADC en de 433MHz zender is, een simpele microcontroller lijkt me hier het handigste. Die kan de ADC aansturen, data uitlezen en op zijn UART uitsturen op de gewenste baudrate, en ook de nodige opvulling doen om je zender/ontvanger goed te doen werken (constant 10101010 zenden bijvoorbeeld zorgt voor een betrouwbaarder verzending, heb ik me laten vertellen).

AKA Naftebakje @Tweakers.net --- Zonder dwarsliggers geen spoor

De ALPHA-TRX433S is een Transceiver, dat betekend dat deze zowel kan zenden als ontvangen, ook werken deze modules met de SPI bus, gewoon de data vanuit de ADC in een multiplexer of schuifregister stoppen (hoe je het ook wilt noemen) en naar je zender sturen is hier niet mogelijk.
Ook de alfa RF modules werken volgens mij op de SPI bus.
Zoals "Videomodulator" al zegt zul je hier gebruik moeten gaan maken van een microcontroller aan beide zijden van je systeem, die via de SPI bus kan "praten".
Dus je PT100/ADC/Microcontroller/Zender aan 1 zijde, en de andere kant Ontvanger/Microcontroller/TTL>RS232.

Je kunt het zelfs nog veel mooier maken door de hele ADC0801 weg te laten en een microcontroller te pakken met een ingebouwde ADC, dan wordt het misschien minder omvangrijk.. en minder storingsgevoelig.

Dataoverdracht:
Als je elke 30 minuten een meetwaarde door moet sturen lijkt de datasnelheid mij niet zo'n probleem, al zou het 2 seconden duren voordat de data over is, de volgende meting moet pas 29 minuten en 58 seconden later verzonden worden ;) tijd zat dus...
Je verzend de meetwaarde als "ruwe data" dus gebruik je een 8 bits adc oplossing dan zijn dat dus 8 bits + de bits voor de seriele communicatie: 1 startbit/1stopbit geen pariteitbit dus hooguit 10bits. met 300 baud zend je naar mijn weten 300 bits per seconde.. de hele dataoverdracht voor 1 meetwaarde is dan 1/300 = 0.003 * 10bits = 33 ms.

hoop dat je met deze info iets verder komt

Een expert is iemand die binnen een beperkt vakgebied alle mogelijke fouten al heeft gemaakt...

dus als ik het goed begrijp kan ik mijn zender en ontvanger wel gebruiken
als ik een microcontroller gebruik?

En voor van TTL naar RS232 kabel moet ik een MAX232 gebruiken?

en bedankt voor de hulp :)

Ja je zender en ontvanger kun je idd gebruiken in combinatie met een microcontroller.. het ligt er wel even aan wat je kennis van programmeren en microcontrollers is.
En je kunt inderdaad een max232 gebruiken, een max 233 zou ook kunnen, die heeft minder extra externe componenten nodig.

succes ermee !

Een expert is iemand die binnen een beperkt vakgebied alle mogelijke fouten al heeft gemaakt...

Van programmeren ken ik eigenlijk niets maar ik heb al eens
rond gekeken en gezien op het forum dat mikroC goed is voor beginners.

dag,

ik ben op zoek naar applicaties waar men een DA- convertor gebruikt meer bepaald een DAC0801 omdat we na onze decoder onze 8bits moeten omzetten in analoge waarden.
weet er iemand van jullie welke schakeling ik hier best voor gebruik?

ook zou ik graag weten of er iemand al met een ECIO40 gewerkt heeft om gegevens binnen te brengen in een Excel-file?

mvg

De ALPHA TRX433S is in feite hetzelfde ding als RFM12S.
De ALPHA komt alleen van Quasar af en Farnell heeft een contract met RF Solutions.

Zo, dat ligt ook weer op straat.. :)

Wat je het beste kunt doen is het analoge signaal omzetten naar een seriële bitstroom naar RS232.
Afhankelijk van de samplerate kun je dan de data rate aanpassen van RS232, bijvoorbeeld 9600 bits/s.
Voor elke sample van 8 bits is dat dus 960 waarden per seconde.
Ruim voldoende voor de temperatuur.

Daarna kun je een transparante seriële verbinding maken met de Alpha modules. Die transparante verbinding kun je zonder meer in plaats de kabel gebruiken.
Zo kun je eerste je systeem bekabeld maken en teste en dan later de seriële verbinding toevoegen.

Met Hyperterminal kun je het naar binnen halen.
Als je na elke meetwaarde een komma plaatst, dan kun je een CSV maken. Die file kun je dan weer inlezen met Excel.

Mocht je de software voor de transparante draadloze verbinding teveel werk vinden geef mij dan even een seintje.

Bart Hiddink is Ideetron; electronics and projects, http://www.ideetron.nl. LoRaWAN Nutcase.

Sorry maar ik ben er bij vergeten te vertellen dat er een paar dingen
zijn veranderd.

Dus ik meet nog altijd de temperatuur met een PT100 en wordt die
omgezet door een 0-10V omvormer en dan naar een digitale waarde.
Door een AD converter dan zouden we een encoder gebruiken en onze
zender en ontvanger zijn ook verander door : zender = RX433 en
ontvanger = TX433N.

Na de ontvanger gebruik ik een decoder dan naar een DA converter
omdat ik een een analoge waarde nodig hebben voor de ECIO40
(in de link staat de ECIO40).
http://www.elektor.nl/artikelen-als-pdf/2009/november/usb-verbinding-z…

Ik gebruiken een ECIO40 omdat we in elektuur gezien hebben dat
dan normaal alles automatisch kunnen binnen brengen en in een
excel bestand plaatsen.

ik weet dat je iets geen twee keer mag posten maar voor geen
verwarring ga ik mijn vorige vraag hier nog eens onder plaatsen.

ik ben op zoek naar applicaties waar men een DA- convertor gebruikt meer bepaald een DAC0801 omdat we na onze decoder onze 8bits moeten omzetten in analoge waarden.
weet er iemand van jullie welke schakeling ik hier best voor gebruik?

ook zou ik graag weten of er iemand al met een ECIO40 gewerkt heeft om gegevens binnen te brengen in een Excel-file?

en nogmaals sorry dat ik vergeten te vermelden heb dat we bepaalde
componenten veranderd heb.

Ons eindwerk is bijna af maar we hebben één klein probleem.
We werken met een ECIO 40 en programmeren deze met flowcode V4
Het is ons al gelukt om de temperatuur binnen te brengen in excel maar
wanneer we de temperatuur binnen hallen zitten we met het probleem
dat vanzodra we een ander programma openen de temperatuur verschijnd
op de plaats waar onze cursor staat. We hebben al vernomen dat het programma via het toetsenbord werkt.
Weet iemand hier een oplossing voor?

We hebben al een flowcode bestand gevonden waarmee normaal het probleem
normaal mee opgelost zou moeten zijn alleen zitten we met het probleem
dat we het programma niet begrijpen.

Als je je e-mail adress opgeeft wil ik altijd eens dat programma doorsturen
en het programma die we nu al hebben om onze gegevens binnen te brengen.

alvast bedankt voor de hulp.

via een programma met het toetsenbord gegevens in excel plakken is wel bijzonder slecht.
je kan beter via een CSV bestand werken (iedere keer wegschrijven en alleen excel openen als het binnen is.)

als je excel wilt gebruiken om live grafieken te tonen kun je dit beter ook zelf doen, dat is echt niet zo moeilijk.

andere optie is met een query te werken. je plaatst alles in een database of op een website, en haalt met excel alles op (data>externe gegevens> webquery oid)

heb geen ervaring met flowcode, maar wil er best eens voor je naar kijken. mail staat in mn profiel. (klik op mn naam)

GMT+1

De mail is verzonden.
Flowcode kunt u gratis downloaden op volgende website:
http://www.matrixmultimedia.com/Flowcode3a-X.php

Dan moet u een beetje naar beneden scrollen en je naam en e-mail adres invullen.
U zou best kiezen voor Flowcode V4 omdat u anders het programma niet kunt openen.

Hartelijk dank,ik heb dit gedaan.

wat je dus eigenlijk doet is een toetsenbord nadoen, en vervolgens met tab en enter excel vullen.

als ik jou was zou ik overstappen op een joystick of seriele poort.
die kun je vrij makkelijk uit de meeste programmeerpaketten uitlezen, en bieden meer functionaliteit.

die kun je namelijk als programma alleen uitlezen. toetsenbord zal altijd via windows gaan, waarna het pas in de applicatie komt die op dat moment actief is.

als je de seriele poort opent krijg jij alles door, als enige, tot dat je hem weer sluit.

joystick is ook leuk, je zet de waarde als X as en drukt een knop in als hij moet worden opgeslagen.

ik stel voor dat je een van die twee probeert en een programma maakt dat de seriele of joystickpoort uitleest. ik wil je hierwel mee helpen, maar dan zal je een programmeerpakket nodig hebben.

Ik ken/heb C,C++, Delphi, VB (veel versies). de laatste is gratis te downloaden en vrij makkelijk.

mocht je dus een van die dingen kennen/kunnen dan kunnen we daarmee aan de slag. omdat ik nu de demo van flowcode heb, kan ik er niet zo veel mee, maar ik denk dat het niet moeilijk aan te passen is.

succes!

GMT+1

Ik denk niet dat het bedrijf waar we ons project voor maken een
joystick zal willen gebruiken voor het probleem op te lossen.

Verder kunnen we niet anders dan via de USB ingang werken omdat we
een zulke kabel hebben moeten aankopen en Flowcode via USB werkt.

Ik heb VB 2008 staan op de computer ik ken er wel niets van
de "projectjes" die ik al gemaakt heb zijn allemaal van youtube na gemaakt
en soms een heel klein beetje aangepast.

nee, ik bedoel niet hoe de flowcode-print is aangesloten, maar hoe hij zich voordoet aan de pc.

een printer praat een andere usb-taal als een harde schijf. dat heet een protocol.

die chip kan zich voordoen als een usb-toetsenbord, usb-seriele poort of usb-joystick.

het nadeel van een usb toetsenbord is dat windows denkt "ohw, daar kan ik wel mee omgaan. ik zal voor mijn rekening nemen en doorgeven aan het programma"

en wat je wilt is: "ohw, een seriele poort. ik zal hem in apparaatbeheer zetten en het programma kijkt wel wat ie met de gegevens doet."

anders zal je inderdaad krijgen dat als jij op het ene toetsenbord de ALT indrukt, en jouw 'toetsenbord'(zo ziet windows het) verstuurt een TAB, dan zal hij iets ongewenst doen, omdat windows het voor zijn rekening neemt. (vensters wisselen in dit geval)

[Bericht gewijzigd door Progger op woensdag 19 mei 2010 20:31:22 (18%)

GMT+1

eu srry maar ik weet niet echt wat je wil zeggen.

bedoel je nu dat je een extra programma gaat schrijven in een ander programma dan flowcode of
ga je aanpassingen maken in ons bestaand flowcode programma ?

jij moet de flowcode aanpassen, waardoor windows het als een ander soort usb-apparaat ziet. ik weet niet wat het bedrijf vind, maar een sensor die zich als toetsenbord presenteert vind ik geen geweldige oplossing. je hebt de moeilijkheden ook zelf ervaren.

als windows het als een seriele poort ziet, dan zal ook de functie veranderen. excel kan van het toetsenbord inlezen (tekstvak) maar niet vanaf een seriele poort. daarvoor zul je nu een programmatje moeten maken. dat is echt niet moeilijk. je moet wel even je tanden in de flowcode zetten.

GMT+1

Het probleem is dat we tegen eind deze maand klaar moeten zijn en nog maar net hebben
kunnen beginnen programmeren. Omdat we eerst 5 maanden hebben moeten wachten op de officele versie
van flowcode maar dit was de studenteversie en deze was te licht.
Dan hebben we noch eens 3 weken moeten wachten tot we de profesionele versie gekregen hebben.
De examens staan voor de deur en ons gip boek kunnen we nu pas aanpassen omdat we net de verbeterde versie
gekregen hebben.

In het bedrijf waar we mee samenwerken kan niemand programeren en
de school werkt nog maar net met flowcode dus die kunnen ons ook niet helpen.

Andere programeer talen kennen we nauwelijks beter gezegt te weinig om er iets mee te kunnen doen
dus we zouden wat hulp kunnen gebruiken.

zou je ons willen verder helpen want we hebben al veel tegenslag gehad
met de hardware en daar door ook veel tijd verloren en zijn nog bezig met de voeding die bijna af is.

Voeding probleem ?
Als er iets probleemloos is dan is het wel een voeding.

Ik gebruik voor datatransmissie altijd GSM verbinding, werkt altijd probleemloos.

Dit in combinatie met een professionele datalogger.

Dit is niet goedkoop datalogger ca 1000 euro, DataGSM ca 250 euro
Maar het is wel heel betrouwbaar en eenvoudig.

Opstarttijd ca 1/2 dag

Ik snap dat het moeilijk is, maar probeer het volgende eens;
vervang USBHID door USBSERIAL
zoals in de file:USB Serial String Demo.fcf
dan moet je met hyperterminal al iets zien.

@buzzer, ik denk niet dat ze een 10 dagen van te voren nog een project kunnen omgooien waar ze al 6 mnd aan werk in hebben zitten.

GMT+1

"@buzzer, ik denk niet dat ze een 10 dagen van te voren nog een project kunnen omgooien waar ze al 6 mnd aan werk in hebben zitten."

Tja, als je er al zoveel werk hebt ingestoken begrijp ik die redenering.

Het programma van USB serial heb ik juist geprobeerd maar werkt niet.
Het andere programma van keyboard heb ik nog niet kunnen testen en alle componenten, drivers
staan in school en voeden zal ook niet lukken vermits ik geen betrouwbare regelbare voeding heb.

Dus zal ik tegen woensdag (omdat we er dan mogen aan werken) moeten
wachten voor ik weet of dit lukt.

Ik heb zitten denken dat we misschien kunnen gebruik maken van het
feit dat je ook c taal kunt invoeren met een het blokje c code in flowcode.

om zo met dat c blokje een ander programma op te roepen bv. een VB 2008 programma die
excel opend op de achtergrond met backgroundworker en dan de gegevens binnen te brengen.

Het enige probleem is ik ken geen C taal en weet niet echt hoe je met
backgroundworker moet werken in VB 2008.

je hebt helemaal geen backgroundworker nodig. gewoon een programmatje dat de poort afwacht en alles wat er binnenkomt opslaat.

het probleem is en blijft dat je met een seriele poort kan praten en met een toetsenbord niet. windows doet dat dan voor je, dus heb je nooit garantie dat het in jouw programma komt.

hoe wou je met een stukje C code een programma starten? bedenk wel dat je nogsteeds pretendeert een toetsenbord te zijn. dus jouw code stuurt een commando en windows leest dat in, en start een programma?

START, UP, LEFT, UP, UP, UP, RIGHT, ENTER?

en dan hopen dat het op die goeie plek staat?:P jij kan met die chip niet meer dan wat je nu met je eigen toetsenbord kan.

een optie die je wel zou kunnen doen is vlak voor je verzend even een sneltoets maken. dus je maakt een programma, maakt daarnaar een snelkoppeling, geeft dat ie moet starten bij CTRL+SHIFT+A oid, en jouw PIC processortje geeft een CTRL+SHIFT+A door, waarna je hoopt dat het programma start en gegevens kan plempen.

is een smerige oplossing, maar mss wel de meest haalbare voor jou.

edit, ik heb het even voor je uitgezocht. maak in VB2008 een programma (new->application) plaats in dat programma een(1) tekstbox (textbox1) en dubbelklik op de form. dan plaats je onderin dit (dus net voor END CLASS):

pic basic code:

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Dim regel As String
        If e.KeyChar = Chr(13) Then                         'dit is een enter
            FileOpen(1, "C:\test.csv", OpenMode.Append)     'voeg toe aan bestaand bestand
            regel = Date.Now.ToString & ";" & TextBox1.Text 'scheidingsteken is hier ";" mag ook een comma "," zijn
            PrintLine(1, regel)                             'print een regel met datum+tijd;waarde uit tekstbox
            FileClose(1)                                    'netjes afsluiten
            End                                             'sluit programma
        End If
    End Sub

(tis natuurlijk visual basic en geen picbasic, maar zo ziet het er het netste uit..)
Werking:

  • Trap programma af
  • Rammel wat gegevens in (komt vanzelf in textbox)
  • Ram op enter (programma sluit af)
  • Bestand is bijgewerkt.

mag jij van mij nog een mooie errorcheck inbouwen (bestaat het bestand wel? is je regel niet leeg? dat soort dingen) en uitzoeken hoe je dit programma met het toetsenbord gaat starten. (heb wel een idee, maar denk er maar eens over na..)

GMT+1

Dit gaat voor een .cvs bestand maar als ik test.xlsx plaats om het in
een excel bestand te plaatsen heb ik heb probleem dat ik dit niet kan openen.

Waarom zou je niet met backgroundworker werken? Die functie zorgt er toch
voor dat je een programma op de achtergrond kunt lopen hebben zonder dat je problemen
hebt met windows. (is toch wat ik ergens gelezen en verstaan heb)

die controle heb ik al gemaakt als de temperatuur te hoog komt of er is niets verzonden dan komt
er een kader op die je waarschuwd als je er niet op klikt in een bepaalde tijd
wordt er automatisch een mail verstuurd.

En in excel met de VB bij ontwikkelaar heb ik nog iets gemaakt dat automatish een getal plaatst
die we gebruiken voor de X as van de grafiek zodat je niet met het probleem zit dat je in het begin de waardes niet
gemakkelijk kunt aflezene van de grafiek.
Verder wordt de datum en het uur dat het gecontroleerd is naast te staan.

als jij het verschil niet weet tussen csv en xlsx zul je een backgroundworker ook niet snappen. je roept een oplossing voor een probleem wat er niet is. jouw probleem is volgens mij dat je onderscheid wilt maken tussen een toets op het echte toetsenbord en gegevens van de flowcode PIC die zich ook voordoet als toetsenbord.

als ik dat verkeerd heb begrepen moet je me dat mss eerst goed uitleggen, anders kan ik ook weinig voor je doen.

ik heb tig posts geleden al gevraagd of je wel of niet grafieken wilt maken. via een usb chip een toetsenbord nadoen en dat in excel met macro's plaatsen is wel de ranzigste oplossing die ik ooit gezien heb.

GMT+1