4x Solar Frontier SF150 | Steca 500 | zuid-west & 4x ZnShine Solar ZXM5-96-260ms | Omnik 1.0K TL | zuid
- MichielFRL
- Registratie: augustus 2013
- Laatst online: 16-02 19:11
en gemakkelijk in de velden te plaatsen
en in NOW:
en uiteraard in alle webpagina's en designer
invoer moet ook juist zijn:
Willie Wortel wijzigde deze reactie 24-03-2017 11:21 (29%)
Michiel, zoals Klump al aanhaalde, je hebt nu de beschikking over een dashboard designer (designDashboard.html), je hebt daarmee toegang tot de meeste teken tools die beschikbaar zijn voor een web pagina en de data is compatibel met een (voorlopig alleen) windows Phone.quote:MichielFRL schreef op woensdag 22 maart 2017 @ 20:08:
[...]
Klopt, zit nog in de begin fase. Ik heb de index.html aangepast.
Ik wil 3x S0 en P1 erop. Dus metertjes bijgezet en de layout aangepast.

Als je Netduino (ongewild) in de debug mode werkt wordt er een bericht in de exception cache geplaatst. Dit naar aanleiding van eerdere bevindingen over de manier waarop de Netduino van stroom wordt voorzien via een dc connector plug (zoals bij mij) of via een usb voeding.
de exception cache kan gewist worden met het commando CLEAR.

Now commando:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
| If System.Diagnostics.Debugger.IsAttached Then Try Throw New Exception("Debugger detected") Catch ex As Exception exeptions.storeExeption("debugger is Attached and slows your Netduino", ex) End Try End If |
Willie Wortel wijzigde deze reactie 23-03-2017 20:54 (5%)
Na even de routines te hebben nagelopen het euvel gevonden en aangepast. Als er sensoren worden aangepast/ toegevoegd (multiple OneWire probes op 1 dPin) gebeurd het wel eens dat niet alle routines worden aangepast aan de nieuwe situatie.quote:jmeinders schreef op zaterdag 25 februari 2017 @ 15:08:
Ik heb een ds18b20 aangesloten op D12, temperatuur wordt goed weergegeven op mijn lcd display
deze sensor wil ik gebruiken om een relais in te schakelen (relais is op D5 aangesloten)
Comparison filter aangemaakt , geselecteerd in output pins om D5 om in te schakelen,
Met een ds18b20 werkt dit niet , met een temp 36 werkt het wel .
In de vorige versie 3.9.0.0 werkte het wel , in versie 4.0.0.1 helaas niet.
Heeft iemand een idee wat ik verkeerd doe.
m.v.g.
Jan
In 4.1 is dit alles opgelost. Nog even de handleiding aanpassen met voorbeelden, dan kan deze versie wat mij betreft gedeeld worden.
Willie Wortel wijzigde deze reactie 24-03-2017 09:30 (5%)
Nieuw in DaL temperatuur, luchtdruk en computer berekende hoogte sensor BMP180 en BMP280:
https://www.bosch-sensort...ducts/all_products/bmp280
gebaseerd op de adafruits:
https://learn.adafruit.co...-breakout/wiring-and-test
te koop op ebay:
http://www.ebay.com/sch/i...TRS1&_nkw=BMP180&_sacat=0
Nu kan je simpel een weerstation bouwen.

Dit is een goed bericht, ik heb van alles al geprobeerd maar lukte mij nog steeds niet. Willie bedankt voor al je moeite wat je er aan gedaan hebt, als 4.1 beschikbaar is ga ik die gelijk installeren.quote:Willie Wortel schreef op vrijdag 24 maart 2017 @ 09:29:
[...]
Na even de routines te hebben nagelopen het euvel gevonden en aangepast. Als er sensoren worden aangepast/ toegevoegd (multiple OneWire probes op 1 dPin) gebeurd het wel eens dat niet alle routines worden aangepast aan de nieuwe situatie.
In 4.1 is dit alles opgelost. Nog even de handleiding aanpassen met voorbeelden, dan kan deze versie wat mij betreft gedeeld worden.

Omnik 3.0 15 Eging panelen 195wp
De config heb ik opnieuw opgebouwd (options-webpagina van 3.7.0.0 naast die van 4.0.0.1). Het meten en uploaden van gegevens naar PVOutput gaat goed.
Wat echter niet meer werkt, is het display. Ik heb een SainSmart 4x20 display op adres 0x27, die altijd prima heeft gewerkt. Nu krijg ik echter een witte 1e en 3e balk, maar geen zichtbare data (hetzelfde als wat Magnat hier in het forum ook een aantal weken geleden gemeld heeft).
Ik gebruik het shield van Sateetje.
Configstring:
code:
1
| V:4.0.0.1_D:24-3-2017_T:20:9;-1,;0,1,0123456789abcdeffedcba9876543210aaaaaaaa,11199,60,,,;-1,;-1,;0,1,,,60,,,;-1,;-1,;0,v1=,P0K,3!0,v2=,P0W,3!0,v3=,P1K,3!0,v4=,P1W,3;-1,;-1,;0,PulseMeter1Watts,P0W,3!0,PulseMeter1kWh,P0K,3!0,PulseMeter1Pulses,P0U,3!0,PulseMeter2Watts,P1W,3!0,PulseMeter2kWh,P1K,3!0,PulseMeter2Pulses,P1U,3;-1,;0,1,D11,2000,0,L14,0,1,300,3500,0!1,1,D10,100,0,,0,1,1800,7000,0;-1,;-1,;-1,;-1,;0,0,0,0,Zon:,,0,3!0,0,0,11,Verbruik:,,0,3!0,0,1,0,kWh:,,0,3!0,0,1,11,kWh:,,0,3!0,0,1,5,,P0K,0,3!0,0,1,15,,P1K,0,3!0,0,2,5,,P0W,0,3!0,0,2,15,,P1W,0,3!0,0,2,0,Watt:,,0,3;-1,;0,1,2,4,20,,,0x27,10,1,1,,,,;0,1,1,2;-1,;-1,;-1,;0,,,,,;-1,;-1,;0,2,2,7,2,1,,:1.8.2(,*kWh),:1.8.1(,*kWh),:2.8.1(,*kWh),:2.8.2(,*kWh),6.14.0(,),:2.7.0(,*kW),:1.7.0(,*kW),(m3)&(,);-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;,,25,,,,,,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;192.168.1.15,255.255.255.0,192.168.1.254,5C-86-4A-00-6A-11,80,65432,1,0,;32216;911; |
Iemand een idee?
Cranberry wijzigde deze reactie 24-03-2017 21:11 (44%)
'k Heb de hex geflashed, dus wat er daadwerkelijk naar de ND is gegaan, kan ik zo niet bepalen. UItgaande van de sourcecode, staat de optie aan. Anders zouden er denk ik wel meer meldingen zijn, tenzij iedereen hier vanuit VB de code rechstreeks naar de ND compiled/stuurt.quote:
Ik heb hier laatst ook mee lopen klooien maar uiteindelijk weer het oude display aangesloten omdat de 4x20 het niet goed deed, lag niet aan de software maar aan het display, ik ben nog op een nieuwe aan het wachten.
klump4u wijzigde deze reactie 24-03-2017 21:36 (77%)
Misschien moet ik het gewoon proberen, maar hier toch even de vraag: kan ik met de nieuwste firmware probleemloos de 3.7.0.0-hex weer flashen? Op die manier kan ik uitsluiten dat tijdens de upgrade het scherm de pijp aan Maarten heeft gegeven.
Update: 'k heb geprobeerd versie 3.7.0.0 van de hex-file weer te deployen, maar dat lukte niet. Het opnieuw laden van v4.0.0.1 ging als een speer.
Cranberry wijzigde deze reactie 24-03-2017 22:28 (87%)
Willie Wortel wijzigde deze reactie 27-03-2017 11:19 (94%)
Dus die ;-1, moet ervoor worden gezet of alleen als je een IP e.d. invult?quote:Willie Wortel schreef op zondag 26 maart 2017 @ 19:27:
DaL versie 4.1.0.0
https://we.tl/owZBUG8JoV
Wat bugfixes, debugger detectie en de DHTsensor erin geprogrammeerd.
update opstart string van 4.0.0.1 naar 4.1.0.0 is vrij eenvoudig en handmatig uit te voeren.
[afbeelding]
NB de ;192 kan natuurlijk ieder begin van een IP adres zijn en is hier alleen gebruikt als voorbeeld.
Zelf laat ik ipadres, subnetmask, gateway adres en MAC leeg opdat dit static in de Netduino zelf staat. Kan ook veranderd worden met mfdeploy.
veel plezier ermee.
Voor een update moet de ;-1, voor de ;192 gezet worden, of je nu wel of geen IPadres invult in de opstart string.quote:klump4u schreef op zondag 26 maart 2017 @ 19:46:
[...]
Dus die ;-1, moet ervoor worden gezet of alleen als je een IP e.d. invult?
Ik heb alleen de 192 gebruikt voor plaatsbepaling.
hoe werkt nu zo een opstart string.
In het programma wordt de opstart string opgesplitst in delen met de ; als scheidingsteken.
Visual Basic:
1
2
3
4
5
6
7
| dim varUitgesplitst() = opstartString.split(";"c) Const cnstDHTsensor As Integer = 45 debug.print ( varUitgesplitst ( cnstDHTsensor ) ) 'uitkomst -1, (en dit is wat je moest toevoegen.) |
door de varUitgesplitst(45) aan te roepen weet DaL hoe de DHTsensor moet worden ingesteld.
Plaats 45 is dus gereserveerd voor de DHTsensor, als de oude opstart string gebruikt zou worden dan wordt de plaats van het ipadres gebruikt (de oude plaats 45).
PS; Er is natuurlijk een VEEEEEEEL efficiëntere manier om een opstart string te maken en te onderhouden maar dat past niet in de 64kb geheugen van de Netduino.
Willie Wortel wijzigde deze reactie 26-03-2017 20:07 (7%)
Das duidelijk Willie,quote:Willie Wortel schreef op zondag 26 maart 2017 @ 20:05:
[...]
Voor een update moet de ;-1, voor de ;192 gezet worden, of je nu wel of geen IPadres invult in de opstart string.
Ik heb alleen de 192 gebruikt voor plaatsbepaling.
hoe werkt nu zo een opstart string.
In het programma wordt de opstart string opgesplitst in delen met de ; als scheidingsteken.
Visual Basic:
1 2 3 4 5 6 7 dim varUitgesplitst() = opstartString.split(";"c) Const cnstDHTsensor As Integer = 45 debug.print ( varUitgesplitst ( cnstDHTsensor ) ) 'uitkomst -1, (en dit is wat je moest toevoegen.)
door de varUitgesplitst(45) aan te roepen weet DaL hoe de DHTsensor moet worden ingesteld.
Plaats 45 is dus gereserveerd voor de DHTsensor, als de oude opstart string gebruikt zou worden dan wordt de plaats van het ipadres gebruikt (de oude plaats 45).
PS; Er is natuurlijk een VEEEEEEEL efficiëntere manier om een opstart string te maken en te onderhouden maar dat past niet in de 64kb geheugen van de Netduino.
Ik weet alleen nog niet of ik hem meteen update want de "oude" loopt nu al 57 dagen aan een stuk

