automatiseren generator

je mist de index van de pins denk ik...
Dat ook, maar dat is een ander onderwerp, ik moet nog een hoop studeren.
Het is niet het punt, op dit moment van belang.

Hoe krijg ik mijn meetwaarden ververst, zonder dat mijn knoppen zich verversen, in een Arduino-website.

Het aan-knopje, als je dat op uit zet, en je denkt er nog eens over, dan heeft ie zich alweer ververst, terug op aan, tegen dat ie de meetwaarden, na 5 seconden, weer ververst.

Stom probleem misschien, maar voor mij van belang.

Hoe krijg ik mijn meetwaarden ververst, zonder dat mijn knoppen zich verversen, in een Arduino-website.

denk dat de Arduino niet so sophisticated is dat je webpagina's voor een deel kunt updaten (gelijk AJAX e.d.)
Het is m.i. een alles of niets verhaal en dus moet je de status van knoppen en de rest tegelijk opnieuw refreshen.

Het beste wat je kunt doen is een aantal variabelen maken (bv in een struct) die alle informatie van het systeem reflecteren (MODEL)
Als de webpagina zich refreshed dan leest het alle waarden uit het MODEL.
Als een radio button wordt ingedrukt wordt de waarde in het MODEL aangepast. (+ reload van webpagina)

Ondertussen kan op de achtergrond de waarden van de sensoren uitgelezen worden en in het MODEL geupdate.

robtillaart:

Hoe krijg ik mijn meetwaarden ververst, zonder dat mijn knoppen zich verversen, in een Arduino-website.

denk dat de Arduino niet so sophisticated is dat je webpagina's voor een deel kunt updaten (gelijk AJAX e.d.)
Het is m.i. een alles of niets verhaal en dus moet je de status van knoppen en de rest tegelijk opnieuw refreshen.

Het is wel degelijk mogelijk maar je moet alles zelf doen (Het is me ooit gelukt maar dan was het weer stuk :~). Daar de Arduino niet zo goed is met strings is het dikwijls beter om alles op te vragen dan stuk voor stuk. Dat gaat sneller.
Voor men huidig project heb ik besloten om de web trafiek van men Arduino af te halen en op een router te draaien.

Ikzelf begrijp je probleem niet zo goed

Hoe krijg ik mijn meetwaarden ververst, zonder dat mijn knoppen zich verversen, in een Arduino-website.

Met vriendelijke groet.
Jantje

Ikzelf begrijp je probleem niet zo goed

Nou ja,
Het is natuurlijk wel zo fijn, als je oliedrukmetertje enzo beweegt op je website.
Het is tenslotte om te monitoren.
Later kan daar dan de beveiliging op. (oliedruk te laag = motor af, temperatuur te hoog = motor af.)
En het is tegelijk lullig, als je start/stop-knopje zich reset, als je 'm aangeklikt hebt, maar nog niet op transmit gedrukt hebt.
Het is dus eigenlijk een HTML probleem.

Ofwel, moet ik een website, waarin zich 2 delen bevinden, waarvan de ene zich continu ververst, en de andere niet.
(meta http-equiv=refresh werkt echter op de gehele site, voorzover ik weet.)
Ofwel, moet er een manier zijn om als je een radiobutton aantypt, die informatie zich dan meteen transmit, dat zou ook een oplossing zijn.

Ik ben nog niet zo ervaren, dat ik snap wat er met model en struct bedoeld wordt.
Helaas.

Natuurlijk is het allemaal nog niet zo belangrijk.
Gewoon een knopje op de 2e arduino, en klaar.
Maar als dat met die website lukt, dan komen er natuurlijk ook andere dingen, zoals de navigatieverlichting, etc.

Ik heb echt geen idee over een webpagina maken (al dan niet met Arduino).
Maar ik vraag me dan af of die hele transmit knop dan wel noodzakelijk is.
Kun je meerdere zaken bedienen voor je het echt gaat uitvoeren, en is dat dan zo ook nodig ?

Ja dat is echt nodig.

