Keresés

Részletes keresés

halaloszto Creative Commons License 2016.01.16 0 0 1601

angol megy?

 

beixeled az 1-wire-t, felül beírod az emailcímed, alul megnyomod a Start your build gombot.

kapsz két levelet. a másodikban van egy link, amiről le tudod tölteni a cuccot. én a float verziót használom.

 

http://nodemcu-build.com/builds/nodemcu-master-13-modules-2016-01-14-19-53-58-float.bin

 

ez az én buildem linkje, de szerintem te is le tudod tölteni.

 

ezt az egy fileot kell az ESP8266Flasher-el beleégetni.

 

Vajk

 

ps: nyissunk külön nodemcu vagy esp8266 topikot? mert ez nem arduino...

Előzmény: szatti (1600)
szatti Creative Commons License 2016.01.16 0 0 1600

Köszi a programot, de én elakadtam a 2-es pontnál.

Eljutottam odáig, hogy letöltött egy nodemcu-firmware-master.zip mappát, benne ezer file.

Melyik ezekből az amit be kell égetni a wifibe?

Előzmény: halaloszto (1599)
halaloszto Creative Commons License 2016.01.14 0 0 1599

Mini howto:

 

1. thingspeak.com
- create new channel
- turn on 4 fields
- make public
- get write key

2. http://nodemcu-build.com/
- get firmware with 1-wire module

3. ESP8266Flasher.exe
- load firmware

4. LuaLoader.exe

- config wifi (Set AP)

- upload init.lua

 

 

Konfigolás:

 - a wifit én a LuaLoader-ben konfigolom, az elmenti maradandóra, többet nem kell vele törődni.

 - a kód tetején kell beírni hogy melyik pin az 1w busz, meg a thingspeak API kulcsot

 - az futás elején kilistázza a buszon talált ds18b20-akat, olyan alakban mint ahogy a kódba be kell tenni. Innen be kell copy-pasteolni a kód tetején az én négy IDm helyére. Az utolsó után nem kell vessző! Amelyik szenzor itt az első, az lesz a field1, és így tovább. A thingspeak asszem 8 fieldet enged. Ha átírtad, utánna újra fel kell tölteni.

 

Hiányosságok:

 - nem sleepel mérések között. mondjuk ha nem elemről megy, nem sok értelme van

 - nem kezeli ha a wifi vagy a hálózat leállt. idővel vissza szokott konnektálni nekem

 - egyesével olvassa a szenzorokat, nem használ simultaneous conversiont. ahhoz kellene táp is a szenzoroknak, most nekem parasitic power-ben megy

 - nincs sok hibakezelés benne :-)

 

A kód: (szépen eltűnt a formázás)

 

 

pin = 3 -- ez az 1w busz


addrList={
{40,121,122,131,4,0,0,15},
{40,213,202,131,4,0,0,97},
{40,59,96,131,4,0,0,213},
{40,255,170,132,4,0,0,143}
}
apiKey="idejonazapikey"


-- search bus for devices
ow.setup(pin)
count = 0
ow.reset_search(pin)
repeat
addr = ow.search(pin)
if (addr~=nil) then
crc = ow.crc8(string.sub(addr,1,7))
if (crc == addr:byte(8)) then
if ((addr:byte(1) == 0x10) or (addr:byte(1) == 0x28)) then
count = count + 1
print (string.format("{%d,%d,%d,%d,%d,%d,%d,%d},",addr:byte(1,8)))
end
end
end
tmr.wdclr()
until ((addr==nil) or (count>=10))

 

getTemp=function(sAddr)
ow.reset(pin)
ow.select(pin, sAddr)
ow.write(pin, 0x44, 1)
tmr.delay(1000000)
present = ow.reset(pin)
ow.select(pin, sAddr)
ow.write(pin,0xBE,1)
data = nil
data = string.char(ow.read(pin))
for i = 1, 8 do
data = data .. string.char(ow.read(pin))
end
crc = ow.crc8(string.sub(data,1,8))
if (crc == data:byte(9)) then
t = (data:byte(1) + data:byte(2) * 256) * 625
t1 = math.floor(t / 10000)
t2 = t % 10000
return t1.."."..t2
else
return nil
end
tmr.wdclr()
end

sendData=function(d)
s=""
for i=1,#d do
s=s.."&field"..i.."="..(d[i])
end
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload)
if (string.find(payload, "Status: 200 OK") ~= nil) then
print("Posted OK");
end
end)
conn:on("connection", function(conn, payload)


print (s)
conn:send("GET /update?api_key="..apiKey..s
.. " HTTP/1.1rn"
.. "Host: api.thingspeak.comrn"
.. "Connection: closern"
.. "Accept: */*rn"
.. "User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)rn"
.. "rn")
end)
conn:on("disconnection", function(conn, payload)
conn:close();
collectgarbage();
end)
conn:connect(80,"api.thingspeak.com")
end

tmr.alarm(0, 60000, 1, function()
results={}
for i = 1,#addrList do
results[i]=getTemp(addrList[i])
end
sendData(results)
end )