Vanavond of morgen zal ik de update installeren. Kun je aangeven of in de bugfixes ook iets met betrekking tot de aansturing van displays is veranderd? Zoals hierboven aangegeven, werkt sinds de upgrade van 3.7.0.0 naar 4.0.0.1 m'n display niet meer.
Overigens kan ik ook bevestigen dat de stabiliteit enorm verbeterd is. Vanmorgen had ik een up-time van bijna 2,5 dag. Dat heb ik met vorige versies nog niet gezien. Klasse!
Er is niets veranderd, welk display heb je dan test ik de display op de testbank.quote:Cranberry schreef op maandag 27 maart 2017 @ 08:31:
.... Kun je aangeven of in de bugfixes ook iets met betrekking tot de aansturing van displays is veranderd? Zoals hierboven aangegeven, werkt sinds de upgrade van 3.7.0.0 naar 4.0.0.1 m'n display niet meer.
....
Gebruik je een HEX of de sourcecode?
Het display gaat wel aan. De eerste en derde regel laten witte blokken zien.
Ik gebruik het shield van Sateetje.
zie hier een foto met de dht22 sensor gekoppeld aan de display.
Update met versie 4.1 en kijk je row en id van de display na.
Willie Wortel wijzigde deze reactie 27-03-2017 11:26 (24%)
DaL versie 4.1.0.0
https://we.tl/2UsrpZyJv9
Wat bugfixes, debugger detectie en de DHTsensor erin geprogrammeerd.
update opstart string van 4.0.0.1 naar 4.1.0.0 is vrij eenvoudig en handmatig uit te voeren.
NB de ;192 kan natuurlijk ieder begin van een IP adres zijn en is hier alleen gebruikt als voorbeeld.
Zelf laat ik ipadres, subnetmask, gateway adres en MAC leeg omdat dit static in de Netduino zelf staat. Kan ook veranderd worden met mfdeploy.
veel plezier ermee.
V.w.b. probleem met het display: de config is als volgt:

'k Heb ook al getest met alleen een simpele regel tekst, maar dat wordt ook niet getoond.
'k Ben bang dat ik toch maar een tweede LCD moet gaan bestellen. De aansturing kan wellicht defect zijn geraakt oid.
Kan wel met een open deur komen van zitten de draden juist aangesloten en gebruik je pullup weerstanden 4k7 op de SC en SD ingangen naar de 5v van je Netduino maar dat weet je allemaal al. Kijk naar het aansluit schema en loop alles na zou ik zeggen.
Goed dat je aangeeft dat er aan de code m.b.t. de aansturing van het display niets is veranderd. Dan kunnen we software als oorzaak min of meer uitsluiten.
'k Gebruik het shield van sateetje (dat ik nu een klein jaar gebruik), dus aan aansluitschema's enz. kan het niet liggen. 'k Heb het shield al even losgehaald en opnieuw geplaatst op de ND. Aansluiting van display naar shield heb ik losgehaald en opnieuw aangelosten.
Dan resten m.i. nog 3 oorzaken: firmware (ook al onwaarschijnlijk omdat het bij meerderen gewoon werkt), configuratie (volgens mij ook niet de oorzaak, omdat een simpele text string al niet wordt weergegeven). De laatste is dan een probleem met het display zelf.
Willie, zou je mijn config string willen testen? Dan kunnen we de configuratie ook uitsluiten
code:
1
| V:4.0.0.1_D:24-3-2017_T:20:9;-1,;0,1,0123456789abcdeffedcba9876543210aaaaaaaa,11199,60,,,;-1,;-1,;0,1,,,60,,,;-1,;-1,;0,v1=,P0K,3!0,v2=,P0W,3!0,v3=,P1K,3!0,v4=,P1W,3;-1,;-1,;0,PulseMeter1Watts,P0W,3!0,PulseMeter1kWh,P0K,3!0,PulseMeter1Pulses,P0U,3!0,PulseMeter2Watts,P1W,3!0,PulseMeter2kWh,P1K,3!0,PulseMeter2Pulses,P1U,3;-1,;0,1,D11,2000,0,L14,0,1,300,3500,0!1,1,D10,100,0,,0,1,1800,7000,0;-1,;-1,;-1,;-1,;0,0,0,0,Zon:,,0,3!0,0,0,11,Verbruik:,,0,3!0,0,1,0,kWh:,,0,3!0,0,1,11,kWh:,,0,3!0,0,1,5,,P0K,0,3!0,0,1,15,,P1K,0,3!0,0,2,5,,P0W,0,3!0,0,2,15,,P1W,0,3!0,0,2,0,Watt:,,0,3;-1,;0,1,2,4,20,,,0x27,10,1,1,,,,;0,1,1,2;-1,;-1,;-1,;0,,,,,;-1,;-1,;0,2,2,7,2,1,,:1.8.2(,*kWh),:1.8.1(,*kWh),:2.8.1(,*kWh),:2.8.2(,*kWh),6.14.0(,),:2.7.0(,*kW),:1.7.0(,*kW),(m3)&(,);-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;,,25,,,,,,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;192.168.1.15,255.255.255.0,192.168.1.254,5C-86-4A-00-6A-11,80,65432,1,0,;32216;911; |
geen probleem, ga ik doenquote:Cranberry schreef op dinsdag 28 maart 2017 @ 08:35:
Willie, zou je mijn config string willen testen? Dan kunnen we de configuratie ook uitsluiten
code:
1 V:4.0.0.1_D:24-3-2017_T:20:9;-1,;0,1,0123456789abcdeffedcba9876543210aaaaaaaa,11199,60,,,;-1,;-1,;0,1,,,60,,,;-1,;-1,;0,v1=,P0K,3!0,v2=,P0W,3!0,v3=,P1K,3!0,v4=,P1W,3;-1,;-1,;0,PulseMeter1Watts,P0W,3!0,PulseMeter1kWh,P0K,3!0,PulseMeter1Pulses,P0U,3!0,PulseMeter2Watts,P1W,3!0,PulseMeter2kWh,P1K,3!0,PulseMeter2Pulses,P1U,3;-1,;0,1,D11,2000,0,L14,0,1,300,3500,0!1,1,D10,100,0,,0,1,1800,7000,0;-1,;-1,;-1,;-1,;0,0,0,0,Zon:,,0,3!0,0,0,11,Verbruik:,,0,3!0,0,1,0,kWh:,,0,3!0,0,1,11,kWh:,,0,3!0,0,1,5,,P0K,0,3!0,0,1,15,,P1K,0,3!0,0,2,5,,P0W,0,3!0,0,2,15,,P1W,0,3!0,0,2,0,Watt:,,0,3;-1,;0,1,2,4,20,,,0x27,10,1,1,,,,;0,1,1,2;-1,;-1,;-1,;0,,,,,;-1,;-1,;0,2,2,7,2,1,,:1.8.2(,*kWh),:1.8.1(,*kWh),:2.8.1(,*kWh),:2.8.2(,*kWh),6.14.0(,),:2.7.0(,*kW),:1.7.0(,*kW),(m3)&(,);-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;,,25,,,,,,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;192.168.1.15,255.255.255.0,192.168.1.254,5C-86-4A-00-6A-11,80,65432,1,0,;32216;911;
edit: die doet het gewoon. Cranberry, heb jij echt de laatste versie die ik gisteren heb geupload in je Netduino draaien?..... als je op regel 0 en op regel 2 witte balken ziet dan staat de display uit in je software.
dan zie je dit:
En je moet je oude netduinoconfig.ini op je sdkaart verwijderen! en vervangen door de 4.1 opstart string
Willie Wortel wijzigde deze reactie 28-03-2017 09:58 (17%)
We zitten ook met het weinige geheugen.
Nu is het zo dat je eerst een opstart string moet aanmaken en wegschrijven op je sd kaart OF hardcoded in je sourcecode moet plaatsen. Wat moet ik hier nu aan veranderen.
Verder vind ik de bestaande mogelijkheden al redelijke gemakkelijk. Als je met mfdeploy een correcte ip-configuratie instelt, is het een kleine moeite om via options-pagina een configuratie naar de ND te sturen. Je hoeft dan niets met het SD-kaartje te doen.
Ik zie persoonlijk niet veel ruimte voor verbetering voor dit specifieke aspect