Stel je voor dat je in een auto rijd, vanaf het internet, en er steekt iemand over.
Dan klik je op remmen, maar dan blijft de auto gewoon doorrijden, totdat je ook op submit gedrukt hebt.
Dat is irritant.
Bovendien staat de snelheidsmeter dan nog steeds op een waarde van tig minuten geleden.

Of, je ververst de snelheidsmeter elke 5 seconden, maar dan, als je op remmen klikt, is je knopje weer terugververst, naar doorrijden, tegen de tijd dat je de submitknop hebt aangeraakt.
Dat is nog veel irritanter.

Een knopje op een website, die meteen tot actie overgaat, als je er op drukt, zou al genoeg zijn.

Dus remmen = onmiddelijk remmen.
Niet eerst wachten op bevestiging door SUBMIT.
Terwijl de snelheidsmeter de actuele snelheid aangeeft.

Hoi Ricky

check mijn project eens: http://www.jo3ri.be/arduino/projects/tank-level-measuring-basic

vooral deze screenshot:

De groene letters worden elke seconde geupdate, maar de rest van de pagina niet.

en in deze screenshot wordt het niveau van de vaten geupdate en ook de % waarde, maar ook de rest van de pagina niet.

Dus: ja het kan zeker en vast. De truk ligt niet bij Arduino, maar bij HTML, je moet gebruik maken van iframes. Je maakt eigenlijk een aparte pagina met enkel de waardes (of tekeningen) die je laat verversen elke seconde (of 5 seconden) en deze pagina zet je in een iframe in je hoofdpagina.

Wat ook kan is dat je van elke knop een submit knop maakt met een waarde aan de knop zelf bv 1, in je code zelf kan je dan makkelijk een waarde van een variabel laten wisselen iedere keer als de knop wordt ingedrukt.

Succes.

YESS!!
Thank you,
Ik ga dat vanavond bestuderen.

btw, nu je het toch over tanklevel sensors hebben,
bestaan die dingen ook oliebestendig?
Dat iemand weet.

Mijn systeem hangt in een vat met diesel en komt NIET in contact met de diesel en werkt. Dus als je dit systeem gebruikt en de sensor niet in contact komt met de olie, zou het ook moeten lukken.

Het is eigenlijk een afstandsmeter die het niveau meet van boven uit.

Ik gebruik active x voor de updates en ik gebruik geen ethernet shield.
Op de pagina worden enkel de waarden veranderd. de icoontjes zeggen of je de waarde kan veranderen of je de waarde kan saven in de eeprom.
Ik ben nog volop aan het testen maar het werk al behoorlijk :smiley:

Met vriendelijke groet
Jantje

Nou, die sensor voor de tank is dan iets voor later, want droog hou ik die never en de nooit niet, als je bedenkt hoe snel die diesel erin getankt wordt.

Maar, nu dacht ik 'eventjes' dat programma van jo3ri te bekijken.

Dat begint al weer mooi met een aantal missing libraries.

Ik mis <avr/pgmspace.h>
Na wat zoeken blijkt dat in de Progmem librarie te zitten.
Op de Arduinosite vind ik dit : PROGMEM - Arduino Reference
En dat verwijst weer door naar dat : avr-libc: <avr/pgmspace.h>: Program Space Utilities
En daar kom ik niet veel wijs uit, behalve dan dat ze me voorstellen zelf een librarie te compileren.

Als ik moet kiezen tussen daar zelf een librarie van te moeten maken, of een pistool tegen m'n hoofd te zetten, en te schieten, dan moet ik zeggen, dat ik nog niet zo goed weet wat ik dan kies.

Niet getreurd, er is nog een missing librarie.
<SoftwareSerial.h>

Gevonden, op Github : https://github.com/arduino/Arduino/tree/master/libraries/SoftwareSerial

Alleen kan je daarvan niet downloaden, en moet ik elk filetje apart, openen, alles selecteren, knippen, in een textfiletje plakken, en dan in de libraries map zetten.
Fijn is dat.
Gelukkig is het niet zo'n grote librarie.

De about-pagina van Github meldt:

GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers.

Dat zal wel cynisch bedoeld zijn dan.