Előzmény: halaloszto (1598)
halaloszto Creative Commons License 2016.01.14 0 0 1598
Előzmény: szatti (1595)
halaloszto Creative Commons License 2016.01.14 0 0 1597

Az enyém most halt meg délelőtt pont. három és fél napot bírt egy 2600mAh LiIon celláról, percenkénti loggolással. 

 

 

Előzmény: szatti (1595)
halaloszto Creative Commons License 2016.01.14 0 0 1596

jaja, kicsit olyan gyorsanműködik stílusú a kód. kiolvassa az összeset de csak az utolsót küldi el. 

 

a thingspeaknak egyszerűen egy GET kell aminek parameterei a field1, field2, stb.

Előzmény: titusz99 (1594)
szatti Creative Commons License 2016.01.14 0 0 1595

Nem sürgős, örülök ha meg tudod oldani és meg is osztod velünk!

Teljesen jó, ha a programba kell beírni, de végülis mindegy, mert feltölti mondjuk az első négyre aztán majd úgy lesz berakva a szenzor amelyik azt méri amit szeretnék. Vagy csak egyszerűen utána nevezem el a mezőket amikor látom, hogy melyiket hova tölti fel.

 

A programba úgyis bele kell írni a wifi csatlakozás miatt és a write kódot is bele kell rakni.

Előzmény: halaloszto (1593)
titusz99 Creative Commons License 2016.01.14 0 0 1594

Nem ismerem a thingspeak-et (még).

De a kódban -ha jól látom- tulajdonképpen kiolvassa az összes 18b20 értékét.

Csak az utolsó-ét küldi el.

Egyébként én nem LUA-ban programozom fel.

Egy mintát megcsináltam.

1 érzékelő+ESP8266 küldi soros vonalon PC felé, WIFI kapcsolat él, arra terminállal rá lehet csatlakozni.

Ha tudok csinálni térerőt a kazánházba, akkor rárakom a maradék érzékelőt is.

Hétvégén meglátjuk.

Előzmény: halaloszto (1593)
halaloszto Creative Commons License 2016.01.14 0 0 1593

ez pont az a kód, mint amit lentebb belinkelt szatti. elég le van egyszerűsítve a kód benne. 

 

mennyire sürgős? este megcsinálom rendesre, hogy az összes szenzort kiolvassa. 

 

hogyan akarod a szenzort párosítani a thingspeak fielddel? jó úgy ha a kódban kell majd leírni hogy melyik szenzor melyik field?

 

Vajk

Előzmény: titusz99 (1592)
titusz99 Creative Commons License 2016.01.14 0 0 1592
Előzmény: szatti (1591)
szatti Creative Commons License 2016.01.14 0 0 1591

Az nekem mindegy lenne, hogy 3V vagy 5V-ről megy a DS.

A bajom az, hogy az ESP programjába ami nem Arduino nyelven íródott hogy tudom beilleszteni, hogy

nem csak egy szenzor jelét küldje el, hanem 3-4-et.

 

http://www.instructables.com/id/Low-cost-WIFI-temperature-data-logger-based-on-ESP/?ALLSTEPS

 

erre a programra gondolok.

Előzmény: halaloszto (1589)
titusz99 Creative Commons License 2016.01.14 0 0 1590

A 18b20 adatlapja szerint mennie kell 3V-al is.

Ha megjön az eszközöm (ma), akkor 5 érzékelővel (3m-esek) ki tudom próbálni a hétvégén.

Előzmény: halaloszto (1589)
halaloszto Creative Commons License 2016.01.14 0 0 1589

én most tesztelem. 3 napja megy, egyszer volt hogy 20percre valamiért nem tudott konnektálni, de szerintem csak béna a breadboard, mert pont akkor pakolásztam is.

 

az egyiken dht11 van, az a szenzor egy rakás szar. a másikon egy 18b20. egy 18650 akkuról percenkénti logolással 24-26 órát ment sleep nélkül. most játszom a deep sleeppel, a mai a negyedik nap és még megy.

 

a 1wire cuccban esp-ileg nem mélyültem el, a nodemcu api elég low level, az alap busz kommandokat tudja. szoftverileg nem látszik problémásnak a több szenzor elkezelése egy buszon. elektromosan viszont van nyűg rendesen. az esp 3.3V és nem is 5V toleráns, a 1wire meg 5V és a busz meghajtásához kell is neki. Egy szenzor rövid dróttal elmegyeget 3.3V-ról, de nem várnék tőle sokat. Vannak a maximnak i2c buszod meghajtói, azok megoldanák a szintillesztést is asszem. van is valahol, csak kopaszon, nincs hozzá breakout boardom.

 

Vajk

Előzmény: szatti (1588)
szatti Creative Commons License 2016.01.14 0 0 1588

Valaki használta már az ESP8266-ot Arduino nélkül hőmérséklet logolásra a Thingspeakre?

Sok megvalósítási módot találok, de mindenhol csak egy szenzort használ. Jó lenne megoldani 3-4 db DS18B20-al.

Prof Creative Commons License 2016.01.11 0 0 1587

Ezzel a bicajos szezon kezdetéig elleszek. :-D Köszi!

