X
Forum

Forum

1-Wire / Loxone / A...
 
Notifications
Clear all

1-Wire / Loxone / Arduino UDP

70 Posts
12 Users
4 Likes
16.5 K Views
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
Topic starter  

a ten prekopany kod mas v com spraveny? lebo aj tie 1wire zbernice co som skusal z netu , tak myslim kazda tento limit mala.

https://www.vodnici.net/wiki/loxone-1-wire-udp-gateway-alternativa-k-loxone-1-wire-extension/ tuto je ten limit tiez...

Alebo je to zavisle na library ktoru arduino pouziva?

 


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
Topic starter  

dnes som si to arduino a senzory na stole rozlozil znova.

Mam len 12 volnych senzorov takze som testoval len s nimi.

U tohto kodu http://jirin.deso.cz/1-Wire_UDP_Gateway/ mi to niekedy chytilo vsetkych 12 ale potom pri merani dostavam ERROR na random senzory.

Hned ako odpojim tie 2 extra a mam len 10 zapojenych sa to sprava normalne ani ERROR nehadze.

Najlepsie by sa k tomu asi vedel vyjadrit @jirin-sv lebo kod je vo viacerych zdrojakoch a jedno sa odvolava na druhe, teda moc som z toho nevylustil


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

Ahoj,

můžu se zeptat, jakou používáte LinkedList knihovnu?

Zkouším zprovoznit tu 1-wire UDP gateway a háže mi to chybu, myslím, že je to spojené s LinkedList knihovnou (dostávám nějaká warnings při kompilaci).

Co mám: Arduino Nano. Co se mi děje:

Senzor se detekuje, ale nemůžu z něj číst (error). Zajímavé je, že když na Arduino nahraji testovací skeč z https://playground.arduino.cc/Learning/OneWire, tak vše funguje. Když pak flashnu 1-wire UDP gateway, tak error nedostanu a v gateway se mi vyčítá poslední hodnota, co přečetla ta testovací skeč. Když odpojím a připojím Arduino (a samotný senzor) od napájení, tak zase dostávám error.

 

Ještě mám dobrou zprávu ohledně ethernet shieldů: funguje mi standardní ethernet shield i ENC28J60. Stačí jenom použít UIPEthernet knihovnu místo standardní Ethernet. U obou shieldů síť funguje (UDP pakety se odesílají), ale čtení senzoru ne.


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
Topic starter  

Verifying... In file included from sketch\OneWireReading.h:9:0, from C:\Arduino\OneWireExtension\OneWireExtension.ino:74: C:\Arduino\libraries\LinkedList/LinkedList.h: In instantiation of 'ListNode* LinkedList::getNode(int) [with T = OneWireBus*]': C:\Arduino\libraries\LinkedList/LinkedList.h:178:22: required from 'bool LinkedList::add(int, T) [with T = OneWireBus*]' C:\Arduino\OneWireExtension\OneWireExtension.ino:263:1: required from here C:\Arduino\libraries\LinkedList/LinkedList.h:160:9: warning: converting 'false' to pointer type 'ListNode<OneWireBus*>*' [-Wconversion-null] return false; ^ In file included from C:\Arduino\OneWireExtension\OneWireExtension.ino:72:0: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM\src/EEPROM.h:145:20: warning: 'EEPROM' defined but not used [-Wunused-variable] static EEPROMClass EEPROM; ^ Uploading... Sketch uses 25490 bytes (79%) of program storage space. Maximum is 32256 bytes. Global variables use 917 bytes (44%) of dynamic memory, leaving 1131 bytes for local variables. Maximum is 2048 bytes.

 

Takuto chybu dava aj mne...

Vcera som zapajal vsetky senzory a je to tiez casovo narocne.

ERROR mi davalo ked som mal na niektorom zly kontakt, ale vacsinou to nacita. Ked sa opakoval tak som vymenil cely senzor za iny.