Is er nog ergens een simpelere scetch, zeg maar, voor normale mensen?
Het doel is : meetwaarden verversen zich, maar knopje niet.

In ieder geval al wel bedankt voor al die moeite.

Euh ?

Welke arduino ide gebruik je? Want die library is standaard.

Probeer eens arduino ide 1.0, want je moet echt niks extra installeren hoor.

Ah, teruggegaan naar Arduino 1.0
Nu doet de nieuwste versie TankLevelMeasering2_0 het wel.
Ik heb wel Textfinder erbij moeten installeren.
<avr/pgmspace.h> blijft nog steeds zwart, en staat niet bij de libraries.
Maar hij doet het.

Morgen ga ik daar verder naar kijken.

<SoftwareSerial.h> staat inderdaad bij de libraries, maar in de scetch TankLevelMeaseringWeb1_1, blijft ie zwart gekleurd,???? samen met <avr/pgmspace.h>
(Alle andere libraries kleuren rood)

Maar ook die scetch doet het met Arduino 1.0
Gek genoeg.

Met de Arduino 1.1 geeft ie een byte dns[] redeclared as different kind of symbol op regel 95 (versie 2)
byte dns[] = {192,168,1,1}; // fill out your own gateway's ip address or change this in your browser (EEPROM)

Ik dacht, dat komt omdat ie die libs niet had.

Morgen weer een dag.
Dank je wel in ieder geval.

rikky:
Nou, die sensor voor de tank is dan iets voor later, want droog hou ik die never en de nooit niet, als je bedenkt hoe snel die diesel erin getankt wordt.

Daar is ook wel iets op te bedenken.
Zo hoeft je sensor niet in je tank te zitten, zolang ie er maar in kan kijken.
Dat betekent dan dus dat je er een gat bij moet maken en de sensor door dat gat naar het nivo moet laten kijken.
Dat kun je ook zo maken dat er door dat gat geen brandstof kan lekken.
Verder kun je je sensor in een buis laten kijken, die net zo lang is als je tank diep is.
Op z'n minst zitten er dan gaten in de wand van die buis helemaal onder aan en boven aan, zodat de brandstof erin en eventueel aanwezige lucht eruit kan tijdens vullen of verbruiken van de brandstof.
Of zo'n zelfde buis, maar eentje die buitenlangs loopt.
Die zit er nu vast al op en heet dan peilglas.

Hiermee kun je dus wel het nivo zien, maar voorkom je het vulgeweld van de bunkerboot.

Als de tank niet uitsluitend hoeken van 90 graden heeft (bijvoorbeeld omdat ie gedeeltelijk de vorm van de romp volgt), dan zul je wel moeten uitliteren.
Dat wil zegen dat je m steeds met een vaste hoeveelheid liters vult, en dan een meting doet met je sensor.
Zo zul je een curve kunnen maken per vulling, waarnaar je redelijk precies de werkelijke inhoud kunt bepalen.

Uiteraard hoef ik je niet te wijzen op de gevaren van metaal bewerken in een brandstoftank, ook al is deze leeg (de gassen zijn gevaarlijker dan de brandstof).

mja, als je toch gaat werken aan de tank, kan je ook een gat boren, van boven, en er een doorvoerschroefdraad in zetten, met een slangnippel vanonder, met een oliebestendige tuinslang eraan, tot bijna aan de bodem.
Aan de andere kant komt er dan een druksensor.
Hoe voller de tank, hoe hoger de druk in de slang.

Maar ik hoef pas in 2015 van de keuring een tankniveaubeveiliging, en dan nog alleen maar om te vertellen, of ie bijna leeg is.

Een vlottertje zal dus al werken.

Anyway, die scetch van Joeri is pittig sophisticated.
Meerdere tapbladen in het programma van de Arduino en meerdere web-sub-pagina's die die maakt, en uiteindelijk met i-frames in 1 pagina zet.

Ik heb vanavond wat te studeren.
Dat houd me dan weer van de straat.:slight_smile:

@rikky

<avr/pgmspace.h> blijft nog steeds zwart, en staat niet bij de libraries.