Előzmény: Vargham (1586)
Vargham Creative Commons License 2016.01.11 0 0 1586

Jó bevezető írás kezdőknek és újrakezdőknek.

Minden példa AVR-re, és STM32-re is. Ami azért külön jó, mert egy csomó mindent pont ellentétesen valósítottak meg bennük. (Kell-e interrupt flag-et törölni, hová menti a state-t, stb.)

Előzmény: Prof (1585)
Prof Creative Commons License 2016.01.08 0 0 1585

Ez is debug, csak sokkal nagyobb szívás. Óriási logolt adatot kell átbányászni, hogy megtaláld, mert korreláció az mindig van. Kivéve, amikor nincs.

Előzmény: halaloszto (1583)
Törölt nick Creative Commons License 2016.01.08 0 0 1584

Foleg amikor az ipafi szabvanyok egymasnak bekavadnak,es egy rendszeren belul esetleg tobb is elofordul. Ekkor jon az hogy ugyanazokat a buszokat sl keĺl kezdeni szetszedni.

Előzmény: halaloszto (1581)
halaloszto Creative Commons License 2016.01.08 0 0 1583

ha lehet debugolni, az maga  a menyország. képzeld el ha a szenzor által küldött hőmérséklet bitmintája indít el valamit ami irreleváns. ott kezdődik hogy soha rá sem jössz hogy akkor önállósítja magát a redőny amikor 23.15 fok van a fürdőszobában, csak annyi van hogy néha magától lemegy, télen ritkán, nyáron gyakrabban, és esténként is csinálja néha.

 

Vajk

Előzmény: Prof (1582)
Prof Creative Commons License 2016.01.08 0 0 1582

Háááát. Volt pár debugging köröm 300-400 soros kódokkal, aminek a végén hangosan anyáztam percekig, hogy mekkora ökör vagyok. :-D

Előzmény: halaloszto (1581)
halaloszto Creative Commons License 2016.01.08 0 0 1581

nehogy azt hidd, hogy nem történik ilyen :-)

Előzmény: Prof (1579)
Trike. Creative Commons License 2016.01.08 0 0 1580

Köszi, küldtem mailt.

Előzmény: Prof (1578)
Prof Creative Commons License 2016.01.08 0 0 1579

Ezen a termosztátos példán 10 percig röhögtem. :-D

Előzmény: halaloszto (1576)
Prof Creative Commons License 2016.01.08 0 0 1578

Van.

 

Előzmény: Trike. (1577)
Trike. Creative Commons License 2016.01.08 0 0 1577

Buék!

 

Vannak valakinek gyakorlati tapasztalatai RFID alkalmazásában?

halaloszto Creative Commons License 2016.01.06 0 0 1576

ne azt nézd hogy oda az van írva hogy protokoll: nincs.

 

a protokoll egy fogalom a szakmában. azt a nyelvet jelenti, amit az adott buszon beszélnek. 

 

nem találhatsz ki egy sajátot, mert véletlenül előfordulhat hogy a te mondatod valamit jelent a többiek nyelvén, vagy fordítva. 

 

kitalálod, hogy az ff 01 01 azt jelenti hogy 1.es relé meghúz. közben meg a többi modul protokolljában az aa a0 c1 ff 01 01 02 ff fc azt jelenti hogy nappali termosztát 22 fokra. megírod a cuccodat, figyeli a buszt, és ha elhangzik hogy ff 01 01 meghúzza a relét. leteszteled, műkszik faszán. aztán beteszed a helyére, és ahányszor 22 fokra állítják a szobatermosztátot mindig lemegy a redőny.

 

a keret egy olyan fogalom, hogy sablon mondatot találunk ki. fix szerkezettel, szórenddel. óriási az esély hogy a loxone is így működik. és valamelyik szó jelenti hogy kinek szól a mondat. kitalálsz a saját cuccodnak egy azonosítót, és ilyen mondatokkal kommunikál a te cuccod is. így a többiek kicsit értik a mondatod és tudják nem nekik szól, meg te is érted a nekik szólókat és tudod hogy nem neked szólnak.

 

Vajk

Előzmény: DkGrinder (1574)
DkGrinder Creative Commons License 2016.01.06 0 0 1575

Ennyi:

 

 

Előzmény: DkGrinder (1574)
DkGrinder Creative Commons License 2016.01.06 0 0 1574

Nincs fix protokoll, egy sima RS485-ös fizikai rétegem van mester oldalon.

Előzmény: titusz99 (1573)
titusz99 Creative Commons License 2016.01.06 0 0 1573

Számomra az a kérdés, hogy RS485-ön milyen keret, protokoll típus szerint folyik a kommunikáció?

MODUS?, PROFIBUS? Valamilyen más?

Akkor abba akár beilleszthető általad kitalált parancs is.

 

Előzmény: DkGrinder (1572)
DkGrinder Creative Commons License 2016.01.06 0 0 1572

Ez csak egy teszt keret lenne.

Az én rendszerem sokkal összetettem lenne.

Nincs valami kis példa progi amiből ki lehetne elemezni, hogy is lehetne egy ilyet kivitelezni?

Előzmény: halaloszto (1571)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!