Eens met de eerdere opmerkingen, maar dat een communicatieprobleem (zonder middeling etc. etc.) veel lagere waardes zou geven lijkt onwaarschijnlijk.
Het doet eerder vermoeden dat het toegepaste window niet mee-gekalibreerd is oid.
Mannen,
Mijn kennis is niet toereikend, maar ik wil graag bij-leren.
Hoe kan ik de sensor met 4 draden (+/ - 5V en SDA/SCL) naar RS485 ombouwen?
En leest de Arduino Uno dit dan ook?
@Aart: I2c werkt zonder enige serieuze databescherming. Ik heb echt wel eens vreemde waarden over de lijntjes zien komen..
Ik heb net de datasheet opgehaald en zie nu pas dat die sensor uitgelegd is voor I2c. Om dat om te katten naar RS485 gaat een heel lastig verhaal worden.
Je kunt beter kant en klare hardfware hiervoor kopen
https://coptonix.com/en/products/rs485-i2c-adapter-master/
Ik heb er geen ervaring mee maar wie weet ...
Wel aan de prijs. € 85 wordt ze voor aangeboden.
Bij de chinees worden Luxmeters met RS485 aangeboden. Misschien handiger
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Op 10 maart 2023 15:42:02 schreef rudyman:
..Hoe kan ik de sensor met 4 draden (+/ - 5V en SDA/SCL) naar RS485 ombouwen?
Dat kan niet. De sensor heeft een i2c interface, en geen 485. Dat hebben sensoren nooit (althans, ik ken er geen). Je moet dus een micro dicht bij de sensor hebben (of andersom mag ook, hi). Stel je moet toch over grote afstanden uitlezen, dan kun je een klein micro'tje bij de sensor hebben, en dat setje via een geschikte interface verbinden met een 2e micro (de host, RPi bv).
In jouw geval lijkt mij het simpelst om de sensor naar binnen te halen, samen met de ESP in een kastje voor het raam.
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi,
Ik ben nog bij een introductie van onder meer i2c geweest, men had toen diverse apparatuur met getwiste paartjes aangesloten, de paartjes hingen gewoon los tussen de apparaten..
8 meter is wel veel ja, maar als je mijn tips volgt heb je kans dat je het toch nog goed werkend krijgt.
Oja het is natuurlijk wel en, en, en, dus paartjes twisten, ontkoppel condensator plaatsen, i2c snelheid verlagen en de pullup weerstanden naar zeg 2k2 brengen.
Probeerse!
Oja je hebt een licht sensor, hou er rekening mee dat de lichtsterkte heel variabel is, bedenk een manier die stabiel is, b.v. een lampje of led in een doosje.
En ga dan kijken hoeveel de kabellengte meespeeld in de aangegeven waarde, als het goed gaat, maakt de kabellengte niets uit.
En ja RS485 als bus kan dus ook, maar ik denk dat de TS daar geen sensor voor heeft.
Groet,
Bram
ThaTweety
A little knowledge is a dangerous thing.
Met een I2C-bus extender zoals de P82B715 aan weerszijden van de lange kabel kunnen volgens de datasheet 10-tallen meters overbrugd worden:
- Drive I2C-bus signals over long cables to approximately 50 meters or 3000 pF
Het kan natuurlijk ook een voeding issue zijn omdat de spanning te ver inzakt. Dan kun je ook vreemde waarden terugkrijgen. Heb je de spanning bij de sensor al gemeten?
Mannen,
€85
is geen optie en een kastje voor het raam lukt ook niet.
Het is een hobby project waarmee ik via relais een screen en 's avonds mijn buitenverlichting wil aansturen
@Bram: goede tips. Ik ga dat proberen en kom er nog op terug
)
Als dat niet lukt moet ik maar naar een LDR overstappen...
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
ATtiny lokaal met de sensor laten communiceren. Communicatie tussen ATtiny en Arduino/ESP via RS485. 2 draden voor power en 2 getwiste draden voor RS485. Met een stuk ethernet kabel heb je al draden over.
Andere mogelijkheid, maar wat meer kennis vereist, 2 ESP en communicatie via MQTT. Vraagt dan wel weer een MQTT server. Heb je een NAS, dan kan dit met Mosquitto worden opgelost.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ja, voeding.... Het is raar dat je "te lage waardes" krijgt: I2C is een digitaal protocol, dus als je kabel te lang is verwacht je communicatie problelemn zoals: Ding reageert niet op z'n adres. Maar niet dat ie structureel te lage waardes rapporteert.
Dus: meet na 8m de voedingsspanning eens na, en kijk of je consistente meetresultaten krijgt of dat er bitfouten optreden.
ik zeg gewoon proberen. Lukt het niet kun je altijd nog andere stappen ondernemen. Ook al is het er niet voor gemaakt ik heb het vaka zat toch zien werken. Je kan een utp kabel nemen die zijn al getwist. kun je dubbele adres pakken voor power en gnd en 1 paar voor scl en sda.
Ik weet niet in wat voor behuizing de sensor zit of komt. Ik neme aan dat je die zelf in een kastje frot. Gezien ik niet verwacht dat een voor buiten geschikte sensor een i2c interface zou hebben.
Indien dat zo is, dan kan daar met gemak een micro arduino printje bij en een rs485 line drivertje zou ik zeggen. dan laatje de arduino die je bij de sensor monteerd gewoon via i2c de sensor uitlzen en dat spuigt hij via uart uit. Gooi dat in een max485 en klaar (aan de buiten unit kant dan)
aan de binnen unit kant doe je ook ene max485 en die sluit je dan weer op uart RX van je arduino aan.
easy as that
als je nu gewoon een arduino nano aan die sensor hangt op de zolder, en beneden een andere arduino, laat die 2 arduinos dan maar een eigen protocol praten.
een extra nano kost je dan 1,5€ ofzo
aan lage snelheid kan je ze eventueel nog met een transistor een 5V of 12V lijn schakelen. daar kan je dan een paar 100meter ver mee
[Bericht gewijzigd door fcapri op (26%)]
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Ik zou die sensor met een wat hogere spanning gaan voeden, en dan een 5V regelaar bij de sensor zetten; de lage meetwaardes suggereren wellicht dat de voedingsspanning inzakt. Bij I2C mag de totale pull-up weerstand 1k2 zijn per lijn, en dan zou ik die verdelen, dus 2k4 aan beide einden van de kabel.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Met een I2C-bus extender zoals de P82B715 aan weerszijden van de lange kabel kunnen volgens de datasheet 10-tallen meters overbrugd worden:
Goed aangepast hebben ze er zelfs een mijl mee gehaald... https://www.abcelectronique.com/forum/attachment.php?attachmentid=2984…
De samenhang tussen pull-up waardes, kabelcapaciteiten en transmissiesnelheid staat in i2c specs...
De lagere waardes die je krijgt hebben niets met i2c te doen: da's digitaal.
Kan hooguit komen doordat de chip gevoelig is voor spanningsverloop en daardoor een andere waarde meet.
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Op 10 maart 2023 16:02:15 schreef rudyman:
..Het is een hobby project waarmee ik via relais een screen en 's avonds mijn buitenverlichting wil aansturen...
Dat klinkt mij als minimaal 3 micro's. ESP12 zou kunnen. Eentje bij de buitenverlichting, eentje bij het screen en eentje bij de lichtsensor. Communicatie tussen allen met MQTT.
Een enkele met 10-tallen meters draad naar de verschillende punten... onbetrouwbaar.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Een vaste draadverbinding met 1 micro is een stuk betrouwbaarder als 3 losse micro's die met elkaar moeten babbelen. Kans op problemen is vele malen groter.
(en het is duidelijk 'overkill'...)
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
En toch kunnen die 3 µC handiger zijn als draad voorzien. Een sensor op het dak, een display in de woonkamer en een lamp in de tuin. Begin maar draad te trekken. Koper is ook niet goedkoop.
Via MQTT moeten ze niet eens met elkaar babbelen. De sensor zet om de x tijd een waarde op de server.
Het display haalt de waarde op als het hem past. Op zijn beurt zet die een waarde op de MQTT server dat het licht aan of uit moet. De lichtcontroller haalt de waarde op zodra de server laat weten dat er 'nieuws' is. Die controller doet dan het licht aan of uit.
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi,
Ik heb het vermoede, omdat de TS aangeeft dat het zijn eerste Arduino project is, dat hij misschien niet weet wat MQTT is.
Voor het leren waarom het niet werkt met de 8-Meter draad zijn mijn tips dit op te lossen een goed begin zonder extra kosten een aardig leertraject.
De tweede oplossing zou de i2c extender zijn.
Nog mooier zou zijn, als de TS ook een redelijke scoop zou hebben,
dan zou hij naar de golfvorm van de twee data lijnen van de i2c bus kijken.
Groet,
Bram
benleentje
Golden Member
Als dat niet lukt moet ik maar naar een LDR overstappen...
Een LDR over 8 meter uitlezen is ook nog niet eens zo eenvoudig, de weerstand van de kabel zelf telt dan ook. Maar je zou vals kunnen spelen door eerst gewoon de weerstand van de aders in je kabel goed te meten en dan die weerstand als een vast gegeven mee te nemen in de berekening die de arduino moet doen.
In de industrie wordt nog veel gebruik gemaakt van een 20mA loop.Misschien is dit ook een overweging waard.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Op 11 maart 2023 02:20:14 schreef benleentje:
[...]Een LDR over 8 meter uitlezen is ook nog niet eens zo eenvoudig, de weerstand van de kabel zelf telt dan ook. Maar je zou vals kunnen spelen door eerst gewoon de weerstand van de aders in je kabel goed te meten en dan die weerstand als een vast gegeven mee te nemen in de berekening die de arduino moet doen.
Een ldr is in donker bijna oneindig. Daarbij valt die paar tiende ohm van een kabel totaal in het niet...
gradtje
Ja... en toen ?
Ik zou opten voor een ESP8266, kost niet veel, sensor en ESP op het dak of in ieder geval vlak bij de sensor, uitlezen en data via wifi versturen, of eventueel via ESP-now (waarbij dan een 2e ESP nodig is om te ontvangen)
Hij doet 't
@Bram: goede tip.
2x R en C is (in mijn geval) de oplossing.
Waarden wijken minimaal af en is voor dit project geen issue.
Nu alleen nog de UNO voor een NANO vervangen ivm plaatsgebrek in kastje.
Groet!
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi rudyman 
Mooi dat het nu werkt en bedankt voor het terugmelden, dan hebben andere CO gebruikers er misschien ook nog wat aan.
Groet,
Bram