klopt, ik heb nu eindelijk door, dat je die gewoon mag weglaten bij de includes. (hij wordt sowieso geladen)

ik gebruik PROGMEM om de html pas te in het geheugen te laden als het nodig is, doe je dit niet, dan zit de 2KB SRAM onmiddellijk vol. Met PROGMEM vloeit de html door een buffer (bv 125 bytes van SRAM). Een beetje meer uitleg vind je hier:

http://www.jo3ri.be/arduino/projects/an-integrated-webpage-with-image

<SoftwareSerial.h> staat inderdaad bij de libraries, maar in de scetch TankLevelMeaseringWeb1_1, blijft ie zwart gekleurd,???? samen met <avr/pgmspace.h>
(Alle andere libraries kleuren rood)

Sommige versies werken maar half (shame on me), gebruik best versie 2.0

Met de Arduino 1.1 geeft ie een byte dns[] redeclared as different kind of symbol op regel 95 (versie 2)
byte dns[] = {192,168,1,1}; // fill out your own gateway's ip address or change this in your browser (EEPROM)

Er is iets vreemds met IDE 1.1 Deze versie wil namelijk niet dat je zelf DNS invult en maakt daar dus problemen over, vandaar dat ik versie 1.0 gebruik.

Morgen weer een dag.
Dank je wel in ieder geval.

Het beste is om eerst je HTML pagina te maken, los van Arduino, zodat deze toont wat je wil. Daarna kan je dan deze in je code integreren.

ik weet dat die code van mijn project er ingewikkeld uitziet (en ook is), er zit trouwens een heel stuk in om het Ethernet te configureren via een webpage, maar dat zal jij vermoedelijk niet nodig hebben.

Okee, thanks.
Ik ben voorlopig wel even bezig.

rikky:
Gevonden, op Github : https://github.com/arduino/Arduino/tree/master/libraries/SoftwareSerial

Alleen kan je daarvan niet downloaden, en moet ik elk filetje apart, openen, alles selecteren, knippen, in een textfiletje plakken, en dan in de libraries map zetten.
Fijn is dat.
Gelukkig is het niet zo'n grote librarie.

De about-pagina van Github meldt:

GitHub is the best place to share code with friends, co-workers, classmates, and complete strangers.

Dat zal wel cynisch bedoeld zijn dan.

Is gewoon even wennen.
Dat je niet kan downloaden komt omdat je ergens in een mapje zit dat tot een groter archief behoord.
Als je even op "code" klikt bovenaan zal je een icoontje krijgen genaamd "ZIP". Dit is Uw download-knop..

Als je Arduino geinstalleerd hebt zit Software Serial gewoon onder c:\programfile\arduino\libraries\soft... oid

Aha, Github, ik kreeg het toen gewoon eventjes niet voor elkaar, en SoftwareSerial zit i.d.d. gewoon stanaard erbij, maar kleurde niet rood in de scetch.

Anyway, dat is allemaal opgelost, en ik ben aan het studeren.
Maar Jo3ri's programma is te moeilijk.

Gelukkig heb ik dankzij dat programma een vergelijkbaar programma gevonden, wat eenvoudiger is.
Gewoon op de Arduino playground.
Arduino Playground - WebServer.

Deze doet ook verschillende pagina's.

Nu kan ik al mijn sensortjes op de ene pagina laten zien.
De knopjes voor aan/uit moeten dan op een andere pagina.
En dan kunnen op de hoofdpagina, die 2 samengevoegd worden, middels iframes.
Althans, dat is de bedoeling.

In mijn proefscetch ging dat nog prachtig, dan nam ik de waarden uit de httpheader, etc.
Maar nu loopt dat door de war, ivm dat het programma zelf ook die httpheader gebruikt, denk ik.

Ik kan het niet uitvogelen.

Als ik maar wist, hoe ik erachter komt, hoe die website het gedeelte achter het ip adres aan de Arduino doorgeeft.

Dus b.v. 192.168.1.90/Het_gedeelte_achter_het_ip_adres

Dan schrijf ik de rest wel zelf, zonder moeilijk gePROGMEM en ge-strcat(compare,load); enz.