Stava sa mi tiez ze ta to sekne pri nacitavani napr na 1x 4m kabli 5 senzorov a zapojil som dalsie 2 na 7m tak nenacitalo nic. Ako keby ten "DATA" signal neni dostatocne silny. Ked som dal na 2 zbernice / PINy tak to ide ok.

Skoda ze ten kod nema rozdelene zbernice v tom Serial vystupe, lebo ked zapojis 4 zbernice naraz cca 30 senzorov , tak neviem povedat co ide z coho a kde je problem.

 

Vyrobil som si takyto modul k tomu aby som to vedel prapajat "pohodlnejsie"

1wire resize

   
ReplyQuote
(@david-pr)
Honorable Member
Joined: 6 years ago
Posts: 643
 

Mas dobre zapojenej senzor? Pripadne zkus jeste napajeni, pokud Ti to nadetekuje, nemel by byt problem. Me to delal spatne zapojeni jednoho senzoru na vetvi, ale tady mi prestala fungovat cela vetev s DS18B20.

Ja mam pocit, ze ohledne ENC28J60 psal @msk, ze to sice funguje, ale dost nespolehlive.


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

Vše testuji na stole, podle návodu. Pull up odpor 4k7. Testováno s různými senzory DS18B20 a výsledky stejné. Vždy mám zapojený jen jeden senzor, vzdálenost senzoru od Arduina asi 10cm propojovací kabel.... Napájeno z USB.

Testovací skeč jede vždy bez problému. Nahraji skeč s UDP bránou a mám vždy chybu. Hardwaru se ani nedotknu, takže v zapojení senzoru a kontaktech určitě problém není. Asi půjdu cestou vkládání Serial.println do skeče a do knihoven, abych zjistil, kde je problém.


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
Topic starter  

IPcky ti normal chyti?


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

Statická IP adresa. UDP gateway hlásí chybu senzoru do sériového portu a ta samá chyba (1W <adresa> ERROR) se odesílá přes UDP, zachytím ji Wiresharkem.


   
ReplyQuote
(@david-pr)
Honorable Member
Joined: 6 years ago
Posts: 643
 

Me tohle delalo, kdyz jsem mel blbe zapojeny DS18B20, nastesti jsem je mel jeste v nejakej plosnaku, takze jen hral a neodporoucel se. Zkus to jeste proverit, zda se nedivas treba zrcadlove.


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
 

Ja by som ten limit otestoval na nejakom defaultnom sketchi. Problemy s vacsim poctom dallasov budu suvisiet po sw stranke primarne v casovych oknach (nutne upravit cykly detekcie cidiel a vycitavania hodnot tak aby to stihali) a teoreticky by vacsie mnozstvo cidiel mohlo robit nejaku paseku v impedancii alebo niecom podobnom, Ja by som to arduino pripojil priamo na to co uz mas v dome natahane na tom mrtvom 1wire extensione a nechal tam bezat sketch na detekciu a vycitavanie vsetkych hodnot par hodin a uvidis.


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
Topic starter  
Posted by: msk

Ja by som ten limit otestoval na nejakom defaultnom sketchi. Problemy s vacsim poctom dallasov budu suvisiet po sw stranke primarne v casovych oknach (nutne upravit cykly detekcie cidiel a vycitavania hodnot tak aby to stihali) a teoreticky by vacsie mnozstvo cidiel mohlo robit nejaku paseku v impedancii alebo niecom podobnom, Ja by som to arduino pripojil priamo na to co uz mas v dome natahane na tom mrtvom 1wire extensione a nechal tam bezat sketch na detekciu a vycitavanie vsetkych hodnot par hodin a uvidis.

Nechapem jak to myslis , ked zapojim viac ako 10 seznorov tak sa to proste sekne , neda ani DETECTED a nejde dalej, to iste ked som zapojil napr 3 a 5 senzorov na 2 kabloch tak sa to seklo, musel som rozdelit na 2 zbernice


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
 

