Arduino klient - ovládanie z webu

seta1J
Příspěvky: 29
Registrován: 02 říj 2017, 04:32
Reputation: 0

Re: Arduino klient - ovládanie z webu

Příspěvek od seta1J » 16 úno 2019, 05:42

Zdravím. Těsně za loop() OK. Proč je v tom kódu wdt_reset(); ještě na konci ? Je to kvůli delay ?
Díky za info.

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: Arduino klient - ovládanie z webu

Příspěvek od martinius96 » 16 úno 2019, 12:26

Je to kvôli tomu, aby sa vynulovalo počítadlo watchdogu, aby nepresiahlo prednastavených 8s.

Kony
Příspěvky: 382
Registrován: 09 dub 2020, 11:43
Reputation: 0

Re: Arduino klient - ovládanie z webu

Příspěvek od Kony » 08 kvě 2020, 13:57

Já se dle zmíněného návodu snažím přijít jak na to, abych na ww stránce měl 3 možnosti ovládání LEd diod...
Každou zvlášť a potom všechny naráz.
Ale nemůžu přijít na php kód, který by mi měnil hodnoty v MySQL správně u každého zvlášť.

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Arduino klient - ovládanie z webu

Příspěvek od KamilV » 08 kvě 2020, 18:41

Jako vždy, ukaž co máš.
Jaká je struktura mysql tabulky? Ukaž třeba export nebo přilož screen.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Arduino klient - ovládanie z webu

Příspěvek od pavel1tu » 08 kvě 2020, 19:29

Kony píše:
08 kvě 2020, 13:57
Já se dle zmíněného návodu snažím přijít jak na to, abych na ww stránce měl 3 možnosti ovládání LEd diod...
Každou zvlášť a potom všechny naráz.
Ale nemůžu přijít na php kód, který by mi měnil hodnoty v MySQL správně u každého zvlášť.
Těžko poradit, když nevíme jak to řešíš v databázi.
Já mám u alarmu pro každou místnost v databázi položku, kam ukládám 0/1 jestli je zona hlidana nebo ne.
Je i jiná možnost, kdy se mi do jiného políčka ukládá číslo 0-8, kdy bitová váha tohoto čísla znamená jaký typ alarmu vzniknul.
A těch možností je více.

Je to o SQL dotazu, od tlačítka na 1 LED spustíš SQL dotaz aby změnil jen hodnotu/položku/buňku tabulky té 1 LED,
u ovládání více LED spustíš SQL dotaz který zapíše změnu do položek/buněk/chlívečků tabulky všech LED,
jen musíš pořád zapisovat a číst jen z prvního řádku tabulky ....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Arduino klient - ovládanie z webu

Příspěvek od KamilV » 08 kvě 2020, 20:08

pavel1tu píše:
08 kvě 2020, 19:29
Je to o SQL dotazu, od tlačítka na 1 LED spustíš SQL dotaz aby změnil jen hodnotu/položku/buňku tabulky té 1 LED,
u ovládání více LED spustíš SQL dotaz který zapíše změnu do položek/buněk/chlívečků tabulky všech LED,
jen musíš pořád zapisovat a číst jen z prvního řádku tabulky ....
To by předpokládalo, že má strukturu tabulky

Kód: Vybrat vše

LED1 | LED2 | LED3
-----------------------
  0  |   0  |  1
a to trochu doufám, že nemá.
Spíše bych čekal strukturu

Kód: Vybrat vše

ID | value
-------------
1  | 0
-------------
2  | 0
-------------
3  | 1
ale kdo ví, počkáme si, až bude jasné, jaká je struktura...

Kony
Příspěvky: 382
Registrován: 09 dub 2020, 11:43
Reputation: 0

Re: Arduino klient - ovládanie z webu

Příspěvek od Kony » 08 kvě 2020, 20:11

Ne, mam strukturu :
Jmeno = svetlo1
hodnota = 0(1)

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Arduino klient - ovládanie z webu

Příspěvek od KamilV » 08 kvě 2020, 21:11

No tak potom je to snadné.

Dotaz pro switchnutí konkrétního světla "svetlo1":

Kód: Vybrat vše

UPDATE tabulka SET hodnota = ABS(hodnota - 1) WHERE jmeno = "svetlo1"
Dotaz pro switchnutí všech světel:

Kód: Vybrat vše

UPDATE tabulka SET hodnota = ABS(hodnota - 1)
pokud v tabulce není nic jiného, než světa.

Dotaz na switchnutí je univerzál, nemusíš zjišťovat, v jakém stavu světlo bylo.
Ale samozřejmě můžeš mít na zapnutí samostatný dotaz:

Kód: Vybrat vše

UPDATE tabulka SET hodnota = 1 WHERE jmeno = "svetlo1"
a na vypnutí samostatný dotaz:

Kód: Vybrat vše

UPDATE tabulka SET hodnota = 0 WHERE jmeno = "svetlo1"

Kony
Příspěvky: 382
Registrován: 09 dub 2020, 11:43
Reputation: 0

Re: Arduino klient - ovládanie z webu

Příspěvek od Kony » 09 kvě 2020, 09:55

Super, tohle chapu, jen se trapim primo s tim formularem (obsahem) php stranky, pres ktery menim ty hodnoty v DB.
Dle clanku, me krasne meni hodnoty u jedne polozky, ale nejak nemuzu prijit jak na jednu php stranku dostat vic jak jednu hodnotu to menilo.

Abych mel :

Svetlo1--------Svetlo2-------Svetlo3
--Stav.-----------Stav.----------Stav
zapnout-------Zapnout------Zapnout
vypnout-------Vypnout------Vypnout

Odeslat


Nyní to mám takto a samozřejmě nefunguje :

Kód: Vybrat vše

<!DOCTYPE HTML>
<html>
        <head>
                <title>Statusy</title>
                <meta charset="utf-8" />
                <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
                <link rel="stylesheet" href="assets/css/main.css" />
                <noscript><link rel="stylesheet" href="assets/css/noscript.css" /></noscript>
        </head>
        <body class="is-preload">
        <p>
        </p>
<?php
        $server = "localhost";
        $user = "kony";
        $pass = "xxxxxxxxxxx";
        $db = "Domacnost";
        $mysqli = mysqli_connect($server, $user, $pass, $db); //připojení k MySQL
?>
                                <table width="480" height="116" border="0">
                                  <tbody>
                                    <tr>
                                      <td width="95"><input type="submit" name="submit" id="svetlo1ON" value="Odeslat"></td>
                                      <? $sql = "UPDATE arduino_data SET hodnota = ABS(hodnota - 1) WHERE modul = "svetlo1""; ?>
                                      <td width="95"><input type="submit" name="submit" id="svetlo1OFF" value="Odeslat"></td>
                                      <? $sql = "UPDATE arduino_data SET hodnota = ABS(hodnota - 0) WHERE modul = "svetlo1""; ?>
                                </tr>
                              </tbody>
    </table>
        </body>
</html>

Uživatelský avatar
kiRRow
Příspěvky: 1151
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Arduino klient - ovládanie z webu

Příspěvek od kiRRow » 09 kvě 2020, 10:36

Na odesilání více hodnot typu ano/ne se používá checkbox https://www.w3schools.com/tags/att_inpu ... eckbox.asp. Pokud to budeš dělat pomocí buttonů, nebo jiných html prvků, tak budeš muset použít javascript. Ten běží na straně prohlížeče a dovolí ti manipulovat se stránkou "online" ... po nastavení požadovaných parametrů se výsledek odešle k zpracování na php server.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů