Close

jamesonman

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 30 příspěvků - 181. až 210. (celkem z 2,760)
  • Autor
    Příspěvky
  • odpověď na: Arduino Json a analyza stringu #11690
    bebeno28
    Účastník

    To php by som uplne vylucil. Sice mam webstranku pisanu na wordpress platforme ale to je len pisanie a nie programovanie takze co sa tika php to som uplne minoa druha vec je ta ze vsetky 3 esp moduly budu len v domacej sieti. Jsno kniznica bola predsa vytvorena na take veci ako ja potrebujem tak hy som to nerad komplikoval. Pripadne este by som volil variantu ze si sam vycitam ten retazek kde zacina hodnota ktoru potrebujem ale co sa tika c kodu zatial som novacik. Ja programujem v assemblery a toto je pre mna uplne nieco nove. Hlavne mi chyba pri vela knicniciach prsny zoznam prikazov s popisom co ktory prikaz robi a ako sa vyuziva. Nie vzdy je to popisane.

    posuvam sa pomaly dopredu len toto rozlozenie stringu by mi robilo zatial prblem.

    Ok takze aka je vysledna rada? ako by ste napisali ten kod pomocou json kniznice aby som ziskal data napriklad z toho vystupu meteostanice a bme cida.

    Vedel by niekto napisat celu cast toho json parse kodu?

    dakujem

    odpověď na: Arduino Json a analyza stringu #11689
    Zbyšek Voda
    Účastník

    Vojta má s tím prostředníkem dobrý postřeh. PHP se tu celkem nabízí.

    Mohlo by to fungovat třeba tak, že po připojení ESP ke stránce s PHP skriptem by se tento skript dotázal meteostanice a dostal by JSON s informacemi. Tento JSON by se vhodně přetransformoval (na čtení jsonu je v PHP myslím přímo utilita) a do ESP už by se odeslala data v daleko jednodušší podobě – například „25;-60;1.8“.

    Výhodou tohoto řešení je ulehčení zátěže procesoru. Na druhou stranu, pokud jste s PHP nikdy nedělal, asi bych se touto cestou nevydával. Můžou se totiž objevit další problémy.

    Na druhou stranu, když říkáte, že programujete ESP a navíc v této poměrně jednoduché aplikaci – asi by mi nevadilo použití té JSON knihovny, kterou využíváte. U Arduina bych váhal, ale ESP má o poznání více výkonu 🙂

    Měl jsem na mysli, že by JSON vypadal třeba následovně:

    {
      "System": {
        "Build": 145,
        "Unit": 2,
        "Uptime": 139,
        "Free Ram": 26472
      },
      "Sensors": {
        "Temp-voda": 50,
        "WiFi": -60,
        "spiral": 1.00
      }
    }

    Potom by získání jedné hodnoty ze senzoru bylo jednodušší, protože by odpadlo indexování v rámci pole.

    odpověď na: Arduino Json a analyza stringu #11688
    bebeno28
    Účastník

    zdravim pani. dakujem za rekcie.
    Stavuam si len zobrazovaciu jednotku pre meteostanicu a ohrev vody. Bude to cisto esp8266a k tomu pripojenu tft 1.8 lcd display.
    Toto zariadenie by si malo podla toho co budem chcet zobrazovat pytat namerane hodnoty jak z meteostanice ktora je postavena na esp8266 s firmwerom espeasy a bme280 cidlom tak z ohrevu vody kde bude tiez esp easy .

    da sa este zjednodusit ten json a to tak ze sa budem dopytovat vzdy na kazdu polozku zvlast. myslim to tak ze pri ohreve vody si najskorej zistim teplotu a potom ci je spirala zapnuta a nasledne wifi signal. len toto riesenie mi pride zbytocne zlozite.

    takto by to vyzeralo z meteostanice.
    `{
    „TaskName“: „BME280“,
    „BME-temp“: 19.91,
    „BME-hum“: 34.24,
    „BME-press“: 1017.71
    }

    a z ohrevu by bola tiez kazda hodnota samostatna .

    ja neviem niako upravit ten tvar json stringu.

    ako by ste to robili vy?

    dakujem

    odpověď na: Arduino Json a analyza stringu #11687
    Vojtěch Vosáhlo
    Účastník

    Jen malinký dodatek z mojí zkušenosti. Většinou když dostávám něco z webu třetích stran vytvářím si webového „prostředníka.“ Nějaký malý skript v php nebo čemkoliv jiném který si vyžádá potřebná data a převede je na to co chci já. Rozhodně je to jednoduší než se snažit dělat podobná kouzla přes arduino. Samo sebou si neplatím hosting na každý projekt, stránka na webzdarma.cz bohatě postačí ?

    odpověď na: Arduino Json a analyza stringu #11685
    Zbyšek Voda
    Účastník

    Podle JSON je položka „Sensors“ pole, takže vám chybí ještě jedna indexace.
    root["Sensors"][0]["Temp-voda"]

    Ještě je otázkou, jestli bude pořadí senzorů v poli vždy takovéto, nebo se bude měnit. V tom případě byste musel nějakým způsobem projít celé pole a najít tu položku, která má atribut „Temp-voda“.

    Napadá mě jedno zlepšení – nemůžete změnit tvar toho JSON objektu? Takto je to trochu krkolomné. Mohl by vypadat třeba takto a práce s ním by byla jednodušší:

    {
    ...
    Sensors: {
        Temp-voda: 25,
        WiFi: -60,
        ...
    }
    }

    Potom už by přečtení položky Temp-voda vypadalo tak, jak to máte v kódu.

    Pokud by přidání indexu nepomohlo, máte ještě možnost projít JSON jen jako text, najít výskyt řetězce – například „Temp-voda“ a potom víte, že za dva znaky začíná hodnota.

    Také by možná byla možnost se JSONu úplně vyhnout. Pokud víte, kolik celkem bude senzorů a nepotřebujete jejich počet nějak dynamicky měnit, mohl byste postupovat tak, že si určíte přesné pořadí, v jakém budete hodnoty odesílat a oddělíte je třeba středníkem. Jakmile odešlete všechny hodnoty, tak je zakončíte znakem nového řádku.

    Tedy jedna sada měření může vypadat třeba následovně:

    25;-60;1.80
    

    a vy budete vědět (předem si určíte), že první hodnota odpovídá teplotě vody, druhá wifi, třetí spiral. Také budete vědět, že první dvě hodnoty jsou typu int, takže he vyčtete funkcí parseInt, třetí float, použijete tedy funkci parseFloat.

    Pravděpodobně vám ale JSON chodí někde z webu, takže si tvar vybírat.

    Jaký projekt stavíte? 🙂

    odpověď na: Deska s STM32 #11679
    Dreamer
    Účastník

    Podělíš se o zkušenosti? Board mám taky ale zkoumání jsem zatím odložil až bude víc času. Jde integrovat do Arduino IDE? Jaké ovladače použít?

    odpověď na: Deska s STM32 #11678
    Luke_CZ
    Účastník

    Mám 🙂

    L.

    posjirka
    Účastník

    moje poslední reakce na toto vlákno :
    komu není rady tomu není pomoci.

    mpcz
    Účastník

    Zdravím,
    ty bláboly se nedají ani poslouchat. Ještě navíc historka o konektoru ze střední…
    Někomu asi nestačí, že problém sběrnice je vyřešen již léta a a chodí to bez „únavy“ a bez problému s napěťovou úrovní, který ostatně ani neexistuje. Pokud to léta chodí bez „odpálení“ a navíc je to podepřeno i teoretickou úvahou, je to pro mě dostatěčně jasné.
    Pokud to někomu ještě nestačí, připojuji záznam z paměťového osciloskopu.
    Vidí někdo někde datový provoz nad 3,3V? A pokud ho vidí pouze teoreticky, aby nějak tu svou teorii obhájil, ať ji trošku rozvede do podrobností, kde se tam těch 5V nabere.
    Ale pěkně prosím, žádné historky o konektorech ze střední anebo o „unavení něčeho“.
    Ostatně, zajímalo by mě, jestli autor těch tvrzení někdy na stole DUE/LCD2004 měl nebo jen sbírá na fórech a v datasch. rozumy a dále je bezmyšlenkovitě tranzituje.
    Děkuji, mpcz, 04.06.2017
    p.s. ocením, pokud na tento problém někdo jiný v budoucnu narazí a poděli se o zkušenosti a hlavně výsledek

    posjirka
    Účastník

    jen taková vsuvka: když jsem chodil ještě na střední tak mi připadali všeci ti HIFI šílenci jako magoři. Co si to dovolujou tvrdit, že zlacené konektory za 200kč hrajou líp než ty nikovaný za 10 kč. Vždyť to nemá na funkci zesilovače žádný vliv. Časem jsem pochopil, že nešlo o to co je teď, ale jak to bude fungovat za 5 let. Myslím, že tě čeká podobné prozření jako u mě před 20 lety … nikdo není neomylný, ale měl by dřív naslouchat než se hádat.

    posjirka
    Účastník

    to mpcz: chlape, útočíš na mě sice hezky, ale možná by nebylo špatné zamyslet se sám na desbou. Obávám se, že nesmysly tu zavádíš pouze ty. Vcelku jasně ukazuješ, že nedokážeš správně technicky myslet a všechny parametry ženeš za datasheetem povolenou mez. Pokud si myslíš, že se svět ohne podle tebe … .
    Já jsem ti slušně napsal řešení:
    1, externí ADC převodník s nižší referencí
    2, smířit se s nižším rozlišení LBA
    Cokoliv jiného dříve nebo později bude znamenat zničení AT Megy. Správné řešení předučuje i dlouhou a spolehlivou funkci zařízení bez hledání duchů. Takové přímočaré řešení co navrhuješ ty bude fungovat na třeba 3 Arduin z 10 a i ty 3 časem odejdou, nebo se budou chovat podivně.
    Dělej jak uznáš za vhodné, jen k tomu PROSÍM NESTRHUJ I OSTATNÍ, co nemají takovou hloubku znalostí a snaží se něco se naučit a porozumět tomu.

    odpověď na: nové fórum #11664
    BlindP
    Účastník

    Celé je to nějaké tajemné jako hrad v Karpatech 😀 Je něco s čím můžeme pomoct? Věřím, že už se spousta lidí nemůže dočkat.

    BlindP
    Účastník

    Posjirka ma ale pravdu, podivej se jeste jednou na ten obrazek. Kdyz zmenis referenci ovlivni to vsechny piny a v TUTO chvili nebude fungovat touch shield (coz mozna nevadi, do te doby nez tapnes na display 🙂 ) A ze by posjirka psal blaboly se mi nezda, nema kristalovou kouli a ty jsi neposlal kod, takze se tezko radi…BP

    mpcz
    Účastník

    Zdravím,
    říká moc, měla by být úměrná situaci, ale pokud někdo opakovaně nabízí bláboly, umocněné navíc třemi vykřičníky, je vhodné ostatní varovat. Fóra slouží k tomu, aby tam našli lidé pomoc, ušetřili čas, ne naopak.
    Co se týká toho tvého odkazu, (ten pán tam ale řeší poněkud odlišnou situaci) četl jsem i viděl varování na „několik“ vadných čtení po přehození reference na ofic. stránkách Arduina.
    Moje zkušenost s přepínání dvou interních referencí je poněkud odlišná.
    Celé se mi to jeví tak, že reference se samotným příkazem nepřepne, dojde k tomu až po prvním čtení z portu. To první je sice přesné, ale řízené původní referencí. Každé následné je již přesné (delay 5 ms), již podle nové reference, alespoň v mých poměrech jsem nezaznamenal žádné chyby. Toto jsem nevyčetl někde na webu, ale v praxi odzkoušel a aplikace, kde je to implementované funguje správně.
    mpcz, 03.06.2017

    BlindP
    Účastník

    a co trochu slusnosti ti nerika nic? :/

    The first ADC conversion result after switching reference voltage source may be inaccurate, and the user is advised to discard this result.

    http://capnbry.net/blog/?p=167

    mpcz
    Účastník

    Zdravím,
    ano, to ano, ale ten titulek „přepínání ZA CHODU programu“ ti neříká nic?
    mpcz, 03.06.2017

    posjirka
    Účastník

    když se podívaš na datasheet tak zjitíš, že přiřazuješ 1 refernci na všechny piny !!!
    http://www.imgup.cz/image/LgXt

    mpcz
    Účastník

    Zdravím,
    no co na tohle říci, opravdu nevím. Proč myslíž, že jsem to řešil? No aby fungoval správně touch i ADC s RN 1V1. A když píši, že je vše OK, tak JE to OK.
    Touch je přeplý na správné napětí a AD má také správné ref. napětí.
    mpcz, 02.06.2017

    posjirka
    Účastník

    trochu bych se bál co udělá AI pro touche panel když se mu změní refernce na 1,1V….
    Lepší varianta je asi buď použít externí převodník pro nižší napětí, nebo se smířit s hrubší LBA.

    vojjta
    Účastník

    moje zkusenost je, ze ono to funguje po nejakou dobu ale postupem casu se to unavi a pak tramtadada do kremikoveho nebe:) nicmene u DUE by to melo byt ok… Osobne tyhle veci resim napetovou delickou 120 Ohm / 240 Ohm, dava to pak krasnych 3.3v;). Na SPI to funguje krasne

    mpcz
    Účastník

    Zdravím,
    můj názor je takový:
    Jedná se pouze o to, zda na převodníku I2C-LCD JSOU, či NEJSOU osazené pullupové rezistory, bývají okolo 5kOhm. Na převodnících, které používám nejsou, ostatně není dobré dávat poolupy na Slave, při větším počtu se nám celková hodnota úměrně pokrátí.
    Pokud na převodníku jsou, lze je odpájet a je to pořešené. Zjistíme jednoduše lupou nebo ohmetrem: 5V oproti datové lince.
    Napěťové úrovně jsem dal i na osciloskop a je to tak, na lince běhá úroveň pouze do 3V. Tento problém se samozřejmě týká pouze připojení LCD s 5V na ARDUINO DUE (3V).
    Na Mega2560 atd. není co řešit, obojí je na 5V.
    mpcz, 02.06.2017

    mpcz
    Účastník

    Zdravím,
    tak nakonec jsem na to přišel po řadě pokusů. Nic složitého, je třeba:
    1/ přehodit referenci na potřebnou, kterou deska umožňuje
    2/ udělat jedno čtení ze vstupu, výsledek zahodit
    3/ delay(5)
    4/ další čtení jsou již OK
    Odzkoušeno na mega2560, vše funguje, jak má.
    mpcz, 02.06.2017

    posjirka
    Účastník

    jo je tam kompenzační odpor, ale já jsem radši opatrný. Jistota je kulomet a pár převodníků odpálených po cca 1-5 měsících už jsem viděl. Podobně je na tom ESP8266. Hodně lidem funguje komunikace UART na 5V … 🙂

    vojjta
    Účastník

    No Due je 3.3V, nicmene na strankach Arduina se lze, dozvede, ze na i2c s 5V zarizenim funguje a nikterak mu to neublizi, tusim, ze ma na SDA pinu pul up resistor, ktery kompenzuje rozdil napeti. Nicmene nevim zda ve vychozim stavu je zapnuty

    posjirka
    Účastník

    předpokládám, že to „ps:“ je asi na mě.
    No možná by nebylo do věci si to opravdu nastudovat. Obávám se, že na mé straně asi chyba nebude.Já vím jak funguje I2C komuikace a pokud MCU funguje v napěťové hladině 3,3V a ty pojedeš po sběrnici 5V tak ti opravdu hrozí odpálení výstupu. Resp. jeho poloviny při spínání +3,3V. Tady totiž není výstup typu otevřený kolektor …. 🙂 Všechny piny jsou navíc chráněny přes diody na napájecí napětí tzn. pokud tam bude víc než je napájecí napětí, hrozí i odpálení samotného MCU. To ti ani stabilizátor nepobere, protože funguje jednosměrně …..

    No hlavně jsem rád, že máš vyřešeno, třeba to někomu může usnadnit zbytečné pátrání po chybě, kterou vlastně neudělal.

    mpcz
    Účastník

    Zdravím,
    tak to jsem nakonec pořešil úpravou SW. Celý problém spočívá ve velkém počtu různých PCB, které vedou piny z chipu na piny LCD.
    Ohmetr, tužka a papír to řeší, pak změna parametrů a jede to.
    Narazil jsem na 4 různé druhy PCB pro jeden chip.
    mpcz, 31.may.2017
    p.s pokud někdo dává rady a varování ohledně odpálení chipu (velmi častá rada), asi přesně neví, jak chodí komunikace na I2C, doporučuji to podrobně prostudovat. Dle mého žádné nebezpečí nehrozí. LCD chodí naprosto bez problémů.

    odpověď na: 5 reproduktoru na vystupu zacatecnik #11590
    posjirka
    Účastník

    ono je těch otazníků mnohem víc. Například jak dlouheé zvuky to mají být? V jaké kvalitě? Kdysi jsme řešili takový základní zvukový modul s eeprom pamětí a „zvukovkou“ covox. tedy bez procesoru ale nic moc kvalita….

    jinak samozřejmě existuje spousta modulů jak psal už Vojtěch. Ty lze spínat řeba tranzitorem/tlačítkem nezávísle. Prostě co repo to 1 modul. Jsi tu ale omezený délkou záznamu. MP3 je super formát pro jakékoliv použití, jen je to jak s kladivem na komára.

    možné řešení je třeba i 5x toto:
    http://robotstore.cz/obchod/arduino/isd1820-zvukovy-modul-nahravani-arduino-atmel-20s/

    záleží co vlastně chceš ….

    odpověď na: 5 reproduktoru na vystupu zacatecnik #11589
    Vojtěch Vosáhlo
    Účastník

    Jde to s arduinem udělat? Ano. Je na to vhodné? Asi né tak úplně, raspberry by mohlo být třeba lepším a jednodušším řešením, je otázka na co se vy cítíte.

    Jde o takovou důležitou maličkost. Musí „projekt“ umět hrát několik věcí najednou? Např. rep 1 hraje tón 1 zatímco 2 hraje tón 2.

    Na přehrávání zvuků existuje mnoho modulů, pak se to dá řešit i pomocí knihovny jen s arduinem, ale vše závisí na předchozí otázce…

    odpověď na: Kontrola kódu #11586
    posjirka
    Účastník

    asi bude problém v kodu pro SLAVE. používáš tam

        tlacitko1 = Wire.read();
        tlacitko2 = Wire.read();  

    při čtení streamu. To ti nepůjde. Přečte 1 Byte a očekává další, ale ten nepřijde.
    Musíš si přečíst pouze 1 a pak rozhodnout co je to zač.

    upravil bych to asi takto:

    #include <Wire.h>
     
    const byte slaveId = 1;
     
    void setup()
    {
      Serial.begin(9600);
      Wire.begin(slaveId);
      Wire.onReceive(receiveEvent);
     
      pinMode(8, OUTPUT);
      pinMode(9, OUTPUT);
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);    
    }
     
    void loop()
    {
    }
     
    void receiveEvent(int howMany)
    {
      char tlacitko1;
      // uprava    char tlacitko2;
     
      while(Wire.available() > 0)
      {
        tlacitko1 = Wire.read();
        // uprava tlacitko2 = Wire.read();
       
        if (tlacitko1 == 'a')
        {
          Serial.println("=> Tlacitko1 = zapnuto");
          digitalWrite(8, HIGH);
          delay(1000);
        }
        else if (tlacitko1 == 'b') // uprava
        {
          Serial.println("=> Tlacitko2 = zapnuto");
          digitalWrite(9, HIGH);
          delay(1000);
        }
        else {
          digitalWrite(8, LOW);
          digitalWrite(9, LOW);
          delay(100);
         
        }
      }
    }
    odpověď na: Timer Arduino Mega #11585
    posjirka
    Účastník
Aktuálně je na stránce zobrazeno 30 příspěvků - 181. až 210. (celkem z 2,760)