Close

Nimbus

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,371. až 2,400. (celkem z 2,768)
  • Autor
    Příspěvky
  • mape
    Účastník

    Já mám ten malej ethernetovej modul, nikoliv ethernet shield. Se statickou IP adresou to funguje normálně. Ale proč s DHCP ne? Píše se o tom i tady
    https://forum.arduino.cc/index.php?topic=302559.0
    ale týpek to „vyřešil“ tim, že si koupil rovnou nový modul.

    Aleš
    Účastník

    To je divné. V meteostanici http://xanadu.khnet.info/meteo.php mám ethernet shield nastavený na pevnou IP adresu, data se odesílají každou minutu, a běží to naprosto bez problému asi 2 roky. To samé přes WiFi s ESP8266 se data odesílají na ThinSpeak každých 5 minut, a také to jede v kuse třeba měsíc.
    Zkusil bych nastavit pevnou IP adresu. Když to nepomůže, tak zkusit vytvořit krátký prográmek, který bude odněkud stahovat (GET) nějaká data v intervalu např. 2 minut, a sledovat, jestli to také vypadne.

    mape
    Účastník

    Vypadne to po 10ti minutách, takže výsledků bude 5-6. Když udělám interval 30s, bude výsledků víc, ale zase pouze 10minut.

    Aleš
    Účastník

    Zkoušel jsi ten interval zkrátit třeba na 2 minuty? Jak se to bude chovat ?

    mape
    Účastník

    Ahoj borci; v první řadě bych vám chtěl poděkovat, že jsem díky vám zprovoznil logování teploty na ThingSpeak. Kompilátor mi neustále házel chyby a po promarněném víkendu, kdy už jsem chtěl moduly vyhodit z okna :)) jsem si všimnul, že Ondra78 používá verzi 1.6.3 a přitom web arduina mi vnutil 1.6.5, která ten kód vyhodnotí s chybami. Takže to bych chtěl napsat pro všechny ostatní, aby neztráceli naději 😀
    A teď k mojí otázce: mám takovýto testovací program

    
    #include <EtherCard.h>
    #define APIKEY  "ZMH0T5WDETDGCY67"
    #include <OneWire.h>
    #include <DallasTemperature.h>
    #define ONE_WIRE_BUS 3
    
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature sensors(&oneWire);
      
    byte mymac[] = { 0xDE,0xAD,0xBE,0xEF,0xFE,0xED };
    const char website[] PROGMEM = "api.thingspeak.com";
    byte Ethernet::buffer[700];
    
    uint32_t timer;
    Stash stash;
    
    void setup () {
      Serial.begin(9600);
      Serial.println("\n[webClient]");
      sensors.begin();
      if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) 
        Serial.println( "Failed to access Ethernet controller");
      if (!ether.dhcpSetup())
        Serial.println("DHCP failed");
    
      ether.printIp("IP:  ", ether.myip);
      ether.printIp("GW:  ", ether.gwip);  
      ether.printIp("DNS: ", ether.dnsip);  
    
      if (!ether.dnsLookup(website))
        Serial.println("DNS failed");
        
      ether.printIp("SRV: ", ether.hisip);
    }
    
    void loop () {
      sensors.requestTemperatures();
      ether.packetLoop(ether.packetReceive());
      
      if (millis() > timer) 
      {
        Serial.println(millis());
        timer = millis() + 660000; 
        delay(200); 
        byte sd = stash.create();
        stash.print("&field1=");
        stash.print(String(sensors.getTempCByIndex(0), DEC));     // print the value (0 to 1024) as string
        stash.save();
    
        Stash::prepare(PSTR("POST /update HTTP/1.1" "\r\n" 
                            "Host: $F" "\r\n" 
                            "Connection: close" "\r\n" 
                            "X-THINGSPEAKAPIKEY: $F" "\r\n" 
                            "Content-Type: application/x-www-form-urlencoded" "\r\n" 
                            "Content-Length: $D" "\r\n" 
                            "\r\n" 
                            "$H"),
                website, PSTR(APIKEY), stash.size(), sd);
    
        ether.tcpSend();
      }
    }
    

    Funguje to, ale pouze 10 minut, pak se musí přípravek resetovat, proč? Přes sériovou linku vidim, že program žije a v intervalech nastavených v programu problikne i ethernetový modul a dioda na routeru. Vygooglil jsem, že TCP protokol má timeout 10 minut, ale moc tomu nerozumim, je to pravda? Jak tedy upravit program? A jak je možný, že vám to funguje bez problému? Neni případně problém na mojim routeru? Řeším to teď teda tak, že mám časové relé, které mi zapíná modul (nano + mini ethernet modul HR911105A) jednou za 30minut na 1minutu. Děkuji za každou radu.

    Zbyšek Voda
    Účastník

    Dobrý den,
    to asi záleží spíše na účelu.

    Když koukám na ten kit, naleznete tam ledky, rezistory a tlačítka. Na začáteční hraní to stačí, ale myslím, že po chvilce (v řádu hodin) už moc nemáte s tímto kitem co dělat.

    Asi bych raději sáhnul po nějakém obsáhlejším kitu – například tomto: http://www.hwkitchen.com/products/kit-workshop-base-level/

    Podle mě asi úplně nejlepší kit je oficiální Arduino Starter Kit. V něm už je opravdu spousta komponent (Servo motor, DC motor, LCD displej…).

    Trupik
    Účastník

    Tak problém vyřešen. Z nějakého důvodu tohle ProMicro nefunguje v USB portu, kam normálně připojuji ostatní Arduina. Stačilo přehodit jinam, nainstalovat driver a funguje…?!?

    Trupik
    Účastník

    Dovolím si vetřít se do tohoto tématu se stejným problémem. Koupil jsem Arduino ProMicro od Sparkfunu, po připojení mi Win napíší že zařízení nebylo rozpoznáno a ve správci zařízení se hlásí jako „USB IO Board“. Přitom s jinými Arduiny založenými na stejném ATMega 32u4 problémy nemám…

    Jak zjistit jestli je to zmetek na reklamaci, nebo jestli je chyba u mně?

    T.

    odpověď na: zapojenie bs18d20 #5340
    Aleš
    Účastník

    Já mám takovou zkušenost, s DS18B20 a phantomovým napájením. Obvod snese velmi zdeformované pulzy a pořád to chodí. Jen jedno nesnese a to zápornou polaritu. Ta ale vzniká odrazem na delším kabelu. Pomáhá následující úprava: do série s výstupním pinem MCU dát rezistor cca 50 ohmů, aby nebyla tak strmá sestupná hrana a na oba konce (u MCU i teploměru) dát schotkyho diodu, která svede záporné napětí.

    CJ190133
    Účastník

    Ahoj, už som ich objednal niekoľko s CH340G a doteraz až na jednu výnimku žiaden problém. Ten problémový kus sa správal tak, že po nahraní kódu vypisoval CRC error. Je to naozaj zlý kus CH340.
    Čo sa týka driverov – pozri si najskôr vo Windows v sériových portoch pod akým portom sa ti CH340 prezentuje, to je pri každom kuse iné a potom si nastav v IDE taký istý port. Windows 8 nepotrebuje žiadne ovládače, zariadenie nie je vidieť pod USB zariadeniami, ale iba na sériovom porte.
    Do budúcna si daj pozor, CH340G je iba prevodník USB to serial, nie je to natívne USB zariadenie (nevie simulovať klávesnicu apod.) Ak chceš hardwérový ekvivalent originálu, tak na Aliexpresse je to napr. Funduino. Alebo aj noname, ale musíš opticky skontrolovať čip.

    odpověď na: zapojenie bs18d20 #5338
    Zbyšek Voda
    Účastník

    Dobrý den,
    to by mohl být i problém načasování. V tomto fóru: https://forum.arduino.cc/index.php?topic=20574.0 řeší podobný problém, který vyřešila právě změna časování v knihovně OneWire.cpp (je to příspěvek označený #5).

    odpověď na: EBook – nelze stáhnout #5319
    mac112
    Účastník

    Nedostanu žádný odkaz na stáhnutí knížky na můj email info@macha.info

    odpověď na: Posílání dat do mysql databáze #5294
    Vojtěch Vosáhlo
    Účastník

    Tak jo. Chvíli jsem na tom pracoval a už to funguje. Tvůj problém byl nejspíše v tom že DS posílá data tak rychle že se procesor přehltí a zasekne se. Tady je kód který jsem použil na testování. Doplň si do něj vše co používáš na daná místa a pak ho zkus spustit.

    //#include <DS3232RTC.h>        //http://github.com/JChristensen/DS3232RTC
    //#include <Streaming.h>        //http://arduiniana.org/libraries/streaming/
    //#include <Time.h>             //https://playground.arduino.cc/Code/Time
    #include <Wire.h>             //https://arduino.cc/en/Reference/Wire
    #include <avr/sleep.h>                                 
    
    #define SQW_PIN 2
    boolean sleep = false;
    
    void setup(void)
    {
        Serial.begin(115200);
        
        //setSyncProvider() causes the Time library to synchronize with the
        //external RTC by calling RTC.get() every five minutes by default.
       /* setSyncProvider(RTC.get);
        Serial << "RTC Sync";
        if (timeStatus() != timeSet){
            Serial << " FAIL!";
        }
        Serial << endl;
    
        printDateTime( RTC.get() );
        Serial << " --> Current RTC time." << endl;
    
        //Disable the default square wave of the SQW pin.
        RTC.squareWave(SQWAVE_NONE);
    
        //Attach an interrupt on the falling of the SQW pin.
        //digitalWrite(SQW_PIN, HIGH);    //redundant with the following line*/
        pinMode(SQW_PIN, INPUT_PULLUP);
        
    
        //Set an alarm at every 20th second of every minute.
      /*  RTC.setAlarm(ALM1_MATCH_SECONDS, 20, 0, 0, 1);    //daydate parameter should be between 1 and 7
        RTC.alarm(ALARM_1);                   //ensure RTC interrupt flag is cleared
        RTC.alarmInterrupt(ALARM_1, true);*/
    
    }
    
    //volatile boolean alarmIsrWasCalled = false; myslim, ze to nepotrebujeme
    
    void alarmIsr()
    {
        
        sleep_disable();
        sleep = false;
        Serial.println("Probudil jsem se!");
        detachInterrupt(0);
        
    }
    
    void sleepNow() {  
        sleep_enable();
        sleep = true;
        set_sleep_mode(SLEEP_MODE_PWR_DOWN);    // sleep mode is set here 
        
        attachInterrupt(0, alarmIsr, CHANGE);
        sleep_mode(); 
        
     
    
        if(sleep) sleep_disable();         
        Serial.println("Muj kod...");
        delay(1000); ///!!!!!!!!!!!!!!!DULEZITE!!!!!!!!!!!!
       
    
       
       
    }  
    
    int i = 1; //abych zjistil, kolikrat probehl loop
    
    void loop(void)
    {
    // alarmIsrWasCalled = false; myslim, ze to nepotrebujeme
    delay(100);
    Serial.println(i);
    printDateTime();
    delay(100);
    i++;
    sleepNow();
    }
    
    void printDateTime(/*time_t t*/)
    {
        /*Serial << ((day(t)<10) ? "0" : "") << _DEC(day(t)) << ' ';
        Serial << monthShortStr(month(t)) << " " << _DEC(year(t)) << ' ';
        Serial << ((hour(t)<10) ? "0" : "") << _DEC(hour(t)) << ':';
        Serial << ((minute(t)<10) ? "0" : "") << _DEC(minute(t)) << ':';
        Serial << ((second(t)<10) ? "0" : "") << _DEC(second(t));*/
    
        Serial.println("Vypis cas.");
    }

    Mělo by to fungovat tak že když se na interupt pinu něco změní – DS pošle data
    tak se dostaneš do smyčka alarmIsr() —> zpět do sleepNow() na pozici „Můj kód…“ —> loop() —> výpis času printDateTime() a zpět na sleepNow()

    Takhle to jde pořád dokola. Zkus to a napiš jak to funguje. 😀

    odpověď na: Posílání dat do mysql databáze #5288
    novakkry
    Účastník

    Tady je můj kód, kterej jsem poslepoval z nějakejch kódů. Je to zatím asi nejdál, co jsem se dostal. 😀
    Problém je, že proběhne loop, potom se to uspí, probudí, uspí, ale už neprobudí. :/ Možná ten kód je blbost, já nevím…

    #include <DS3232RTC.h>        //http://github.com/JChristensen/DS3232RTC
    #include <Streaming.h>        //http://arduiniana.org/libraries/streaming/
    #include <Time.h>             //https://playground.arduino.cc/Code/Time
    #include <Wire.h>             //https://arduino.cc/en/Reference/Wire
    #include <avr/sleep.h>                                 
    
    #define SQW_PIN 2
    
    void setup(void)
    {
        Serial.begin(115200);
    
        //setSyncProvider() causes the Time library to synchronize with the
        //external RTC by calling RTC.get() every five minutes by default.
        setSyncProvider(RTC.get);
        Serial << "RTC Sync";
        if (timeStatus() != timeSet){
            Serial << " FAIL!";
        }
        Serial << endl;
    
        printDateTime( RTC.get() );
        Serial << " --> Current RTC time." << endl;
    
        //Disable the default square wave of the SQW pin.
        RTC.squareWave(SQWAVE_NONE);
    
        //Attach an interrupt on the falling of the SQW pin.
        //digitalWrite(SQW_PIN, HIGH);    //redundant with the following line
        pinMode(SQW_PIN, INPUT_PULLUP);
        
    
        //Set an alarm at every 20th second of every minute.
        RTC.setAlarm(ALM1_MATCH_SECONDS, 20, 0, 0, 1);    //daydate parameter should be between 1 and 7
        RTC.alarm(ALARM_1);                   //ensure RTC interrupt flag is cleared
        RTC.alarmInterrupt(ALARM_1, true);
    
    }
    
    //volatile boolean alarmIsrWasCalled = false; myslim, ze to nepotrebujeme
    
    void alarmIsr()
    {
        Serial.println("alarmIsr"); //abych zjistil, jestli tahle funce byla zavolana
       // alarmIsrWasCalled = true; myslim, ze to nepotrebujeme
    
    }
    
    void sleepNow() {  
        set_sleep_mode(SLEEP_MODE_PWR_DOWN);    // sleep mode is set here  
        sleep_enable();                         // enables the sleep bit in the mcucr register  
          // use interrupt 0 (pin 2) and run function 
          attachInterrupt(0,alarmIsr, CHANGE);// here the device is actually put to sleep!!   
          sleep_mode(); 
          Serial.println("SleepNow"); //abych zjistil, jestli tahle funce byla zavolana
          
        // THE PROGRAM CONTINUES FROM HERE AFTER WAKING UP  
       
    
      //  sleep_disable();         // first thing after waking from sleep: disable sleep...  
       // detachInterrupt(0);      // disables interrupt 0 on pin 2 so the wakeUpNow code will not be executed during normal running time.  
    }  
    
    int i = 1; //abych zjistil, kolikrat probehl loop
    
    void loop(void)
    {
    // alarmIsrWasCalled = false; myslim, ze to nepotrebujeme
    delay(100);
    Serial.println(i);
    delay(100);
    i++;
    sleepNow();
    }
    
    void printDateTime(time_t t)
    {
        Serial << ((day(t)<10) ? "0" : "") << _DEC(day(t)) << ' ';
        Serial << monthShortStr(month(t)) << " " << _DEC(year(t)) << ' ';
        Serial << ((hour(t)<10) ? "0" : "") << _DEC(hour(t)) << ':';
        Serial << ((minute(t)<10) ? "0" : "") << _DEC(minute(t)) << ':';
        Serial << ((second(t)<10) ? "0" : "") << _DEC(second(t));
    }
    odpověď na: Posílání dat do mysql databáze #5287
    novakkry
    Účastník

    To by bylo žůžo. Díkes! 😀

    odpověď na: Posílání dat do mysql databáze #5286
    Vojtěch Vosáhlo
    Účastník

    To jsou takový malý věci, který člověk neví, zaberou mi celej den a potom člověk zjistí, že má přehodit jenom dva drátky…

    Já jsem s tím měl jako začátečník taky problémy.

    Hele dnes už nemám čas ale zítra to dořešíme, zkusím ti to pomoct sprovoznit. 😀

    odpověď na: Posílání dat do mysql databáze #5285
    novakkry
    Účastník

    Jinak díky moc za objasnění TX a RX. To jsou takový malý věci, který člověk neví, zaberou mi celej den a potom člověk zjistí, že má přehodit jenom dva drátky… 😀

    odpověď na: Posílání dat do mysql databáze #5284
    novakkry
    Účastník

    No já bych nepoužíval arduino na samotné buzení. Postavil bych si bareduino (bez všech regulátorů, ledek a těchto zbytečností) a budil bych ho přes ten rtc ds3231 modul. Ten má na sobě atmel 24c32n a běží na vlastní baterce, takže arduino může spát a mít spotřebu v micro amperech.
    Na internetu jsou k tomu tuny návodů, ale já jsem prostě takový kopyto, že to neumím zprovoznit… 🙁

    odpověď na: Posílání dat do mysql databáze #5280
    Vojtěch Vosáhlo
    Účastník

    Ahoj,
    upřímně bych nepoužíval arduino samotné k tomu aby se budilo. Nevím kolik mA ti arduino bere ale alespoň 1mA i při spánku to bude. Já bych zainvestoval nějakých 30Kč 😀 a koupil si Attiny13A. Tenhle procesor používám hrozně dlouho a na buzení ostatních zařízení je dokonalý. Má spotřebu 190uA při práci a 24uA při spánku což by ti např. s 2000 mAh baterijí vydrželo asi 3000dní (i když počítám se sepnutím arduina, měřením…)
    Být tebou bych udělal tohle:

        Nastav si v DS3231 alarm. Ten dovolí aby ti DS každý den (nebo jakýkoliv interval co nastavíš) poslal data o čase.
        Napsat program který s využitím interuptů zbudí attiny13 když DS pošle data.
        Attiny zapne na určitý čas arduino.
        Arduino si přeměří všechny data, pokud je potřeba přečte si čas z DS a odešle vše na web.
        Poté Attiny znovu vypne arduino a uspí se. To se opakuje pořád dokola.

    Takhle bych to udělal já ale chápu že to je docela komplikované. Zvaž všechny pro a proti a kdyby ti to nevyhovovalo tak napiš a vymyslíme něco jiného.
    Hodně štěstí.
    Mimochodem RX na TX a TX na RX je standardní zapojení sériové linky. Funguje to tak že 1. zařízení něco odešle ze svého TX (transmit) pinu a tyhle data musí 2. zařízení přijmout svým RX (receive) pinem.

    Doufám že to pomůže. 😀

    odpověď na: Posílání dat do mysql databáze #5278
    novakkry
    Účastník

    Vojto, díky moc za odpověď, nakonec jsem to dal dohromady. :)) Po nastavení na „serial“ a přepojejní na piny 0 a 1 to funguje. Resp. se musí zapojit TX na RX a RX na TX – nevím proč. Promiň, že odepisuju po tak dlouhý době, byl jsem pryč.

    Potřebuju překonat ještě jeden problém, možná trochu větší… Chci, aby arduino tu informaci posílalo jednou za den. Bude poměrně na opuštěném místě, tak potřebuji, aby vydrželo aspoň rok na baterku. Jelikož mi stačí, aby bylo v činnosti max minutu denně, tak by to snad neměl být problém.
    Koupil jsem RTC modul ds3231 a mým cílem je, aby arduino spalo, DS3231 ho v určitý čas probudil, arduino by udělalo měření a poslalo by data na server a zase uslo. Takhle furt dokola. Už se to snažím dva dny zprovoznit a výsledek naprosto žádnej.

    Na této stránce (zhruba v první třetině) pod nadpisem „waking from sleep with signal“ je docela pěkný kód, který bych možná chtěl použít, ale není v něm zaimplementováno DS3231.
    http://gammon.com.au/power

    Tady JChristensen, který napsal knihovnu DS3231.h postoval kód, který má nastaven alarm a interrupt na určitý čas. Zprovoznil jsem ho, ale nemá v sobě „sleep“ funkci a za boha jí tam neumím dodat.
    https://github.com/JChristensen/DS3232RTC/issues/5

    Už se o to snažím dva dny a výsledek pořád žádnej, jsem z toho už fakt zoufalej… :/
    Jde mi opravdu jenom o to, aby arduino spalo a v určitej čas ho ds3231 probudilo a arduino udělalo nějakou úlohu a zase uslo. Podle všeho, co jsem se dočetl na netu, by to mělo bejt fakt jednoduchý, ale prostě já nejsem schopnej to zprovoznit.

    Kdyby mi někdo pomohl, byl bych opravdu neskutečně vděčnej.

    Díky moc

    Kryštof

    mbrazdil
    Účastník

    Ano, je to objednané z aliexpressu a deska opravdu obsahuje převodník CH340G. Zkusil jsem doinstalovat ovladače, ale nic se nezměnilo, navíc mi po připojení k USB neustále připojuje a odpojuje. Není možné, že by ten převodník byl špatný nebo špatně nakonfigurovaný (pokud je to vůbec možné)?

    odpověď na: Arduino Dealerství #5276
    Luke_CZ
    Účastník

    Každý znalý věci nakupuje na Aliexpress.

    Zbyšek Voda
    Účastník

    Dobrý den,
    odkud jste ovladače instaloval?
    Pokud jste instaloval ty, které jsou součástí Arduino IDE, tak Vám to pravděpodobně fungovat nebude. Bude potřeba nainstalovat přímo ty pro vaši desku.

    Luke_CZ
    Účastník

    S největší pravděpodobností jsi nainstaloval ovladače pro FTDI převodník USB<->RS232, z Aliexpressu je tam na 99.9% převodník CH34x, ten je podstatně levnější, než původní FTDI. Ovladače jsou zde.

    odpověď na: Ardunio nano a zobrazení LCD #5267
    Milos K
    Účastník

    Tak jsem přišel na problém.Je to v harvare arduinu. Nedostatečně tlačí napětí na výstupních pinech. Pokud ho vyměním za jiné které mám na jiném zařízení tak je vše v pořádku.A toto které chodí špatně se závada projevuje i na funkčním zařízení..Leda by šlo na výstupních portech ještě nastavit napětí.Pak by vše bylo v pořádku jak jsem psal o příspěvek výše.

    odpověď na: Ardunio nano a zobrazení LCD #5266
    Milos K
    Účastník

    Ahoj ano tady je odkaz. Komunikoval jsem i s autorem který mi obratem poslal data na verzi s LCD 16×2 protože tady je verze ny LCD 20×4.. http://k2jji.org/2014/09/18/arduino-base-cw-decoder/
    V tomto programu LCD je modře podsvícený ale píše černě. Pak jsem zkusil zkušební soft LCD kde sem nastavil lcd.begin(0, 0); a LCD začalo zobrazovat pěkně bíle. Tak že LCD je v pořádku..Jenom že teď bádám kde tady v tomto programe se nastavuje tento jas protože je tam lcd.begin(colums, rows); a to jak změním sice se to bíle rozsvítí ale některé znaky se ztratí. Dnes ještě napíši autorovi a popíšu mu situaci.

    odpověď na: ESP 8266 #5265
    Aleš
    Účastník

    Já jsem verzi 1.6.6 nainstaloval jenom proto, abych vyzkoušel kreslení grafů, které tato nová verze obsahuje. Ale už mě to štve natolik, že jsem se vrátil k verzi 1.6.5, a na grafy používám dál Processing.

    odpověď na: Ardunio nano a zobrazení LCD #5264
    Aleš
    Účastník

    Tak to je zajímavé. Máte někde odkaz na ten program, který zobrazuje černě? Změnil jste knihovnu, nebo program? Docela by mě to zajímalo. Když totiž vypnete u tohoto displeje podsvícení, tak je téměř nečitelný, na rozdíl od černého displeje.

    odpověď na: Ardunio nano a zobrazení LCD #5262
    Milos K
    Účastník

    Tak jsem na to přišel. LCD je v pořádku. Vyměnil jsem v Arduinu program za jiný ketrý používám jinde.Přeletoval piny a LCD zobrazuje bíle tak jak má. Tak že v programu který je psán pro černé LCD musí být někde položka bud o intenzitě segmentu a nebo negativitě. Ale to fakt nevím kde a jak.

    odpověď na: Ardunio nano a zobrazení LCD #5261
    Milos K
    Účastník

    Taky jsem o tom přez noc přemýšlel že se tohle mohlo stát.. Pujde do reklamace. Dík moc za pomoc.

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,371. až 2,400. (celkem z 2,768)