Opnieuw dank Willie!quote:Willie Wortel schreef op dinsdag 28 maart 2017 @ 09:35:
[...]
edit: die doet het gewoon. Cranberry, heb jij echt de laatste versie die ik gisteren heb geupload in je Netduino draaien?..... als je op regel 0 en op regel 2 witte balken ziet dan staat de display uit in je software.
dan zie je dit:
[afbeelding]
En je moet je oude netduinoconfig.ini op je sdkaart verwijderen! en vervangen door de 4.1 opstart string
Ik zie inderdaad die 2 witte balken. Staat het display dan uit in de hex-file? Ik laad immers de hex-file in de netduino m.b.v. mfdeploy.....
Ik zal vanavond (als de zon niet meer schijnt

Zojuist heb ik het display nog even aan de raspberry gehangen en daar werkt 'ie vlekkeloos.
Vanvond laat ik meer weten!
- CaptChaos
- Registratie: november 2007
- Laatst online: 09-12-2018
Ik nu een tijd bezig met dit programma en ik wil steeds meer dingen registeren.
dus ik dacht het aantal in en uitgangen te gaan uitbreiden dmv een MCP 23017 IC
gezien deze ook in het setup programma voor komt
ik voer dan het adres in (keuze zichtbaar), maar hoe maak ik dan de extra in of uitgangen bekend.
in de input setup staan wel toetsen aan gegeven maar wat voer ik daar dan in.
Dus wat moet er staan voor een uitgang en wat voor een ingang :
ID / inputbutton / pin to active / gedrag / begin stand.
als ik het nu probeer in te voeren krijg ik alleen de in/uitgangen van de netduino te zien.
ps ik heb het uitbreidings kaartje van sateetje, maar die is intussen helemaal gebruikt.
alvast bedankt.
Dit is niet langer ondersteund, de MCP IC wordt wel ondersteund maar alleen om te schakelen zoals een dPin. Indien de MCP geconfigureerd is wordt deze zichtbaar in de pulldown menu's. Denk dat je PinsOnFilter TAB bedoelt om te schakelen onder een conditie.quote:CaptChaos schreef op dinsdag 28 maart 2017 @ 19:29:
Dus wat moet er staan voor een uitgang en wat voor een ingang :
ID / inputbutton / pin to active / gedrag / begin stand.
Zal de MCP buttons tab verwijderen.
De belangrijkste reden was dat bij het geheel opnieuw opbouwen van de configuratie e.e.a. niet werkte. De pulsemeters zag ik niet terug als naar http://<netduinoIP>:65452/now browsde.
In de configuratiestring zag ik aan het einde dit staan: undefined,undefined,0,0,;undefined;617;
En dat dus terwijl ik met een schone lei was begonnen. Een foutje ergens in de webpagina's van 4.1.0.0?
Het display deed het in ieder geval ook niet.
Willie, ben jij toen je vanmorgen mijn configstring hebt getest, gestart met het deployen van de hex-file die je maandag hebt vrijgegeven?
Mijn standaard werkwijze is als volgt:
- netduino uitzetten
- sd kaart verwijderen (anders kan ik de SW niet deployen)
- netduinoconfig.ini en memfile bestanden verwijderen
- software deployen
- reboot
- met /options.html pagina de config toepassen (meestal door copy&paste van de config string en dan save to netduino.
Cranberry wijzigde deze reactie 28-03-2017 21:30 (6%)
Heb je dit in de opstartstring verwerkt? https://tweakers.net/ext/f/k6WEpxg4SW8AAhN5OgaQmBEY/full.jpg
Ik zou eerst een pulse meter toevoegen in een geheel nieuwe string en dan telkens wat toevoegen.
Ik heb laatst met een update ook lopen klooien met een oude string en ben toen opnieuw begonnen met een kale string.
Cranberry, iets wat ik normaal niet doe maak ik speciaal voor jou een uitzondering.quote:Cranberry schreef op dinsdag 28 maart 2017 @ 21:45:
Die had ik inderdaad ook toegevoegd. Toen bleek dat dat niet werkte, ben ik inderdaad zoals jij ook al aangaf, van scratch af aan begonnen met inderdaad 2 pulsemeters.
Wat ik heb gedaan:
sd kaart eruit, netduinoconfig.ini verwijderd, sd kaart erin.
met mfdeploy DaL 4.1 (maandag versie) erin.
https://gathering.tweaker...message/50713313#50713313
met OPTIONS.HTML een string aangemaakt, 2 pulsemeter ID 88888 en 999999
sd kaart eruit, in mijn computer, string weggeschreven in netduinoconfig.ini, sdkaart

sainsmart display toegevoegd:
save to netduino
verifieer 2x voor alle zekerheid !!!
reset netduino om de nieuwe string in te laden.
resultaat:
wat moet ik er meer aan doen als dit?
Willie Wortel wijzigde deze reactie 29-03-2017 09:51 (4%)

'k Zal nog een poging wagen, waarbij ik de door jou hierboven uitgevoerde stappen 100% identiek uitvoer.
De komende dagen ben ik nogal druk met o.a. overwerk, waardoor een update van het resultaat enkele dagen op zich kan laten wachten.
Nog even dit voor allen:quote:Cranberry schreef op dinsdag 28 maart 2017 @ 21:30:
In de configuratiestring zag ik aan het einde dit staan: undefined,undefined,0,0,;undefined;617;
Als je UNDEFINED ziet staan is er iets goed fout in je opstartstring.!
Dan is er handmatig aan geklooid of een verkeerde oude string erin geplakt en daarna op re-config gedrukt, je mag (in principe) niets handmatig aan de opstart string veranderen zonder dat je weet wat je doet, daarna moet je ALTIJD op re-config klikken omdat niet de string wordt vertaald maar de data in het programma (de widgets) in de TAB send to netduino. De string is alleen visueel of voor copy naar een ander bestand, niets meer dan dat.
Wat is er makkelijker om even opnieuw te typen, start gewoon 2 options pagina's op, links op het scherm 1 met de oude versie en rechts op het scherm 1 met de nieuwe versie en voer opnieuw in.
Wat ik zal doen is NOG een extra beveiliging inbouwen in de options.html, als "undefined" gelezen wordt komt de foutmelding zichtbaar en stopt het proces.
JavaScript:
1
2
3
4
| if (allData.indexOf("undefined") >-1) { myAlert('"UNDEFINED" detected <br/> in startupString <br/><br/>the Netduino<br/>does not work properly<br/>with this configuration.<br/><br/>PROGRESS ABORT', "error") return; }; |
edit : undefined beveiliging.
Willie Wortel wijzigde deze reactie 29-03-2017 11:49 (13%)
je netduino heeft nooit je opstartstring ingeladen, kan het bestand netduinoconfig.ini niet vinden of bestaat niet. Dit weet ik omdat je pulsemeters niet zichtbaar in NOW zijn.quote:Cranberry schreef op woensdag 29 maart 2017 @ 08:57:
Dank! Meer kun je volgens mij niet doen....![]()
'k Zal nog een poging wagen, waarbij ik de door jou hierboven uitgevoerde stappen 100% identiek uitvoer.
De komende dagen ben ik nogal druk met o.a. overwerk, waardoor een update van het resultaat enkele dagen op zich kan laten wachten.
- CaptChaos
- Registratie: november 2007
- Laatst online: 09-12-2018
Bedankt voor je uitleg.
Eerst even de hardware in elkaar zetten

als het werkt ben ik weer een stel pins rijker, zodat ik nog meer kan monitoren
met jouw fantastische programma.

Ik heb de DHT luchtvochtigheid sensor al enige tijd naast een ds18b20 temperatuur sensor geplaatst ter controle. Geven beiden dezelfde temperaturen weer. We kunnen dus stellen dat de DHT sensor betrouwbaar is.
(NB de warmtepomp draait niet dus gegevens zijn 0.0)
Willie Wortel wijzigde deze reactie 30-03-2017 08:53 (58%)
Omnik 3.0 15 Eging panelen 195wp
SCRIPT7002: XMLHttpRequest: Netwerkfout 0x2efd, Kan deze bewerking niet voltooien door fout 00002efd.
Als ik het dashboard van de 4.0.0.1 draai krijg ik Chrome soms wel en soms niet data op mijn dashboard.
De pagina Now krijg ik gewoon te zien.
In de Options pagina krijg ik ook niks als ik load from netduino doe.
Ik heb de opstart string hardcoded in de source software

dan is je ip of port instellingen in netduinoConfig.js niet juist.
het ip en port nummer is ook terug te zien in de OPTIONS.HTML tab save en load from Netduino
Er is namelijk NIETS veranderd tussen versie 4.0 en versie 4.1 in netwerk programma code.
Dat er wel eens een ander port nummer staat is omdat ik hier tot wel 5 netduino's heb draaien in test code
Willie Wortel wijzigde deze reactie 02-04-2017 20:58 (9%)
Poort instelling is goed, het zit ergens anders maar waar,
In Explorer doet hij niks en in Chrome doet hij het soms,
klump4u wijzigde deze reactie 02-04-2017 21:42 (3%)
Willie Wortel wijzigde deze reactie 03-04-2017 14:41 (99%)
Probleem is opgelost, van alles gedaan, ook het bovenstaande, niks werkte.
Uiteindelijk heb ik een nieuw poortnummer toegewezen en wat zie ik, in het bestand NetduinoConfig staat poortnummer 65452 van jou configuratie en ik heb dit als 65432 gelezen met mijn domme kop.
Sorry voor de overlast.
Geeft niet, doe ik zo vaak ergens overheen kijken, je verwacht het ook niet.quote:

Ik zit nu met dat ik geen mailtjes meer kan versturen / ontvangen via outlook.com ..... wat ik fout doe,..... pppffffff ik vond al dat ik weinig email krijg of pas dagen later.... Het zit ergens in outlook maar waar, testen verzenden/ontvangen zijn positief..... u kunt aan de slag..... maar daarna blijft het stil, oorverdovend stil.

quote:Willie Wortel schreef op maandag 3 april 2017 @ 13:08:
[...]
Ik zit nu met dat ik geen mailtjes meer kan versturen / ontvangen via outlook.com ..... wat ik fout doe,..... pppffffff ik vond al dat ik weinig email krijg of pas dagen later.... Het zit ergens in outlook maar waar, testen verzenden/ontvangen zijn positief..... u kunt aan de slag..... maar daarna blijft het stil, oorverdovend stil.
Vreemd. Je gebruikt Outlook 2013/2016? Zie je wel mail (zowel ontvangen als verzonden) als je de webmail (https://outlook.live.com/owa/) gebruikt?
Komt mail wel aan bij ontvangers?
Je zou inderdaad zeggen als de verzend/ontvang test succesvol is, alles gewoon werkt. Eventueel kun je de optie 'Enable troubleshooting logging' in Outlook inschakelen om een aanknopingspunt te vinden.
De eerste stappen:
1. SD kaartje dat ik al jaren gebruik formatteren (FAT)
2. Flashen 4.1.0.0 hex ('maandag-versie')
3. Netduino uitzetten en SD-kaartje met vrij kale config string geplaatst.
4. Netduino weer gestart
5. Via /now gekeken. Resultaat: S0 meter is aanwezig.
Vervolgens het scherm toegevoegd in de options.html en de config naar de ND gestuurd en deze vervolgens een reset gegeven.
Resultaat: nog steeds 2 witte balken. Als ik in de config-pagina de config van de ND laad, is het scherm wel geconfigureerd. De config-string is dus correct, wordt ingelezen, maar het display werkt niet.
Voor de zekerheid heb ik het shield van Sateetje verwijderd en het display rechtstreeks op de daarvoor bestemde pinnen aangesloten. Helaas zonder resultaat.
Daarna heb ik nog een keer de laatste firmware (4.3.2.1) geflashed en opnieuw de hex-file gedeployed, maar 't display geeft niets zinnigs weer, terwijl het display op m'n RaspBerry Pi prima werkt. Technisch is het display dus in orde concludeer ik op basis daarvan.
Hierbij nog even de config string:
code:
1
| V:4.1.0.0_D:4-4-2017_T:21:8;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;0,1,D0,2000,0,,0,1,300,10000,0;-1,;-1,;-1,;-1,;0,0,0,0,Test,,0,3;-1,;0,1,2,4,20,,,0x27,10,1,1,,,,;0,1,1,-1;-1,;-1,;-1,;0,,,,,;-1,;-1,;0,2,2,7,2,1,,:1.8.2(,*kWh),:1.8.1(,*kWh),:2.8.1(,*kWh),:2.8.2(,*kWh),6.14.0(,),:2.7.0(,*kW),:1.7.0(,*kW),(m3)&(,);-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;,,25,,,,,,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;192.168.1.46,255.255.255.0,192.168.1.46,5C-86-4A-00-5F-1A,80,65452,0,1,;32216;481; |
Weet 't weet mag 't zeggen. Ik heb werkelijk geen idee wat hier nu misgaat.
Cranberry wijzigde deze reactie 04-04-2017 21:15 (53%)
Zomaar wat vragen of ideetjes, andere voeding proberen (zwaardere Amp), wordt het display gevoed door de 5v of 3,3 v, ander display selecteren in options pagina.
Ik zal als het me deze week nog lukt ook eens proberen de 20x4 op een netduino aansluiten, ik heb nog steeds de 16x2 draaien.
'k Heb het display zowel met een lader die 750mA kan leveren, als via de USB-poort van m'n laptop (die sowieso 1A kan leveren). Het display wordt gevoed met 5V.
'k Ben idd benieuwd of jouw scherm het wel doet.
'k Ben nu de hele avond aan 't stoeien geweest, waardoor ik de latere details niet allemaal exact meer helder heb, maar wat me met 4.1.0.0 wel opviel dat het wegschrijven van de configstring d.m.v. de webpagina's niet lekker loopt. Zo had ik een keer een werkende configstring rechtreeks in de netduinoconfig.ini geplaatst. Daarna heb ik die config aangepast via de webpagina en weggeschreven naar de ND. Na de noodzakelijke reset bleek de string niet meer gelezen te kunnen worden. Bij nader onderzoek bleek de string in de netduinoconfig.ini substantieel korter dan de string rechtstreeks vanuit de webpagina's. Verder had ik last van verschillende ip-configuraties en het feit dat een werkende configstring na een herstart van de netduino een datum van 1-1-1601 (oid) had, waardoor 'ie niet werd geaccepteerd.
Met het flashen van 4.0.0.1 was dit allemaal opgelost.
opnieuw een hex gedraaid, getest met een sainsmart en goed bevonden:
hier de hex uit het netduinotje:
https://we.tl/R4VzP5V1WM
Als het bij mij werkt moet dat ook bij jou het geval zijn, een computer verzint niks.
dit is de string die ik gebruikt heb met 2 nep pulsemeters + 1 sainsmart op 0x27
code:
1
| V:4.1.0.0_D:29-3-2017_T:8:25;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;88888,1,D0,2000,0,,0,1,300,10000,0!999999,1,D2,2000,0,,0,1,300,10000,0;-1,;-1,;-1,;-1,;0,0,0,0,test+granberry,,0,3!0,0,1,0,hoera,,0,3!0,0,2,0,het+werkt,,0,3;-1,;0,1,2,4,20,,,0x27,10,1,1,,,,;0,0,1,-1;-1,;-1,;-1,;0,,,,,;-1,;-1,;0,2,2,7,2,1,,:1.8.2(,*kWh),:1.8.1(,*kWh),:2.8.1(,*kWh),:2.8.2(,*kWh),6.14.0(,),:2.7.0(,*kW),:1.7.0(,*kW),(m3)&(,);-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;,,25,,,,,,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;,,,,80,65452,1,0,;32216;520; |
zoals je ziet luistert deze string naar PORT 65452, dit kan handmatig veranderd worden.
Dat je string soms niet goed weggeschreven wordt kan kloppen, uitleg: de netduino werkt met een schrijf buffer en schrijft dus periodiek weg. Met .commit of .flush dwing je softwarematig om de buffer te legen maar zonder resultaat. Je kan altijd controleren met het bestand SWAPFILE.HTML of je bestand juist is weggeschreven op je sd kaart. dubbelklik op het te bekijken bestand, het bestand wordt dan ingelezen en geopend in kladblok. Beter even kijken dan frustratie.!
hier uitleg van Microsoft:
https://msdn.microsoft.co....3);k(DevLang-VB)&rd=true
Wegschrijven naar sd kaart gebeurd Asynchronische en werkt in de achtergrond omdat dit veel tijd vergt.
BEST oplossing: Je kan je sdkaart eruit trekken en je string wegschrijven vanuit je computer. Resetten is het aller beste met stroom eraf, stroom erop.
En vergeet niet, de sainsmart werkt alleen met pullup weerstanden op je I2C
EDIT: dat de button COMPARE WITH SAVED DATA geen fouten aangeeft kan ook kloppen, deze leest ook de buffer.

zo nu is het juist weergegeven.

ADD:
voor geïnteresseerden in HowTO, hier de schrijf routine:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Using writeStream = New FileStream(strDir & "\" & request(3), If(request(4) = "0", FileMode.CreateNew, FileMode.Append), FileAccess.Write) For t As Integer = 0 To buf.Length - 1 Step cnstMaxBuffer Dim bWriteBuffer() As Byte = Encoding.UTF8.GetBytes(buf.Substring(t, If(t + cnstMaxBuffer > buf.Length - 1, buf.Length - t, cnstMaxBuffer))) writeStream.Write(bWriteBuffer, 0, bWriteBuffer.Length) Thread.Sleep(5) Next writeStream.Flush() writeStream.Close() End Using |
Willie Wortel wijzigde deze reactie 05-04-2017 08:51 (23%)
Klump, twijfel niet, de Netduino en software werkt gewoon. Als het bij mij functioneert moet dat ook elders het geval zijn.quote:klump4u schreef op dinsdag 4 april 2017 @ 21:34:
@Cranberry
........
Ik zal als het me deze week nog lukt ook eens proberen de 20x4 op een netduino aansluiten, ik heb nog steeds de 16x2 draaien.
Dat zou inderdaad zo moeten zijn. Misschien is - heel erg toevallig - de I2C aansturing o.i.d. van de ND kapot gegaan bij de upgrade van de FW naar 4.3.2.1.quote:Willie Wortel schreef op woensdag 5 april 2017 @ 08:43:
[...]
Klump, twijfel niet, de Netduino en software werkt gewoon. Als het bij mij functioneert moet dat ook elders het geval zijn.
Met 4.0.0.1 werkt het in principe goed: de config string wordt juist weggeschreven, waarden worden bewaard, een aangepaste configuratie kan vanuit de options.html succesvol naar de ND worden gestuurd. Na een reboot wordt alles weer goed opgepakt.
Enige dat niet werkt, is het display.
Helaas heb ik geen 2e netduino en op MP zie ik er geen te koop staan. 'k Zou anders graag een tweede aanschaffen om mee te testen. Aanschaf van een nieuwe vind ik jammer van 't geld als blijkt dat het niet aan de ND ligt.
Nog enig idee of de aansturing van het display op de één of andere manier valt te debuggen?
Als jij zegt dat je alles juist hebt aangesloten dan weet ik het ook niet.quote:Cranberry schreef op woensdag 5 april 2017 @ 09:20:
[...]
Nog enig idee of de aansturing van het display op de één of andere manier valt te debuggen?
Ik ben nu met de programma code bezig voor de BMP180 sensor, luchtdruk, hoogte en temperatuur.
Als dat klaar is zet ik hier de code online en stop ik met ondersteuning voor de DaL Netduino.
Ik ben bezig met een nieuw project waar ik straks de volle aandacht aan wil geven.
Ik vind het zelf ook onverklaarbaar. Ik wacht in ieder geval met spanning de nieuwe versie af.quote:Willie Wortel schreef op woensdag 5 april 2017 @ 14:46:
[...]
Als jij zegt dat je alles juist hebt aangesloten dan weet ik het ook niet.
Ik ben nu met de programma code bezig voor de BMP180 sensor, luchtdruk, hoogte en temperatuur.
Dank voor de tijd en energie die je in dit project hebt gestoken! Dat zullen heel wat uren zijn.....quote:Als dat klaar is zet ik hier de code online en stop ik met ondersteuning voor de DaL Netduino.
Ik ben bezig met een nieuw project waar ik straks de volle aandacht aan wil geven.
Ik heb de 20x4 lcd getest, en hij werkt
Wat heb ik gedaan?
Lcd met weerstanden aangesloten op de netduino naast de rest wat al aangesloten was.
Ik heb geen HEX maar de sourcecode met VS2013 op de netduino gezet incl. opstart string.
In de optionspagina de string gedownload, reconfig aangeklikt en toen de lcd toegevoegd.
Adres lcd is bij mij : 0x3f - Comm4 is SD en SC pin op netduino.
Adres 0x27 werkt bij mij niet, dan lichten alleen maar het 1e en 3e balkje op.

Is een lcd van Ebay
Daarna de string naar de netduino geupload en de netduino gereset en het werkte.
hierna nog wat proberen te veranderen en toen ging het uploaden een paar keer fout.
Nogmaals geprobeerd en gecontroleerd zoals Willie beschreef en het werkt.
Opvallend verschil met mijn configuratie is het instellen van een COM-port. Dat heb ik niet gedaan (nooit gedaan met oudere versies) en dat zou een verschil kunnen zijn.
Voordat ik het shield van Sateetje had, gebruikte ik (als ik het me goed herinner) geen weerstanden voor de display. SCL, SCA en GND sloot ik aan op de gelijknamige aansluitingen op de ND en de VCC lag aan de 5V.
Vanavond ff proberen.....
Update: geprobeerd of het configureren van een COM-port nog iets uitmaakt. Helaas niet.
Ik heb vorige week geprobeerd met Visual Studio de code in de ND te krijgen, maar op de één of andere manier kon ik het project niet openen. 'k Had op dat moment te weinig tijd om daar verder in te duiken.
't Lijkt er iig op dat het display geen signalen ontvangt. Als ik er bijv. voor keus om de backlight uit te zetten, gebeurt dat niet.
@Willie Wortel alle soorten van de SaintSmart displays worden toch met dezelfde module/code/class aangestuurd (sorry, ik ben een leek op dit gebied, dus ik zal ongetwijfeld de verkeerde termen gebruiken). Ik heb nl. het gevoel dat er ergens iets ontbreekt of uitstaat voor de variant van het display dat ik (en Magnat) heb.
Aangezien ik van 3.7.0.0 naar 4.0.0.1 ben gegaan snap ik dat niet (eenvoudig) kan worden nagegaan of er in de code gerelateerd aan de aansturing van displays iets is gewijzigd.
Nog even een plaatje van de achterkant van het display:
Cranberry wijzigde deze reactie 05-04-2017 18:18 (55%)
De communicatie port is voor de Digole display en wordt genegeerd, daar wordt niets mee gedaan.quote:Cranberry schreef op woensdag 5 april 2017 @ 16:17:
Dank voor de moeite klump4u.
Opvallend verschil met mijn configuratie is het instellen van een COM-port.
Ik heb vorige week geprobeerd met Visual Studio de code in de ND te krijgen, maar op de één of andere manier kon ik het project niet openen. 'k Had op dat moment te weinig tijd om daar verder in te duiken.
't Lijkt er iig op dat het display geen signalen ontvangt. Als ik er bijv. voor keus om de backlight uit te zetten, gebeurt dat niet.
@Willie Wortel alle soorten van de SaintSmart displays worden toch met dezelfde module/code/class aangestuurd (sorry, ik ben een leek op dit gebied, dus ik zal ongetwijfeld de verkeerde termen gebruiken). Ik heb nl. het gevoel dat er ergens iets ontbreekt of uitstaat voor de variant van het display dat ik (en Magnat) heb.
Aangezien ik van 3.7.0.0 naar 4.0.0.1 ben gegaan snap ik dat niet (eenvoudig) kan worden nagegaan of er in de code gerelateerd aan de aansturing van displays iets is gewijzigd.
Nog even een plaatje van de achterkant van het display:
[afbeelding]
Het verschil waar Klump het over had is een ander I2C adres,
en de display werkt niet zonder 4k7 pullup weerstanden
Je hebt nog de opstart string van 3.7 en je had gemeld dat de display daarmee werkt. Dan weet je ook het I2C adres.Er is niets gewijzigd in de programma code van de display, niet in 3.7 en ook niet in 4.1
Je ziet gewoon wat over het hoofd.
Het display wat je laat zien is dezelfde als uit mijn test.
------------------------------------
Pullup weerstanden waarom?
De data draden SD en SC staan met de weerstanden hoog (onder spanning).
De Netduino communiceert met het display door de draden laag (geen spanning) te trekken. Als je dit maar vaak genoeg en snel genoeg achter elkaar doet ontstaat er voor ons een soort morse en voor het display een begrijpelijke code die weer omgezet wordt in voor ons begrijpelijke tekens op het LCD scherm.
Oudere Tweakers herinneren zich nog wel dat er op vrijdag avond programma's via de ether werden verstuurd via geluidssignalen, dat werd dan opgenomen op een cassette bandje... zo had je dus gratis een programmatje... leuk hè. Dit is de voorloper van I2C
https://nl.wikipedia.org/wiki/Basicode
Willie Wortel wijzigde deze reactie 05-04-2017 20:11 (18%)
Thx WIllie. Ik gebruik het shield van Sateetje en daar zijn de pullup-weerstanden opgenomen.quote:Willie Wortel schreef op woensdag 5 april 2017 @ 19:57:
[...]
Het verschil waar Klump het over had is een ander I2C adres,en de display werkt niet zonder 4k7 pullup weerstanden
Je hebt nog de opstart string van 3.7 en je had gemeld dat de display daarmee werkt. Dan weet je ook het I2C adres.
Er is niets gewijzigd in de programma code van de display, niet in 3.7 en ook niet in 4.1
Je ziet gewoon wat over het hoofd.
Het display wat je laat zien is dezelfde als uit mijn test.
Inderdaad heb ik het adres overgenomen van de 3.7.0.0 configuratie (0x27). Dat is dus ook bekend.
Dan de vraag wat ik over 't hoofd kan zien:
- Software: ik gebruik deze hex: https://we.tl/R4VzP5V1WM
- aansluitingen: omdat ik het shield van Sateetje gebruik, zit dat wel snor. 'k Heb de aansluiting van het display wel 10x expliciet gecheckt
- configuratie: ik heb de configuratie van 3.7.0.0 geopend in de webpagina van 3.7.0.0 en aan de hand daarvan de configuratie voor 4.0.0.1 (en later 4.1.0.0) opgebouwd.
De configuratie van het display bestaat niet uit meer dan dit:
'k Heb nog niet begrepen dat iemand mijn opstartstring getest heeft. Zou iemand dat misschien willen doen?
code:
1
| V:4.1.0.0_D:5-4-2017_T:20:23;-1,;-1,;-1,;-1,;0,1,,,60,,,;-1,;-1,;-1,;-1,;-1,;0,PulseMeter1Watts,P0W,3!0,PulseMeter1kWh,P0K,3!0,PulseMeter1Pulses,P0U,3!0,PulseMeter2Watts,P1W,3!0,PulseMeter2kWh,P1K,3!0,PulseMeter2Pulses,P1U,3;-1,;0,1,D11,2000,0,L14,0,1,300,3500,0!1,1,D10,100,0,L14,0,1,1800,7000,0;-1,;-1,;-1,;-1,;0,0,0,0,Test,,0,3;-1,;0,1,2,4,20,4,,0x27,5,1,0,,,,;0,1,1,2;-1,;-1,;-1,;0,,,,,;-1,;-1,;0,2,2,7,2,1,,:1.8.2(,*kWh),:1.8.1(,*kWh),:2.8.1(,*kWh),:2.8.2(,*kWh),6.14.0(,),:2.7.0(,*kW),:1.7.0(,*kW),(m3)&(,);-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;,,25,,,,,,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;-1,;192.168.1.15,255.255.255.0,192.168.1.254,5C-86-4A-00-5F-1A,80,65432,1,0,;32216;671; |
Deze code moet als 't goed is alleen de simpele tekst 'Test' laten zien.
Volgens mij zijn hier toch alle dingen die je over 't hoofd kunt zien, benoemd? Of ben ik zo blind als een mol....

Alles in orde, string is gewoon goed.
En in 3.7 werkt je display wel?, dan is je Netduino niet kapot (die is niet kapot).
Klump schreef dat hij pullup weerstanden gebruikt.
Willie Wortel wijzigde deze reactie 05-04-2017 21:16 (104%)
In 3.7 werkte het display perfekt, eerst aangesloten m.b.v. een breadbord en sinds 'n halfjaar via de shield van Sateetje.
Configuratie kan ik nu dus ook wegstrepen als oorzaak. Omdat jij dezelfde hex geladen hebt, is dat ook geen verschil.
Ik ga er nog een nachtje over slapen.......
Je moet het echt zoeken in de SD SC aansluitingen naar I2C die niet in orde zijn.quote:Cranberry schreef op woensdag 5 april 2017 @ 21:28:
In 3.7 werkte het display perfekt, eerst aangesloten m.b.v. een breadbord en sinds 'n halfjaar via de shield van Sateetje.
---------------------------------
EEA heeft ook een positieve kant, het over en weer heeft mijn aandacht getrokken mbt het wegschrijven naar sdkaart. Even uittesten dat idee.
ja, ....het is zo...... na uitgebreid testen....alle pogingen wegschrijven naar de sd kaart positief.
in de nieuwe versie wordt dit opgenomen. In webserver.vb op ongeveer regel 740
Wat er veranderd is is als commentaar blijven staan. De Using end Using is veranderd in DIM en DISPOSE is toegevoegd. Ook de Garbage Collector is niet meer nodig GC(true)
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Const cnstMaxBuffer As Integer = 512 Dim writeStream As IO.FileStream = New FileStream(strDir & "\" & request(3), If(request(4) = "0", FileMode.CreateNew, FileMode.Append), FileAccess.Write) 'Using writeStream = New FileStream(strDir & "\" & request(3), If(request(4) = "0", FileMode.CreateNew, FileMode.Append), FileAccess.Write) For t As Integer = 0 To buf.Length - 1 Step cnstMaxBuffer Dim bWriteBuffer() As Byte = Encoding.UTF8.GetBytes(buf.Substring(t, If(t + cnstMaxBuffer > buf.Length - 1, buf.Length - t, cnstMaxBuffer))) writeStream.Write(bWriteBuffer, 0, bWriteBuffer.Length) Thread.Sleep(5) Next writeStream.Flush() writeStream.Close() writeStream.Dispose() 'End Using 'Debug.GC(True) |
Dus Granberry, ieder nadeel heeft ook zijn voordeel.

NOOT: controle met de compare button en SwapFile.html blijft noodzakelijk, beter even controleren dan irritatie.
NOOT2: waarom in stukjes wegschrijven........omdat het werkgeheugen te klein is.
Willie Wortel wijzigde deze reactie 06-04-2017 08:49 (60%)
Ik heb de hex 2 ook getest en het werkt ook bij mij.
Firmware van de 2e netduino bijgewerkt naar 4.3.2.1 van netduino
Ik moet wel zeggen wat een geklooi om die HEX erop te krijgen, voor mij liever VS2013, maar dat terzijde.
LCD aangesloten via schema.
VCC-5v
gnd-gnd
sda-sd met 4.7 weerstand
sdc-sc met 4.7 weerstand
Het wegschrijven naar de SD-kaart via de options pagina ging vaak niet goed (telkens foutmelding of hij kwam niet geheel door)
Daarom maar de string via de pc op de SD-kaart weggeschreven en dat werkt.
Sluit ik de lcd aan op de 3.3 v dan krijg ik geen beeld, en gebruik ik een ander adres dan 0x3F dan krijg ik de bekende 2 witte balken.
Ik ga nu alles er op zetten met VS2013 en ga hem weer aansluiten.
De SDA en SCL pinnetjes (shield Sateetje) zijn hoog (5V). Tevens wordt het display gevoed met 5V.
Spanning is dus OK, zodat ik dat als oorzaak hiermee ook min of meer uit sluit.
Dank voor het meedenken. Ik ga nadenken over hoe verder, want een display vind ik een waardevolle toevoeging.
Misschien probeer ik nog een ander display. Iemand nog ideeën? Liefst een net wat andere type (Digole??) ....

Wel 4x20 blauw bij voorkeur.
Er is genoeg tekoop op ebay voor weinig. Zoek op sainsmart en koop hier en daar wat, voor 10 euro heb je een handvol.quote:
- CaptChaos
- Registratie: november 2007
- Laatst online: 09-12-2018
Naar aanleiding van je bericht over de pins van de MCP23017
heb ik nog de volgende vragen.
de MCP23017 heeft 2 keer 8 i/o uitgangen, echter in het DAL pin menu zie ik er maar 8
net als bij de PCF 8574
Is dit een programma probleem ??
Verder lijkt het erop, dat ik deze uitbreiding alleen als uitgang kan gebruiken.
terwijl ik eigelijk meer digitale ingangen wilde creëren.
Dus mijn andere vraag is kan ik jouw programma naast de "basis" digitale ingangen
ook dmv een ic2 extra ingangen creëren (ik heb er nu 4 (sateje shield))
Als het wel kan hoe doe ik dat dan want ik zie geen extra pins als ik hard ware wil aansluiten
bijv. een extra pulsmeter.
Hallo CaptChaos,quote:CaptChaos schreef op maandag 10 april 2017 @ 17:46:
Hoi Willie,
Naar aanleiding van je bericht over de pins van de MCP23017
heb ik nog de volgende vragen.
de MCP23017 heeft 2 keer 8 i/o uitgangen, echter in het DAL pin menu zie ik er maar 8
net als bij de PCF 8574
Is dit een programma probleem ??
Verder lijkt het erop, dat ik deze uitbreiding alleen als uitgang kan gebruiken.
terwijl ik eigelijk meer digitale ingangen wilde creëren.
Dus mijn andere vraag is kan ik jouw programma naast de "basis" digitale ingangen
ook dmv een ic2 extra ingangen creëren (ik heb er nu 4 (sateje shield))
Als het wel kan hoe doe ik dat dan want ik zie geen extra pins als ik hard ware wil aansluiten
bijv. een extra pulsmeter.
Beetje late reactie vanwege een niet gepland maar tijdrovend projectje.
De MCP heeft vele mogelijkheden waarvan maar een klein deel geprogrammeerd is. Waar jij de MCP voor wil gebruiken is de IC niet geschikt.
Wat wel kan is de A0 tm A5 zogenoemde analoge ingangen gebruiken, zijn gelijk aan de Dpins met als toevoeging dat je een Analoge to Digitale Converter eraan kan hangen (spanning op de ingang omrekenen naar een waarde tussen 0 en 1023). In werkelijkheid heeft de Netduino dus 20 digitale ingangen.
Ik hoop dat dat je verder helpt.
SDO naar GND geeft hex I2C address van 0x76
SDO naar Vcc geeft hex I2C address van 0x77
zo kan je in DaL 2 sensoren aansluiten, immers 2 HEX adressen.
bedoeld zoals deze:
http://www.ebay.com/sch/i...TRS0&_nkw=bmp280&_sacat=0
zoals beschreven https://www.bosch-sensort...ducts/all_products/bmp280
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
| 'this program code is ported from bosch bmp280 pdf and parts of adafruits industries examples. ' ' Barometric Pressure, altitude and temperature sensor ' 'rewritten in Visual Basic by Gé Brander & Willie Wortel. 'thanks to all the programmers who contribute to this project. Imports System Imports Microsoft.SPOT Public Class BoschBPM280 Inherits I2C.MultiI2C Private Enum BMP280 As Byte BMP280_REGISTER_DIG_T1 = &H88 BMP280_REGISTER_DIG_T2 = &H8A BMP280_REGISTER_DIG_T3 = &H8C BMP280_REGISTER_DIG_P1 = &H8E BMP280_REGISTER_DIG_P2 = &H90 BMP280_REGISTER_DIG_P3 = &H92 BMP280_REGISTER_DIG_P4 = &H94 BMP280_REGISTER_DIG_P5 = &H96 BMP280_REGISTER_DIG_P6 = &H98 BMP280_REGISTER_DIG_P7 = &H9A BMP280_REGISTER_DIG_P8 = &H9C BMP280_REGISTER_DIG_P9 = &H9E BMP280_REGISTER_CHIPID = &HD0 BMP280_REGISTER_VERSION = &HD1 BMP280_REGISTER_SOFTRESET = &HE0 BMP280_REGISTER_CAL26 = &HE1 ' R calibration stored in 0xE1-0xF0 BMP280_REGISTER_CONTROL = &HF4 BMP280_REGISTER_CONFIG = &HF5 BMP280_REGISTER_PRESSUREDATA = &HF7 BMP280_REGISTER_TEMPDATA = &HFA End Enum '========================================================================= ' CALIBRATION DATA ' ----------------------------------------------------------------------- Private Structure _bmp280_calib_data Dim dig_T1 As UShort Dim dig_T2 As Short Dim dig_T3 As Short Dim dig_P1 As UShort Dim dig_P2 As Short Dim dig_P3 As Short Dim dig_P4 As Short Dim dig_P5 As Short Dim dig_P6 As Short Dim dig_P7 As Short Dim dig_P8 As Short Dim dig_P9 As Short Dim dig_H1 As Byte Dim dig_H2 As Short Dim dig_H3 As Byte Dim dig_H4 As Short Dim dig_H5 As Short Dim dig_H6 As SByte End Structure Private _bmp280_calib As _bmp280_calib_data Private _t_fine As Long Private _temperature As Double Private _airPressure As Double Private _ID As String Private _interval As Integer Private _pinOnWrite As strcPinOnWrite Private _TimeFilterID As String Private _CompareFilterID As String Private _BMP280thread As Thread = Nothing Public Sub New(ByVal ID As String, ByVal BMPConfig As I2CDevice.Configuration, ByVal interval As Integer, ByVal pinOnWrite As strcPinOnWrite, ByVal TimeFilterID As String, ByVal CompareFilterID As String) MyBase.New(BMPConfig) _ID = ID _interval = interval _pinOnWrite = pinOnWrite _TimeFilterID = TimeFilterID _CompareFilterID = CompareFilterID Const BMP280_CHIPID As Byte = &H58 Try If (read8(BMP280.BMP280_REGISTER_CHIPID) <> BMP280_CHIPID) Then Throw New InvalidOperationException("Bosch BMP280 chipID is not correct") End If _BMP280thread = New Thread(AddressOf BMP280thread) Catch ex As Exception exeptions.storeExeption("ONLY Bosch BMP280 sensor is supported", ex) Exit Sub End Try readCoefficients() MyBase.WriteRegister(BMP280.BMP280_REGISTER_CONTROL, &H3F) End Sub Public Sub start() If _BMP280thread IsNot Nothing Then _BMP280thread.Start() End If End Sub Private Sub BMP280thread() Do While True Try If functions.TimeFilter(Me._TimeFilterID) AndAlso functions.CompareBuilderResult(Me._CompareFilterID) Then functions.WritePin(Me._pinOnWrite, True) readTemperature() readPressure() Thread.Sleep(40) functions.WritePin(Me._pinOnWrite, False) Thread.Sleep(_interval * 1000) End If Catch ex As Exception Thread.Sleep(10000) End Try Loop End Sub Private Sub readCoefficients() _bmp280_calib.dig_T1 = read16_LE(BMP280.BMP280_REGISTER_DIG_T1) _bmp280_calib.dig_T2 = readS16_LE(BMP280.BMP280_REGISTER_DIG_T2) _bmp280_calib.dig_T3 = readS16_LE(BMP280.BMP280_REGISTER_DIG_T3) _bmp280_calib.dig_P1 = read16_LE(BMP280.BMP280_REGISTER_DIG_P1) _bmp280_calib.dig_P2 = readS16_LE(BMP280.BMP280_REGISTER_DIG_P2) _bmp280_calib.dig_P3 = readS16_LE(BMP280.BMP280_REGISTER_DIG_P3) _bmp280_calib.dig_P4 = readS16_LE(BMP280.BMP280_REGISTER_DIG_P4) _bmp280_calib.dig_P5 = readS16_LE(BMP280.BMP280_REGISTER_DIG_P5) _bmp280_calib.dig_P6 = readS16_LE(BMP280.BMP280_REGISTER_DIG_P6) _bmp280_calib.dig_P7 = readS16_LE(BMP280.BMP280_REGISTER_DIG_P7) _bmp280_calib.dig_P8 = readS16_LE(BMP280.BMP280_REGISTER_DIG_P8) _bmp280_calib.dig_P9 = readS16_LE(BMP280.BMP280_REGISTER_DIG_P9) End Sub Private Sub readPressure() Dim var1 As Long Dim var2 As Long Dim p As Long Dim adc_P As Integer = CInt(read24(BMP280.BMP280_REGISTER_PRESSUREDATA)) adc_P = bitShift.rInt(adc_P, 4) var1 = CLng(_t_fine) - 128000 var2 = var1 * var1 * CLng(_bmp280_calib.dig_P6) var2 = var2 + bitShift.lLng((var1 * CLng(_bmp280_calib.dig_P5)), 17) var2 = var2 + bitShift.lLng(CLng(_bmp280_calib.dig_P4), 35) var1 = bitShift.rLng((var1 * var1 * CLng(_bmp280_calib.dig_P3)), 8) + bitShift.lLng((var1 * CLng(_bmp280_calib.dig_P2)), 12) var1 = bitShift.rLng(((bitShift.lLng(CLng(1), 47) + var1)) * CLng(_bmp280_calib.dig_P1), 33) If var1 = 0 Then ' avoid exception caused by division by zero Exit Sub End If p = 1048576 - adc_P p = CLng(((bitShift.lLng(p, 31) - var2) * 3125) / var1) var1 = bitShift.rLng((CLng(_bmp280_calib.dig_P9) * (bitShift.rLng(p, 13)) * (bitShift.rLng(p, 13))), 25) var2 = bitShift.rLng((CLng(_bmp280_calib.dig_P8) * p), 19) p = bitShift.rLng((p + var1 + var2), 8) + bitShift.lLng(CLng(_bmp280_calib.dig_P7), 4) _airPressure = p / 25600 End Sub Private Sub readTemperature() Dim var1 As Integer Dim var2 As Integer Dim adc_T As Integer = CInt(read24(BMP280.BMP280_REGISTER_TEMPDATA)) adc_T = bitShift.rInt(adc_T, 4) var1 = bitShift.rInt(((((bitShift.rInt(adc_T, 3)) - (bitShift.lInt(CInt(_bmp280_calib.dig_T1), 1)))) * CInt(_bmp280_calib.dig_T2)), 11) var2 = bitShift.rInt(((bitShift.rInt((((bitShift.rInt(adc_T, 4)) - CInt(_bmp280_calib.dig_T1)) * ((bitShift.rInt(adc_T, 4)) - CInt(_bmp280_calib.dig_T1))), 12)) * CInt(_bmp280_calib.dig_T3)), 14) _t_fine = var1 + var2 _temperature = bitShift.rLng((_t_fine * 5 + 128), 8) / 100 End Sub Private Function read16_LE(reg As Byte) As UShort Dim temp As UShort = read16(reg) Return bitShift.rUshort(temp, 8) Or bitShift.lUshort(temp, 8) End Function Private Function readS16(reg As Byte) As Short Return CShort(read16(reg)) End Function Private Function readS16_LE(reg As Byte) As Short Return CShort(read16_LE(reg)) End Function Public ReadOnly Property Temperature() As Double Get Return _temperature End Get End Property Public ReadOnly Property airPressure() As Double Get Return _airPressure End Get End Property Public ReadOnly Property Altitude() As Double Get 'neutral pressure at sealevel, must be adjusted to current pressure or will not return correct data. Const cnstseaLevelhPa = 1013 Return (44330 * (1.0 - System.Math.Pow(_airPressure / cnstseaLevelhPa, 0.1903))) End Get End Property End Class |
Je kan dus heel precies de temperatuur, luchtdruk en hoogte meten.
dit klopt ongeveer, ik woon op -1mtr NAP

Je kan nu een extreem nauwkeurig weerstation bouwen.
NOOT: ook hier moeten 4k7 pullup weerstanden worden gebruikt ! op de I2C SD en SC data draden.
Ik zal dit intekenen in het diagram.
met NOW:
en consistentie in het gehele programma, zo ook in de dashboard designer:
LiveData:
check met actuele data: http://luchtdruk.com/luchtdruk-in-nederland.html

Willie Wortel wijzigde deze reactie 09-05-2017 14:38 (174%)
Helaas lukt het niet. Dit scherm (dat volgens de leverancier adres 0x20 of 0x38 heeft), geeft ook alleen maar 2 witte balken (rij 0 en 2)
Ik geef het op

Uiteraard houd ik me aanbevolen als iemand dezelfde problemen ervaren heeft en een oplossing heeft gevonden!
En heb je ook de 2 4k7 pullup weerstanden op de sd en sc gebruikt.? Het kan geen kwaad als er al op aanwezig zijn zoals je al schreef.quote:
Hoe lang is de kabel van display naar netduino?, je kunt wel 5 volt meten bij de shield van Sateetje maar komt er ook 5 volt daadwerkelijk bij het display (kabelweerstand, kabelbreuk enz?)quote:Cranberry schreef op donderdag 6 april 2017 @ 18:59:
Zojuist even met de multimeter gemeten.
De SDA en SCL pinnetjes (shield Sateetje) zijn hoog (5V). Tevens wordt het display gevoed met 5V.
Spanning is dus OK, zodat ik dat als oorzaak hiermee ook min of meer uit sluit.
Omnik 3.0 15 Eging panelen 195wp
Ik weet niet hoe en waar de versie geplaatst gaat worden want codeplex, de website waar de versies geplaatst zijn, gaat eind dit jaar op zwart.
Dit is ook de laatste versie van mijn hand, ik ga me richten op een volgend project.
Allemaal veel plezier ermee.
https://we.tl/7Sqi9FkQGN

In berichten een paar maanden geleden meende ik op te maken dat er met de gedachte werd gespeeld om de SW te 'porten' naar Linux/RPi. Is dat iets wat mss nog gaat komen?
Het Netduino-platform is redelijk dood naar mijn mening.
Hier is de laatste versie 4.2, was nog niet klaar...quote:Aegle schreef op dinsdag 9 mei 2017 @ 13:59:
Top weer Willie. Ik zie het met belangstelling tegemoet
.

https://we.tl/7Sqi9FkQGN
Ja, ik ben bezig met DaL te porten naar de Raspberry, maar dat is veel werk hoor. Gé heeft een rasp ter beschikking gesteld, zo rijk ben ik ook weer niet. Maar wilde eerst nog de Netduino code afmaken door de luchtvochtigheid en luchtdruk sensoren erin te programmeren.quote:Cranberry schreef op dinsdag 9 mei 2017 @ 12:45:
Dank voor de vele uren die je in dit project hebt zitten! Ik ga, zodra de versie is te downloaden, 'm zeker installeren.
In berichten een paar maanden geleden meende ik op te maken dat er met de gedachte werd gespeeld om de SW te 'porten' naar Linux/RPi. Is dat iets wat mss nog gaat komen?
Het Netduino-platform is redelijk dood naar mijn mening.
Ik sluit weer aan als DAL op een rasp kan draaien.


Als je met 4.2 een NetduinoConfig bestand naar de Netduino hebt verzonden zal dit in de nieuwe versie 99,999% van de gevallen goed gaan.
Een goede controle is om het bestand te downloaden met je browser, dit kan door:
IP:Port/download:/sd/FILENAME
http://192.168.1.168:65432/download:/sd/netduinoconfig.ini
Het bestand wordt gedownload en geopend.
-------------------
een bestand verwijderen gaat identiek:
IP:Port/delete:/sd/FILENAME
http://192.168.1.168:65432/delete:/sd/netduinoconfig.ini
--------------------
TIP 120:
Mijn proefstation:
als je met seven segments modules werk en je wilt er meerdere in cascade aansluiten, zorg dan per module voor een afzonderlijke 5v en lus deze 5v niet door naar een volgend module. Doe je dit wel dan zal de module minder fel weergeven.
De SPI van de seven segments is vernieuwd en gefinetuned in versie 4.2
Willie Wortel wijzigde deze reactie 10-05-2017 15:24 (46%)
De Raspberry.......... waarom er zoveel euforie is rond een Raspberry weet ik niet maar voor data logging is deze niet de beste keuze. De Netduino is op nagenoeg alle punten superieur aan de Raspberry.quote:klump4u schreef op dinsdag 9 mei 2017 @ 15:25:
Succes met de Raspberry.
Bijvoorbeeld de temperatuur sensor ds18b20 die op een Netduino met 256 stuks tegelijk kan worden aangesloten op een dPin. Bij een raspberry 3 met IOT 10, gaat dit niet. Daar heb je een DS2482-100 voor nodig als interface over I2C.
Maxim DALLAS DS2482-100 :
op ebay: http://www.ebay.com/sch/i...&_nkw=ds2482-100&_sacat=0
je hebt daarvoor ook een breakout nodig, bijvoorbeeld deze, per 50 tekoop voor 2,50 euro (kan je een beetje klooien)
op ebay: http://www.ebay.com/itm/5...2e3358:g:yQEAAOSwHptZAVia
of
http://www.ebay.com/sch/i...P%2FSOIC%2FSOP8+&_sacat=0
voor newbies, hier meest voorkomende breakouts voor ICs"
correspondeert weer met het diagram in de maxim pdf:
SO 8 pins, rechtsboven.
Er is door Rinsen een hele mooie module voor geschreven, maar toch...
https://github.com/Rinsen/OneWire
Is micro solderen niks voor je dan kan je een breakout board gebruiken bv deze:
https://www.artekit.eu/pr...ut-boards/ak-ds2482s-100/
schema met 2 sensoren maar kunnen er natuurlijk meerdere zijn, allemaal aangesloten op IO (input output):
I2C address : 0011000 = AD0 gnd, AD1 gnd HEX 0x18
I2C address : 0011001 = AD0 gnd, AD1 Vcc HEX 0x19
I2C address : 0011010 = AD0 Vcc, AD1 gnd HEX 0x1A
I2C address : 0011011 = AD0 Vcc, AD1 Vcc HEX 0x1B
De Raspberry heeft maar 1 comm port ontbreekt de ADC (analoge ->digitale converter) en PWM voor de besturing van servo's kan je op dit ogenblik schudden, is niet geïmplementeerd.
Willie Wortel wijzigde deze reactie 28-05-2017 20:28 (62%)
Je bent dus met windows 10 bezig op de raspberry?quote:Willie Wortel schreef op vrijdag 12 mei 2017 @ 09:06:
[...]
De Raspberry.......... waarom er zoveel euforie is rond een Raspberry weet ik niet maar voor data logging is deze niet de beste keuze. De Netduino is op nagenoeg alle punten superieur aan de Raspberry.
Bijvoorbeeld de temperatuur sensor ds18b20 die op een Netduino met 256 stuks tegelijk kan worden aangesloten op een dPin. Bij een raspberry 3 met IOT 10, gaat dit niet. Daar heb je een DS2482-100 voor nodig als interface over I2C.
Maxim DALLAS DS2482-100 :
[afbeelding]
op ebay: http://www.ebay.com/sch/i...ds2482+raspberry&_sacat=0
Er is door Rinsen een hele mooie module voor geschreven, maar toch...
https://github.com/Rinsen/OneWire
Is micro solderen niks voor je dan kan je een breakout board gebruiken bv deze:
https://www.artekit.eu/pr...ut-boards/ak-ds2482s-100/
schema met 2 sensoren maar kunnen er natuurlijk meerdere zijn, allemaal aangesloten op IO (input output):
[afbeelding]
I2C address : 00110000 = AD0 gnd, AD1 gnd HEX 30
I2C address : 00110010 = AD0 gnd, AD1 Vcc HEX 32
I2C address : 00110100 = AD0 Vcc, AD1 gnd HEX 34
I2C address : 00110110 = AD0 Vcc, AD1 Vcc HEX 36
De Raspberry heeft maar 1 comm port, gedeelde SPI en voor het gemakontbreekt de ADC (analoge pins).
Is dus veel uitzoeken wat werkt qua sensoren, in de Linux distro,s zijn er legio voorbeelden en oplossingen maar windows heb ik me nog niet in verdiept, ik heb hier naast de netduino ook een raspberry2 draaien met domoticz en 2 adapters die mijn omvormers uitlezen via Python. ik moet wel zeggen dat loopt lekker en je kunt er gewoon op verder klooien terwijl de raspberry gewoon doorloopt.
Ook leuk zijn de ESP8266 bordjes die je weer aan domoticz kunt koppelen zonder kabels te hoeven trekken.
Ik wens je veel succes Willie en ik houd het met belangstelling in de gaten want DAL is toch wel uniek.
Ja DaL voor de Raspberry .... onder Windows 10 IOT...... (je maakt wat mee) ben ik mee bezig en al best ver mee. Er moet een nieuw draadje geopend worden zodat alle schema's, uitleg etc voorhanden zijn. De eerste versie, ....... ik moet eerst wachten tot ik de bestelde artikelen binnen heb zodat ik kan testen.quote:klump4u schreef op vrijdag 12 mei 2017 @ 19:56:
[...]
Je bent dus met windows 10 bezig op de raspberry?
Laden van en wegschijven direct op een USB geheugen, extern device.
Iedere keer wat met Microsoft, nu heb ik weer dit op mijn computer:
https://developercommunit...-package-core-clr-e0.html
Ik programmeer al vanaf 1979 maar het is één jungle geworden. Kan toch niet iedere keer uit gaan vogelen wat er nu weer veranderd is. Bij iedere maandelijkse update is er wel wat loos. Denk dat ik de boel maar aan de willigen hang.
VS 2017 community verwijderen, daarna opnieuw installeren lost het op. Wat een amateurs,...pppffff.
Willie Wortel wijzigde deze reactie 17-05-2017 09:46 (12%)
Maar geef de moed niet op Willie😉
[raspberry3]quote:
Ik geef de moed niet op hoor.
Hier de programma code overgezet van Netduino naar Raspberry voor de sainsmart display. Rechts zie je de aangesloten raspberry 3 met een groot display op zijn kop liggen.
We proberen alles zo eenvoudig mogelijk te maken.
Alle timings zijn opnieuw uitgerekend, de Netduino heeft een andere verwerking snelheid.
Willie Wortel wijzigde deze reactie 19-05-2017 21:09 (6%)
De Bosch BME280 temperatuur, luchtdruk en luchtvochtigheid sensor wordt in de Raspberry geprogrammeerd, in plaats van de DHT22. De Bosch is super accuraat moet ik zeggen. Zo heb je met 1 sensor een compleet setje.
Ik zal deze sensor (als ik tijd heb) in de Neduino programma code ook nog meenemen.
https://www.bosch-sensort...ducts/all_products/bme280
InDepth waarom?
De raspberry 3 Windows 10 IoT kent geen gebufferde interrups (Queue) met de GPIO pins methode "ValueChanged" en geeft ook geen time argument mee waardoor je niet weet wanneer de "ValueChanged" is getriggerd. Hierdoor wordt het programmeren in C# of VB van sensoren als de DHT22 onmogelijk. De Netduino met netMF heeft dit alles wel aan boord.
Willie Wortel wijzigde deze reactie 26-05-2017 21:50 (42%)
De oneWire DS18B20 temperatuur sensor in combinatie met een DS2482-100 I2C zit in de DaL Raspberry software geprogrammeerd.
software aanroep:
Visual Basic:
1
2
3
4
5
6
7
8
| Dim devices = oneWireDeviceHandler.OneWireDevices.GetDevices(Of Temperature.DS18B20.DS2482_100.IoT.OneWire.DS18B20)() For Each oneWireItem In devices Debug.WriteLine(oneWireItem.GetTemperature()) Debug.WriteLine(oneWireItem.OneWireAddressString) Next |
De software wordt uiteraard bestuurd met de opstartstring uit de OPTIONS pagina en werkt identiek als de Netduino.
De library van de arduino is overgezet en ook delen van Rinsen (die ook de arduino lib heeft overgezet)
https://github.com/cyberg...e/blob/master/OneWire.cpp
https://github.com/Rinsen/OneWire
Willie Wortel wijzigde deze reactie 30-05-2017 13:27 (4%)
[Raspberry 3]quote:klump4u schreef op dinsdag 30 mei 2017 @ 14:06:
Je maakt het wel spannend Willie.
Ik ga maar eens sparen voor een pi3
Duurt nog wel zo een 2 maanden voordat de eerste versie voor de Raspberry 3 klaar is.
Kan wel tussentijds, indien gewenst, en testversie online zetten.
De windows 10 IoT is een jong besturingssysteem waardoor nog niet alle drivers voor sensors etc beschikbaar zijn zoals PWM voor de servo en OneWire voor de GPIO pins. Er moesten dus workarounds gehatseflatst worden.
Ik heb van de week de 2482-100 bridge voor de ds18b20 over I2C op een SO8 micro breakout boardje gesoldeerd, ondanks dat het miniatuur is en ik 3 brillen tegelijk moest gebruiken ging dat voorspoedig.
Volgende week eens testen hoe al dat I2C geweld met elkaar werkt, zoals de ds18b20 x5 + sainsmart display + luchtdruk sensor. Blijft het soepel lopen?, zit een en ander met elkaar in de weg? etc?
De slimme meter uitlezen icm de UART RX op de Raspberry werkt overigens uitstekend.
Voor DaL voor de Raspberry heb je Visual Studio (Community) 2017 nodig op je computer.
https://www.visualstudio.com/downloads/
DaL voor de Raspberry is trouwens een idee van Gé Brander en de hardware is ook door hem beschikbaar gesteld.
Willie Wortel wijzigde deze reactie 31-05-2017 14:29 (10%)
Wat wil je precies loggen Junr? kan je wat meer vertellen? Wat heb je aan hardware?quote:junr schreef op vrijdag 2 juni 2017 @ 17:52:
Visual studio is geïnstalleerd !
Dan kan ik voor je, over een goede week, een setje maken.
Ik wil de p1 loggen en de SO meter van de zonnepanelen kunnen uitlezen.
Hardware:
Rpi2
p1 usb (smartmeterdashboard)
sainsmart display
DS18B20 met roestvrijstalen kop en kabel



junr wijzigde deze reactie 03-06-2017 08:44 (3%)
De hardware die MS hier noemt, zou dan toch geschikt moeten zijn? Uiteraard op voorwaarde dat de benodigde interfaces aanwezig zijn.
Of zit ik er helemaal naast?
@Cranberry ik vermoed dat de Windows 10 IoT ook op een Raspberry 2. draait, de DaL software is op win 10 iot gebaseerd. Als het er niet op werkt weet ik het ook niet, ik heb geen Raspberry 2.
@junr De P1 loggen kan, de display werkt ook, voor de ds18b20 heb je de eerder beschreven hardware nodig maar dat is maar een paar euro. ADD: de pulsemeter werkt ook, sterker nog, haast alle oude sensoren werken.
Wat je verder nodig hebt is een extern USB stick geheugen (hoe noem je zo een ding), daar gaat de opstart string op en wordt de data naar toe gelogd. In welk slot de USB zit maakt niet uit.
De software zal kijken of er een USB aanwezig is met het volume naam "DAL" of "DaL_startupString.txt"
Visual Basic:
1
2
3
4
5
6
7
| Public Const DEFAULT_USB_VOLUME_NAME As String = "DaL" Public Const CONFIGURATION_FILE As String = "DaL_startupString.txt" Public Const MEMORY_FILE As String = "DaL_Memoryfile.txt" Public Const DEFINITIONS_HISTORY As String = "DaL_Definitions.txt" |
Is er geen USB of geen DAL volumenaam of geen opstart string aanwezig dan wordt de USB lezen schrijven uitgezet.
waarom extentie .txt ? omdat alle extenties in het pakket manifest moet worden aangemeld en de txt bestandjes kunnen met 1 klik worden geopend met wordpad.
We wachten rustig op de test versie ;-)
Voor het deployen van DaL moeten een paar instellingen worden veranderd aan het programma.
Selecteer TAB Project/DaL properties:
Tab DEBUG.
Als de instellingen niet zo staan selecteer dan target: REMOTE MACHINE en vul het IP adres in van je Raspberry.
Het IP adres haal je uit het IoT dashboard.
Het IP adres kan je veranderen door rechtermuis en optie OPen in Device Portal.
Je kan ook in je router een static adres aanmaken icm het MAC adres van je raspberry. (dit heb ik gedaan)
Het invoeren van de IP adres etc invoer in de Dal Options.html pagina is komen te vervallen. Hiervoor is het Windows 10 IoT dashboard in de plaats gekomen.
reset van de raspberry is ook ondersteund, dit was wel even uitvogelen how to.
Visual Basic:
1
| Windows.System.ShutdownManager.BeginShutdown(Windows.System.ShutdownKind.Restart, TimeSpan.FromSeconds(10)) |
EN NU HET BELANGRIJKSTE:
Ga in het begin niet alles tegelijk aanzetten in de Options pagina. Begin sensor voor sensor. Zo kan je heel snel zien of er wat fout gaat en waar het fout gaat. Als alles tegelijk is gekozen dan is het zoeken naar een naald in een hooiberg.
Dus eerst de P1, testen. Dan x erbij, testen. etc....
Het overzenden van de opstart String naar de Raspberry werkt goed maar mijn voorkeur in het begin is hardcoded.
Willie Wortel wijzigde deze reactie 05-06-2017 10:26 (15%)
De raspberry kent maar 1 UART, deze staat dus ook gelinkt met de P1
Later kunnen er externe UARTS toegevoegd worden.
De GPIO (General Purpose Input Output) die geselecteerd kunnen worden in de PulseMeters:
zijn gelijk aan deze:
Dus GPIO 25 = dPin 25 De UART0 = is de UART RX pin op de Raspberry
de P1 routine is totaal nieuw, hier een stukje:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| Private Async Sub readOutP1port() Dim aqs = SerialDevice.GetDeviceSelector(DaL.P1config.commPort) Dim allCOMMDevices As DeviceInformationCollection = Await DeviceInformation.FindAllAsync(aqs) _serialDevice = Await SerialDevice.FromIdAsync(allCOMMDevices(0).Id) _serialDevice.ReadTimeout = TimeSpan.FromMilliseconds(1000) _serialDevice.BaudRate = DaL.P1config.Baudrate _serialDevice.Parity = DirectCast(DaL.P1config.parity, SerialParity) _serialDevice.StopBits = DirectCast(DaL.P1config.stopBits, SerialStopBitCount) _serialDevice.DataBits = CUShort(DaL.P1config.dataBits) _serialDevice.Handshake = SerialHandshake.None Dim dataReaderObject = New DataReader(_serialDevice.InputStream) With { .InputStreamOptions = InputStreamOptions.None } Do While True |
Het loggen naar de data providers UbiDots, PVOutput, ThingSpeak, GroveStreams, MinderGas en naar de sd kaart is vernieuwd en output is gelijk gebleven. De sdCard is uiteraard de USB stick geheugen uit mijn vorige uitleg.
En last but not least, er is een nieuw module GlobalFeatures:
Willie Wortel wijzigde deze reactie 05-06-2017 10:30 (58%)