Close

Zbyšek Voda

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,701. až 2,730. (celkem z 2,768)
  • Autor
    Příspěvky
  • odpověď na: Spojení více arduino pomocí wifi #2923
    Aleš
    Účastník

    Jak jsem psal. Teplotní čidlo DS18B20 není problém, o RHT03 jsem nic nenašel. Hledej „NodeMCU LUA“

    odpověď na: Spojení více arduino pomocí wifi #2921
    tribal.cz
    Účastník

    Ještě k ESP8266 koukal jsem na specifikace a chápu to dobře že tento wifi modul lze použít i jako mikrokontrolér. připojit k němou třeba teplotně vlhkostní čidlo třeba RHT03 a odesílat tak data do jiného zařízení?

    odpověď na: Spojení více arduino pomocí wifi #2920
    tribal.cz
    Účastník

    Takhle dá se to rozdělit na server a klient. Server se skládá ze dvou částí, backend(arduino mega) a frontend(RPI) které jsou na pevno spojeny usb kabelem. Dále jsou zde klienti v podobě arduino pro mini které odesílají surová data( + mají další funkce) která výkonnější a na paměť bohatší mega zpracuje a odešle za a) do RPI kde se data ukládají do logů a za b) zpět do klientů kde se na displeji zobrazují již zpracovaná data. Vím odesílání zpět klientům je možná zbytečné ale je to kvůli úspoře kódu aby v mini pro zbyl dostatek prostoru na vše ostatní. A dostupnost wifi je po celém prostoru na vynikající úrovni klesne maximálně na nějakých 75 – 80%. Takže ano jednotlivé moduly se budou připojovat samostatně

    odpověď na: Spojení více arduino pomocí wifi #2919
    Aleš
    Účastník

    Myslím, že propojit to pomocí modulů ESP8266 nebude vůbec žádný problém (pokud tedy nebude problém s dostupností WiFi signálu). Ty moduly dokonce umí po aplikaci příslušného firmware a připojení DS18B20 načítat údaje z tohoto čidla a odesílat je přes WiFi (bez Arduina). Jednotlivé moduly se budou připojovat k nějakému AP, ze kterého to půjde do počítače, který to bude zpracovávat (RPi?).

    odpověď na: Arduino bez ISP #2913
    tribal.cz
    Účastník

    V první řadě napřed zjišťovat pak kupovat

    odpověď na: Arduino bez ISP #2904
    Scherby
    Účastník

    Dobře, tak dík moc 🙂 Bál jsem se, aby mi tam nescházela nějáká důležitá funkce vzhledem k tomu, že jde o klon.

    odpověď na: Arduino bez ISP #2903
    Zbyšek Voda
    Účastník

    Aha. Nemyslím ale, že je to něco, čeho byste se měl obávat 🙂

    odpověď na: Arduino bez ISP #2902
    Scherby
    Účastník

    Přímo u toho Arduina, co jsem posílal. Ještě předevčírem to tam bylo. Museli upravit popisky.

    odpověď na: Arduino bez ISP #2901
    Zbyšek Voda
    Účastník

    Tak to nevím, co by to mohlo být. Kde to psali?

    odpověď na: Arduino bez ISP #2898
    Scherby
    Účastník

    Konkrétně tam bylo bez ISP download funkce. Nikde jsem nenašel, o co se jedná. Vím, že to má něco společného s programováním chipu, ale to je vše

    odpověď na: Arduino bez ISP #2897
    Zbyšek Voda
    Účastník

    Popravdě moc nevím, co tím „bez ISP“ myslíte.

    Pokud by to bylo bez ICSP, tak by se jednalo o to, že na desce není připájená programovací hlavice, ale takhle nevím.

    Myslím, že se jako začátečník nemusíte ničeho obávat 🙂

    odpověď na: For a proměnná #2896
    Zbyšek Voda
    Účastník

    Nejsem si jistý, jestli to vůbec jde.
    Každopádně to určitě půjde udělat přes pole.

    odpověď na: Zasílání emailu #2884
    Zbyšek Voda
    Účastník

    Co mě tak narychlo napadá…

    Na Arduinu bude program, který se při překročení dané teploty na čidle pokusí připojit na adresu ve tvaru např.:

    www.server.cz/mail.php?cidlo=cislo_cidla&teplota=namerena_teplota

    Na dané adrese pak musí být soubor mail.php, který bude číst data z URL pomocí GET (to jsou ty údaje za otazníkem). Ty pak jen vezme a například pomocí funkce mail() je odešle.

    odpověď na: Zasílání emailu #2872
    Aleš
    Účastník

    Díval jsem se na nějaké příklady odesílání emailu z Arduina, a všude používají nešifrované odesílání přes port 25, bez přihlašovacího jména a hesla. A takový SMTP server asi nenajdeš 🙁 Jedině že by sis ho vytvořil sám na nějaké lokální síti, do které bude připojeno i to Arduino, a nebude do ní přístup zvenku.
    Veškeré SMTP servery přístupné z internetu používají minimálně autorizaci pomocí jména a hesla, a potom ještě šífrování (TLS, SSL, atd.) a to zase asi nezvládne Arduino (nebo jsem to nikde nenašel).

    odpověď na: potize s Arduinem #2869
    Aleš
    Účastník

    PC potřebuješ jenom k naprogramování (a ani to ne, program jde do Arduina nahrát i z mobilu nebo tabletu). Potom už může jet Arduino jenom samo, s připojeným napájením.

    odpověď na: potize s Arduinem #2860
    Atrey
    Účastník

    Zdravim vsechny, dneska zrejme panbuh nebyl doma a vsechni elementalove byly nakloneni – funguje to.

    Sice absolutne netusim v cem byl problem, ale to nevadi.

    Mam jen maly dotaz jeste – lze slozit Arduino tak, aby se dalo pouzivat bez podpory PC?

    Diky

    odpověď na: potize s Arduinem #2854
    Atrey
    Účastník

    To all, tak mi to nedalo.

    Od posledniho prispevku sedim u kompu a nejradsi bych to rozslapal.

    Ted uz teda vidime CH340, no a to je prosim vsechno.

    O nejakem rozsviceni oranzove LED … si muzu akorat nechat zdat.

    Vic pruchozi asi bude vyndat v dilne oranzovou LEDku za 1Kc a poradne se opit nad vlastni blbosti.

    odpověď na: potize s Arduinem #2842
    Atrey
    Účastník

    Zdravim ,

    tak jsem vse udelal dle Vaseho navodu – chvilku to fungovalo, asi tak 5 minut.

    Sice jsem pocitacova mastenka, ale takhle problematickej kram, jsem v zivote nevidel.

    Sice na vsech webovejch strankach pisou jak uzasny a jednoduchy to je, Hmmmm realita je zel bohu uplne jina.

    Skoda penez a toho casu.

    odpověď na: potize s Arduinem #2826
    zabzoun@seznam.cz
    Účastník

    Zdravím,
    dneska se celý den potýkám s obdobným problémem. Po aktualizaci ovladače mi to hlásilo chybu kód 10. Chvilku jsem hledal a tady https://forum.arduino.cc/index.php?topic=90409.0 jsem našel řešení. Stáhl jsem si ovladač CH340 USB-to-serial. Soubor byl zazipovaný. Rozbalil jsem jej. Poté jsem spustil správce zařízení a na zařízení COMxx Arduino Uno, u kterého byl vykřičník, jsem klikl pravým tlačítkem, dal jsem aktualizovat ovladač, vyhledat ovladač v počítači, vybrat ovladač ze seznamu, z disku, proklikal jsem si cestu do rozzipovaného souboru s ovladačem a ovladač nainstaloval. Vykřičník zmizel a vše komunikuje jak má.Jen v sekci COM a LPT porty není COMxx Arduino Uno,ale USB-SERIAL CH340 (COMxx)

    Používám Win7 64bit
    Martin

    odpověď na: RHT 03 – měření teploty a vlhkosti vzduchu #2719
    Zbyšek Voda
    Účastník

    FB buď Zbyšek Voda, nebo stačí napsat na stránku Arduino.cz na FB

    odpověď na: RHT 03 – měření teploty a vlhkosti vzduchu #2718
    tom.vitek
    Účastník

    Prosím tě das mi na tebe tel kontakt nebo facebook ? funguje to přesně naopak než řikas

    odpověď na: RHT 03 – měření teploty a vlhkosti vzduchu #2717
    Zbyšek Voda
    Účastník

    Problém bude v tom, že tak, jak máte program napsaný je opravdu správně chování, že při zmáčknutí tlačítka se relé vypne!

     if(buttonState == HIGH) { //!! tato funkce relé vypíná!
        digitalWrite(relePin1, LOW);
    }
    else{
        digitalWrite(relePin1, HIGH);
    } 

    Pokud chcete, aby stejný stav jako má relé mělo i tlačítko, musíte prohodit LOW a HIGH:

     if(buttonState == HIGH) {
        digitalWrite(relePin1, HIGH);
    }
    else{
        digitalWrite(relePin1, LOW);
    } 

    Dva IFy na stejné úrovni se rozhodně nedají brát jako „hlavní“ a „podřadný“. „Podřadnosti“ dosáhnete až jejich zanořováním 🙂

    odpověď na: TFT Touch screen 240×320 #2714
    yenda.net
    Účastník

    levné čínské - ale ten první typ funguje dobře (už ale není k mání) HW vypadá obdobně.. ale není(

    odpověď na: RHT 03 – měření teploty a vlhkosti vzduchu #2712
    tom.vitek
    Účastník

    Zdravím, mám tu prosím další problém se kterým si nevím rady:
    V tomto programu je ovládání výstupního relé pomocí teploty – funguje samo automaticky
    a dále je tu, že když sepnu tlačítko tak by se mělo sepnout i relé. A tady je ten kamen urazu po nahraní teplota automaticky řidí relé, ale když manualně zmačknu tlačítko abych seplo relé,když není seplé tak tato funkce nefunguje. Myslím že chyba bude třeba v rozmístění dané části programu nebo takoveho něco.

    Je možné že když jsou 2 IF v programu tak jedno program bere jako to hlavní a druhé podřadné?

    #include <DHT.h>
    #define DHT1PIN 7 //teplota
    #define DHT2PIN 6 // teplota 2
    #define DHT1TYPE DHT22 //definuje typ senzoru
    #define DHT2TYPE DHT22 //definuje typ senzoru
    DHT dht1(DHT1PIN, DHT1TYPE); //definuje typ senzoru
    DHT dht2(DHT2PIN, DHT2TYPE); //definuje typ senzoru
    const int buttonPin1 = 50; // kam je připojeno tlačítko
    const int relePin1 = 30; // kam je připojeno rele
    int buttonState = 0;

    void setup() {
    Serial.begin(9600);
    pinMode(relePin1, OUTPUT);
    pinMode(buttonPin1,INPUT);
    dht1.begin();
    dht2.begin();
    }

    void loop() {
    buttonState = digitalRead(buttonPin1);
    if (buttonState == HIGH) { // zapneme relé:
    digitalWrite(relePin1, LOW);
    }
    else {
    digitalWrite(relePin1, HIGH);
    } // vypneme relé:
    //automatické ovladani pomoci teploty
    if (dht1.readTemperature() >= 30) {
    digitalWrite(relePin1, LOW);
    }else{
    if (dht1.readTemperature() <= 28)
    digitalWrite(relePin1, HIGH);
    }
    //snímani teploty
    void teplotavlhkost();
    delay(4000);
    float h1 = dht1.readHumidity();
    float t1 = dht1.readTemperature();
    float h2 = dht2.readHumidity();
    float t2 = dht2.readTemperature();
    if (isnan(t1) || isnan(h1)) {
    Serial.println(„Failed to read from DHT #1“);
    }
    if (isnan(t2) || isnan(h2)) {
    Serial.println(„Failed to read from DHT #2“);
    }
    Serial.print(„T1:“);
    Serial.print(dht1.readTemperature(),1);
    Serial.print((char)223); // vypíše znak ° na displej
    Serial.print(„C „);
    }

    odpověď na: RHT 03 – měření teploty a vlhkosti vzduchu #2703
    tom.vitek
    Účastník

    je to tak! díky moc , takhle to vypadá a funguje to 🙂 ještě jednou díky

    if (dht1.readTemperature() >= 25.0)
    {
    digitalWrite(relePin1, LOW);
    if (dht1.readTemperature() <= 20.0)
    {
    digitalWrite(relePin1, HIGH);
    }
    }

    odpověď na: RHT 03 – měření teploty a vlhkosti vzduchu #2702
    Zbyšek Voda
    Účastník

    To asi bude tim, ze readTemperature je funkce volana na objektu dht1. A funkce potrebuji mit za sebou zavorky (i kdyz treba prazdne). Spravny zapis by tedy byl dht1.readTemperature().

    odpověď na: RHT 03 – měření teploty a vlhkosti vzduchu #2701
    tom.vitek
    Účastník

    aha, díky na radu ale i když jsem se smazal tak program píše tuhle chybu :
    celek_pokus_vetrak.ino:53:28: error: expected primary-expression before ‚>‘ token

    a pokud to napisu takhle :
    if (dht1.readTemperature > 25.0)
    {
    digitalWrite(relePin1, LOW);
    if (dht1.readTemperature < 20.0)
    {
    digitalWrite(relePin1, HIGH);
    }
    }

    tak chybu to píše :
    error: invalid use of member function (did you forget the ‚()‘ ?)

    odpověď na: RHT 03 – měření teploty a vlhkosti vzduchu #2700
    Zbyšek Voda
    Účastník

    Nebude chyba v tom, ze cisla zabalujete do uvozovek? On je pak program bere jako String a ne jako cislo 😉

    odpověď na: RHT 03 – měření teploty a vlhkosti vzduchu #2699
    tom.vitek
    Účastník

    Ahoj, ještě bych tu měl jeden problém :

    chci pomocí teploty ovládávat relé na který je napojen větrák

    když je teplota => 25°C tak sepni větrák (relé)
    když je teplota =< 20°C tak vypni větrák (relé)

    program:
    if (dht1.readTemperature => „25.0“)
    {
    digitalWrite(relePin1, LOW);
    if (dht1.readTemperature =< „20.0“)
    {
    digitalWrite(relePin1, HIGH);
    }
    }

    napsal sem to nějak takhle, ale program mi nebere ty hodnoty
    chyba říka:
    celek_pokus_vetrak.ino: In function ‚void loop()‘:
    celek_pokus_vetrak.ino:53:28: error: expected primary-expression before ‚>‘ token
    celek_pokus_vetrak.ino:56:30: error: expected primary-expression before ‚<‚ token
    Chyba kompilace.

    program je vytržen z celého programu zde:
    //Projekt Inteligentní skleník Vítek Tomáš
    #include <DHT.h> // knihovna dht teploty
    #define DHT1PIN 7 //teplota
    #define DHT2PIN 6 // teplota 2
    #define DHT1TYPE DHT22 //definuje typ senzoru
    #define DHT2TYPE DHT22 //definuje typ senzoru
    DHT dht1(DHT1PIN, DHT1TYPE); //definuje typ senzoru
    DHT dht2(DHT2PIN, DHT2TYPE); //definuje typ senzoru
    int temt6000Pin = A0; // senzor svetla
    int dirpin = 8; // motorek dir
    int steppin = 9; // motorek step

    byte sensorInterrupt = 0; // 0 = digital pin 2 //zacatek prutokomer
    byte sensorPin = 2;
    float calibrationFactor = 4.5;
    volatile byte pulseCount;
    float flowRate;
    unsigned int flowMilliLitres;
    unsigned long totalMilliLitres;
    unsigned long oldTime; // konec prutokomer
    //———————-POKUS ovladani vetraku —————————–
    const int buttonPin1 = 50; // kam je připojeno tlačítko
    const int relePin1 = 30; // kam je připojeno rele
    int buttonState = 0;
    //————————————————————–
    void setup() {
    Serial.begin(9600);
    pinMode(relePin1, OUTPUT); // POKUS rele jako vystup na pin
    pinMode(buttonPin1,INPUT); //POKUS tlačítka jako vstup:
    pinMode(dirpin, OUTPUT); // motorek
    pinMode(steppin, OUTPUT); // motorek
    pinMode(sensorPin, INPUT); //zacatek prutokomer
    digitalWrite(sensorPin, HIGH);

    pulseCount = 0;
    flowRate = 0.0;
    flowMilliLitres = 0;
    totalMilliLitres = 0;
    oldTime = 0;
    attachInterrupt(sensorInterrupt, pulseCounter, FALLING); // konec prutokomer
    dht1.begin(); // zacni merit teplotu 1
    dht2.begin(); // zacni merit teplotu 2
    }

    void loop() {
    //ovládání relé 1 pomocí tlačítka —————–
    void vetrak1();
    buttonState = digitalRead(buttonPin1);
    if (buttonState == HIGH) { // zapneme relé:
    digitalWrite(relePin1, LOW);
    }else {
    digitalWrite(relePin1, HIGH); } // vypneme rele
    //ovládání větráku pomocí teploty POKUS ————–
    if (dht1.readTemperature => „25.0“)
    {
    digitalWrite(relePin1, LOW);
    if (dht1.readTemperature =< „20.0“)
    {
    digitalWrite(relePin1, HIGH);
    }
    }

    //——————–prutokomer——————————————–
    if((millis() – oldTime) > 1000) // Only process counters once per second
    {
    detachInterrupt(sensorInterrupt);
    flowRate = ((1000.0 / (millis() – oldTime)) * pulseCount) / calibrationFactor;
    oldTime = millis();
    flowMilliLitres = (flowRate / 60) * 1000;
    totalMilliLitres += flowMilliLitres;
    unsigned int frac;
    pulseCount = 0;
    attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
    }
    //———————-lcd——————————-
    clearLCD();
    backlightOn();
    unsigned int frac; // deklarace promere frac pro prutokomer
    //————————————————
    selectLineOne();
    delay(100);
    Serial.print(„T1:“);
    Serial.print(dht1.readTemperature(),1);
    Serial.print((char)223); // vypíše znak ° na displej
    Serial.print(„C „);
    Serial.print(„T2:“);
    Serial.print(dht2.readTemperature(),1);
    Serial.print((char)223); // vypíše znak ° na displej
    Serial.print(„C“);
    delay(500);
    //————————————————
    selectLineTwo();
    delay(100);
    Serial.print(„Vl:“);
    Serial.print(dht1.readHumidity(),1);
    Serial.print(„% „);
    Serial.print(„V2:“);
    Serial.print(dht2.readHumidity(),1);
    Serial.print(„%“);
    delay(500);
    //————————————————
    selectLineThree();
    delay(100);
    Serial.print(„VP:“);
    Serial.print(analogRead(A1)/11,1);
    Serial.print(„% „);
    Serial.print(„S:“);
    Serial.print(analogRead(temt6000Pin)/11,1);
    Serial.print(„%“);
    delay(500);
    //———————————————
    selectLineFour();
    delay(100);
    Serial.print(„P:“);
    Serial.print(int(flowRate)); // Print the integer part of the variable
    Serial.print(„.“); // Print the decimal point
    frac = (flowRate – int(flowRate)) * 10;
    Serial.print(frac, DEC) ; // Print the fractional part of the variable
    Serial.print(„L/min“);
    Serial.print(„Pc“); // Output separator
    Serial.print(totalMilliLitres);
    Serial.println(„mL“);
    delay(5000);
    //——————————————–
    }
    //SerialLCD Functions
    void selectLineOne(){ //puts the cursor at line 0 char 0.
    Serial.write(0xFE); //command flag
    Serial.write(128); //position
    }
    void selectLineTwo(){ //puts the cursor at line 2 char 0.
    Serial.write(0xFE); //command flag
    Serial.write(192); //position
    }
    void selectLineThree(){ //puts the cursor at line 3 char 0.
    Serial.write(0xFE); //command flag
    Serial.write(148); //position
    }
    void selectLineFour(){ //puts the cursor at line 4 char 0.
    Serial.write(0xFE); //command flag
    Serial.write(212); //position
    }
    void goTo(int position) { //position = line 1: 0-19, line 2: 20-39, etc, 79+ defaults back to 0
    if (position<20){ Serial.write(0xFE); //command flag
    Serial.write((position+128)); //position
    }else if (position<40){Serial.write(0xFE); //command flag
    Serial.write((position+128+64-20)); //position
    }else if (position<60){Serial.write(0xFE); //command flag
    Serial.write((position+128+20-40)); //position
    }else if (position<80){Serial.write(0xFE); //command flag
    Serial.write((position+128+84-60)); //position
    } else { goTo(0); }
    }
    void clearLCD(){
    Serial.write(0xFE); //command flag
    Serial.write(0x01); //clear command.
    }
    void backlightOn(){ //turns on the backlight
    Serial.write(0x7C); //command flag for backlight stuff
    Serial.write(157); //light level.
    }
    void backlightOff(){ //turns off the backlight
    Serial.write(0x7C); //command flag for backlight stuff
    Serial.write(128); //light level for off.
    }
    void backlight50(){ //sets the backlight at 50% brightness
    Serial.write(0x7C); //command flag for backlight stuff
    Serial.write(143); //light level for off.
    }
    void serCommand(){ //a general function to call the command flag for issuing all other commands
    Serial.write(0xFE);
    }
    //————–motorek1————————–
    void motor1(){
    int i;
    digitalWrite(dirpin, LOW); // Nastaveni smeru
    delay(100);
    for (i = 0; i<4000; i++) // otočení o 4000 kroků
    {
    digitalWrite(steppin, LOW); // This LOW to HIGH change is what creates the
    digitalWrite(steppin, HIGH); // „Rising Edge“ so the easydriver knows to when to step.
    delayMicroseconds(500); // rychlost otáček
    }
    digitalWrite(dirpin, HIGH); // Nastaveni smeru
    delay(10000);
    for (i = 0; i<4000; i++) // otočení o 4000 kroků
    {
    digitalWrite(steppin, LOW); // This LOW to HIGH change is what creates the
    digitalWrite(steppin, HIGH); // „Rising Edge“ so the easydriver knows to when to step.
    delayMicroseconds(500); // This delay time is close to top speed for this
    }
    }
    // particular motor. Any faster the motor stalls.
    //————motorek2——————————–
    //————motorek3———————————
    //————vetrak1——————————-
    //————-vetrak2——————————-
    //———————topeni———————-
    //——————–LED-paska——————–
    // —————-senzor-světla——————-
    void svetlo(){
    int value = analogRead(temt6000Pin);
    }
    //—————vlhkost-půdy————————–
    void vlhkostpudy(){
    int sensorValue = analogRead(A1);
    }
    //———teplota 1,2 — vlhkost 1,2 —————–
    void teplotavlhkost(){
    delay(4000);
    float h1 = dht1.readHumidity();
    float t1 = dht1.readTemperature();
    float h2 = dht2.readHumidity();
    float t2 = dht2.readTemperature();
    if (isnan(t1) || isnan(h1)) {
    Serial.println(„Failed to read from DHT #1“);
    }
    if (isnan(t2) || isnan(h2)) {
    Serial.println(„Failed to read from DHT #2“);
    }
    }
    //————-prutokomer——————–
    void pulseCounter()
    {
    pulseCount++;
    }

    Díky

    odpověď na: Meteostanice #2690
    Aleš
    Účastník

    Bohužel bydlím v paneláku, takže anemometr ani srážkoměr nemám kam dát. Ale kolega má podobnou meteostanici s Arduinem, a má tam jak anemometr, tak srážkoměr, a chodí mu to celkem bez problému. Anemometr tam má tento: http://www.hadex.cz/t114-anemometr-k-meteostanicim-wh1080-a-wh1090/ a odkaz na jeho měření je zde: http://meteof.wz.cz/uvod.php Co vím, tak dokonce s tím anemometrem jezdil v autě, aby zjistil, jestli to ukazuje správnou rychlost 🙂

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