Tak ako som to napisal. Zober primitivny 1wire hello world sketch ktory len v cykle hlada 1wire device a nacitava ich, nalej to do arduina, pripoj k tvojej existujucej zbernici (alebo zober klbo cidiel a pripoj tie) a uvidis ci to detekuje a nacita vsetky alebo nie.

Z principu fungovania zbernice imho nie je jediny dovod preco by mal byt limit na 10 ci 32 cidiel, moze tam byt ale sw limitacia v OneWire libe, limitacia fyzikalna (kapacita 1wire zbernice, odber cidiel, trilion dalsich faktorov ...).


   
ReplyQuote
(@smotek7)
Member
Joined: 7 years ago
Posts: 1898
 

@budulinek napajas to len cez USB?
Ked skusas ten sketch s LAN sheldom, daj to na poriadne napajanie aspom 1A.


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

Ahoj,

narazil jsem u sebe na toto. Myslíte, že to může mít vliv na funkci? Přiznám se, že nevím, co s tím:

sketch\OneWireReading.cpp:8:78: warning: cannot declare member function 'static void DSGenericDevice::copyAddress(uint8_t*, uint8_t (&)[8])' to have static linkage [-fpermissive]

static void DSGenericDevice::copyAddress(ADDRESS source, ADDRESS &destination) {
sketch\OneWireReading.cpp: In member function 'void DS2438Device::updateToNextState()':
sketch\OneWireReading.cpp:63:17: warning: invalid conversion from 'int' to 'DS2438State' [-fpermissive]
state = state + 1;
sketch\OneWireReading.cpp: In member function 'void OneWireBus::read()':
sketch\OneWireReading.cpp:164:52: warning: invalid conversion from 'DSGenericDevice*' to 'DS2401Device*' [-fpermissive]
DS2401Device *ds2401 = _devicesList->remove(i);
sketch\OneWireReading.cpp: At global scope:
sketch\OneWireReading.cpp:252:107: warning: cannot declare member function 'static void OneWireBus::sendDS2401(PrepareCallBack, DataCallBack, FinishCallBack, uint8_t*)' to have static linkage [-fpermissive]
static void OneWireBus::sendDS2401(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB, ADDRESS addr) {
sketch\OneWireReading.cpp:256:119: warning: cannot declare member function 'static void OneWireBus::sendDS1820(PrepareCallBack, DataCallBack, FinishCallBack, uint8_t*, float)' to have static linkage [-fpermissive]
static void OneWireBus::sendDS1820(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB, ADDRESS addr, float temp) {
sketch\OneWireReading.cpp: In static member function 'static void OneWireBus::sendDS1820(PrepareCallBack, DataCallBack, FinishCallBack, uint8_t*, float)':
sketch\OneWireReading.cpp:261:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
dCB("1W "); sendAddress(dCB, addr);
sketch\OneWireReading.cpp:262:19: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
dCB(" TEMP "); sendFloat(dCB, temp);
sketch\OneWireReading.cpp: At global scope:
sketch\OneWireReading.cpp:270:95: warning: cannot declare member function 'static void OneWireBus::sendDS2438(PrepareCallBack, DataCallBack, FinishCallBack, uint8_t*, float, float, float, float)' to have static linkage [-fpermissive]
ADDRESS addr, float temp, float vad, float vdd, float vsens) {
sketch\OneWireReading.cpp: In static member function 'static void OneWireBus::sendDS2438(PrepareCallBack, DataCallBack, FinishCallBack, uint8_t*, float, float, float, float)':
sketch\OneWireReading.cpp:275:14: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
dCB("1W "); sendAddress(dCB, addr);
sketch\OneWireReading.cpp:276:17: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
dCB(" TEMP "); sendFloat(dCB, temp);
sketch\OneWireReading.cpp:277:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
dCB(" VAD "); sendFloat(dCB, vad);
sketch\OneWireReading.cpp:278:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
dCB(" VDD "); sendFloat(dCB, vdd);
sketch\OneWireReading.cpp:279:18: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
dCB(" VSENS "); sendFloat(dCB, vsens);
sketch\OneWireReading.cpp: At global scope:
sketch\OneWireReading.cpp:286:110: warning: cannot declare member function 'static void OneWireBus::sendNewDevice(PrepareCallBack, DataCallBack, FinishCallBack, uint8_t*)' to have static linkage [-fpermissive]
static void OneWireBus::sendNewDevice(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB, ADDRESS addr) {
sketch\OneWireReading.cpp:290:106: warning: cannot declare member function 'static void OneWireBus::sendError(PrepareCallBack, DataCallBack, FinishCallBack, uint8_t*)' to have static linkage [-fpermissive]
static void OneWireBus::sendError(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB, ADDRESS addr) {
sketch\OneWireReading.cpp:295:81: warning: cannot declare member function 'static void OneWireBus::sendAddressAndGenericText(PrepareCallBack, DataCallBack, FinishCallBack, uint8_t*, const char*)' to have static linkage [-fpermissive]
ADDRESS addr, const char *text) {
sketch\OneWireReading.cpp: In static member function 'static void OneWireBus::sendAddressAndGenericText(PrepareCallBack, DataCallBack, FinishCallBack, uint8_t*, const char*)':
sketch\OneWireReading.cpp:300:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
dCB("1W "); sendAddress(dCB, addr);
sketch\OneWireReading.cpp:302:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
dCB(" "); dCB(text);
sketch\OneWireReading.cpp:302:27: warning: invalid conversion from 'const char*' to 'char*' [-fpermissive]
dCB(" "); dCB(text);
sketch\OneWireReading.cpp: At global scope:
sketch\OneWireReading.cpp:310:67: warning: cannot declare member function 'static void OneWireBus::sendAddress(DataCallBack, uint8_t*)' to have static linkage [-fpermissive]
static void OneWireBus::sendAddress(DataCallBack dCB, ADDRESS addr) {
sketch\OneWireReading.cpp:321:90: warning: default argument given for parameter 3 of 'static void OneWireBus::sendFloat(DataCallBack, float, int16_t)' [-fpermissive]
static void OneWireBus::sendFloat(DataCallBack dCB, float value, int16_t precision = 1000) {
In file included from sketch\OneWireReading.cpp:1:0:
sketch\OneWireReading.h:103:17: note: previous specification in 'static void OneWireBus::sendFloat(DataCallBack, float, int16_t)' here
static void sendFloat(DataCallBack dCB, float value, int16_t precision = 1000);
sketch\OneWireReading.cpp:321:90: warning: cannot declare member function 'static void OneWireBus::sendFloat(DataCallBack, float, int16_t)' to have static linkage [-fpermissive]
static void OneWireBus::sendFloat(DataCallBack dCB, float value, int16_t precision = 1000) {
sketch\OneWireReading.cpp:337:106: warning: cannot declare member function 'static bool OneWireBus::findDeviceInList(uint8_t*, LinkedList<DSGenericDevice*>*, uint8_t&)' to have static linkage [-fpermissive]
static bool OneWireBus::findDeviceInList(ADDRESS addr, LinkedList<DSGenericDevice*> *list, uint8_t &index) {
sketch\OneWireReading.cpp:347:68: warning: cannot declare member function 'static bool OneWireBus::compareAddress(uint8_t*, uint8_t*)' to have static linkage [-fpermissive]
static bool OneWireBus::compareAddress(ADDRESS addr1, ADDRESS addr2) {


   
ReplyQuote
(@david-pr)
Honorable Member
Joined: 6 years ago
Posts: 643
 

Jakou verzi arduino ide používáš? Ted me napadlo,ze me to vypisovalo taky nesmysly,az jsem postupne sel s verzi dolu a přestalo to.


   
ReplyQuote
Page 2 / 5
Share: