{"id":815,"date":"2022-12-17T06:07:49","date_gmt":"2022-12-17T06:07:49","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/?post_type=chapter&#038;p=815"},"modified":"2023-01-02T10:03:02","modified_gmt":"2023-01-02T10:03:02","slug":"veebirakendus-ohuniiskuse-ja-temperatuuri-jalgimiseks","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/veebirakendus-ohuniiskuse-ja-temperatuuri-jalgimiseks\/","title":{"raw":"Veebirakendus \u00f5huniiskuse ja temperatuuri j\u00e4lgimiseks","rendered":"Veebirakendus \u00f5huniiskuse ja temperatuuri j\u00e4lgimiseks"},"content":{"raw":"<div class=\"textbox textbox--learning-objectives\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">Peat\u00fckk annab \u00fclevaate<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">\r\n<ul>\r\n \t<li>kuidas luua veebiarendus temperatuuriandmete lugemiseks ja v\u00e4ljastamiseks veebilehe kujul.<\/li>\r\n<\/ul>\r\n<\/div>\r\n<\/div>\r\n<h1><span lang=\"ET\">Veebirakenduse loomine<\/span><\/h1>\r\nN\u00fc\u00fcd, kui oleme tutvunud DHT andurilt andmete lugemisega ning Flaski kasutamisega, teeme rakenduse, mis kuvab neid n\u00e4itusid veebis. Kuna meil on n\u00fc\u00fcd tegemist suurema projektiga, siis teeme selle jaoks eraldi kataloogi.\r\n<div class=\"textbox textbox--examples\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">N\u00e4ide: Selleks kasutame k\u00e4sku mkdir ja paneme nimeks n\u00e4iteks \u201ekatse\u201c.<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">\r\n\r\n<strong>mkdir katse<\/strong>\r\n\r\nSiseneme sinna k\u00e4suga:\r\n\r\n<strong>cd katse<\/strong>\r\n\r\nKui juba kataloogide tegemiseks l\u00e4ks siis teeme veel kaks kataloog, mida me hiljem kasutame:\r\n\r\n<strong>mkdir static templates<\/strong>\r\n\r\n<\/div>\r\n<\/div>\r\n<div class=\"textbox textbox--examples\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">N\u00e4ide: alustame Pythoni koodi tegemisega:<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">\r\n\r\nnano katse.py\r\n\r\nKirjutame koodi:\r\n\r\nimport adafruit_dht\r\n\r\nimport board\r\n\r\nimport datetime\r\n\r\nimport time\r\n\r\nfrom flask import Flask, render_template\r\n\r\ndhtDevice = adafruit_dht.DHT11(board.D4)\r\n\r\napp = Flask(__name__)\r\n\r\n@app.route(\"\/\")\r\n\r\ndef katse():\r\n\r\nnow = datetime.datetime.now()\r\n\r\ntimeString = now.strftime(\"%d -%m-%Y\u00a0 %H:%M\")\r\n\r\nhumidity = dhtDevice.humidity\r\n\r\ntemperature = dhtDevice.temperature\r\n\r\ntemplateData = {\r\n\r\n'time' : timeString,\r\n\r\n'temperature' : temperature,\r\n\r\n'humidity' : humidity\r\n\r\n}\r\n\r\nreturn render_template('index.html', **templateData)\r\n\r\nif __name__ == \"__main__\":\r\n\r\napp.run(host='0.0.0.0', port=8080)\r\n\r\n<\/div>\r\n<\/div>\r\nSeletame selle lahti:\r\n\r\nAlustame j\u00e4lle teekide (moodulite) laadimisega. Seekord lisame ka teegi kellaaja ja kuup\u00e4eva kuvamiseks.\r\n\r\n<strong>import adafruit_dht<\/strong>\r\n\r\n<strong>import board<\/strong>\r\n\r\n<strong>import datetime<\/strong>\r\n\r\n<strong>import time<\/strong>\r\n\r\nLoeme sisse flask mooduli:\r\n\r\n<strong>from flask import Flask, render_template<\/strong>\r\n\r\nN\u00fc\u00fcd seadistame DHT seadme milline andur on kasutusel ja millisele n\u00f5elaga (pin\/kontakt) \u00fchendatud:\r\n\r\n<strong>dhtDevice = adafruit_dht.DHT11(board.D4)<\/strong>\r\n\r\nLoome Flask\u2019i rakenduse\r\n\r\n<strong>app = Flask(__name__)<\/strong>\r\n\r\nKui olete oma veebilehitseias Raspberry PI IP-aadressi sisestanud, k\u00e4ivitub allolev kood:\r\n\r\n<strong>@app.route(\"\/\")<\/strong>\r\n\r\n<strong>def katse():<\/strong>\r\n\r\nLoeme kuup\u00e4eva ja kellaaja\r\n\r\n<strong> now = datetime.datetime.now()<\/strong>\r\n\r\nN\u00e4itame siis vastavas j\u00e4rjekorras : p\u00e4ev-kuu-aasta ja siis tund:minut\r\n\r\n<strong>timeString = now.strftime(\"%d -%m-%Y \u00a0%H:%M\")<\/strong>\r\n\r\nLoeme niiskuse:\r\n\r\n<strong>humidity = dhtDevice.humidity<\/strong>\r\n\r\nLoeme temperatuuri:\r\n\r\n<strong>temperature = dhtDevice.temperature<\/strong>\r\n\r\nN\u00e4itame siis seda vastavalt:\r\n\r\n<strong>\u00a0 templateData = {<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'time' : timeString,<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'temperature' : temperature,<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'humidity' : humidity<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<\/strong>\r\n\r\nP\u00f6\u00f6rdume veebis kuvamiseks html faili poole index.html\r\n\r\n<strong> return render_template('index.html', **templateData)<\/strong>\r\n\r\n<strong>koodi k\u00e4ivitamine terminalist:<\/strong>\r\n\r\n<strong>if __name__ == \"__main__\":<\/strong>\r\n\r\nServer kuulab porti 8080\r\n\r\n<strong>app.run(host='0.0.0.0', port=8080)<\/strong>\r\n\r\nSeekord kasutame porti 8080, nii ei pea me administraatori \u00f5igustes (sudo) programmi k\u00e4ivitama.\r\n\r\nTeeme faili index.html (kataloogi \u00a0templates, mis on juba enne tehtud):\r\n\r\n<strong>nano templates\/index.html<\/strong>\r\n\r\n<strong>&lt;!DOCTYPE html&gt;<\/strong>\r\n\r\n<strong>\u00a0\u00a0 &lt;head&gt;<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;title&gt;Raspberry ilmajaam&lt;\/title&gt;<\/strong>\r\n\r\n<strong>\u00a0\u00a0 &lt;\/head&gt;<\/strong>\r\n\r\n<strong>\u00a0\u00a0 &lt;body&gt;<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h1&gt;Kuup\u00e4ev ja kellaeg on: {{ time }}&lt;\/h1&gt;<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h2&gt;Temperatuur on: {{ temperature }}&lt;\/h2&gt;<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h2&gt;Niiskus on: {{ humidity }}&lt;\/h2&gt;<\/strong>\r\n\r\n<strong>\u00a0\u00a0 &lt;\/body&gt;<\/strong>\r\n\r\n<strong>&lt;\/html&gt;<\/strong>\r\n\r\nKuvame kuup\u00e4ev ja kellaja mis on j\u00e4rgmistel ridadel. T\u00e4psemad juhised saate <a href=\"https:\/\/www.w3.org\/MarkUp\/\">W3 MarkUp.<\/a>\r\n\r\nK\u00f5ike mis on suletud topelt loogelistesse sulgudsse k\u00e4sitletakse muutujana, mis edastatakse meie Pythoni skriptile.\r\n<h1>Projekti k\u00e4ivitamine<\/h1>\r\nSelleks, et midagi p\u00e4riselt n\u00e4ha on meil vaja projekt k\u00e4ivitada.\r\n<div class=\"textbox textbox--examples\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">N\u00e4ide: k\u00e4ivitame oma projekti k\u00e4suga:<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">\r\n\r\npython katse.py\r\n\r\n<\/div>\r\n<\/div>\r\nVaatamiseks sisestame oma veebilehitsejasse oma ip ja sinna j\u00e4rgi kooloni ning pordinumbri. N\u00e4iteks nii:\r\n\r\n<a href=\"http:\/\/192.168.0.91:8080\">http:\/\/192.168.0.91:8080<\/a>\r\n\r\n<img class=\"alignnone wp-image-816 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/11.png\" alt=\"\" width=\"373\" height=\"228\" \/>\r\n<div class=\"textbox textbox--examples\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">N\u00e4ide: teeme veebilehe v\u00e4rvilisemaks kasutades stiilifaili (css):<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">\r\n\r\nnano\u00a0 static\/style.css\r\n\r\n<\/div>\r\n<\/div>\r\n<div class=\"textbox textbox--examples\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">N\u00e4ide: teeme v\u00e4ga lihtsa kujunduse, millega tausta teeme siniseks ja teksti kollaseks:<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">\r\n\r\nbody {\r\n\r\nbackground: blue;\r\n\r\ncolor: yellow;\r\n\r\n}\r\n\r\n<\/div>\r\n<\/div>\r\n<div class=\"textbox textbox--examples\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">N\u00e4ide: selleks, et seda teaks ka meie veebileht lisame faili index.html lause:<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">\r\n\r\n&lt;link rel=\"stylesheet\" href=\"..\/static\/style.css\/\"&gt;\r\n\r\n<\/div>\r\n<\/div>\r\n<div class=\"textbox textbox--examples\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">N\u00e4ide: meie faili sisu<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">\r\n\r\n&lt;!DOCTYPE html&gt;\r\n\r\n&lt;head&gt;\r\n\r\n&lt;title&gt;Raspberry ilmajaam&lt;\/title&gt;\r\n\r\n&lt;link rel=\"stylesheet\" href=\"..\/static\/style.css\/\"&gt;\r\n\r\n&lt;\/head&gt;\r\n\r\n&lt;body&gt;\r\n\r\n&lt;h1&gt;Kuup\u00e4ev ja kellaeg on: {{ time }}&lt;\/h1&gt;\r\n\r\n&lt;h2&gt;Temperatuur on: {{ temperature }}&lt;\/h2&gt;\r\n\r\n&lt;h2&gt;Niiskus on: {{ humidity }}&lt;\/h2&gt;\r\n\r\n&lt;\/body&gt;\r\n\r\n&lt;\/html&gt;\r\n\r\n<\/div>\r\n<\/div>\r\nK\u00e4ivitame uuesti oma projekti k\u00e4suga: <strong>python katse.py<\/strong>\r\n\r\nVaatame uuesti oma veebilehte ja n\u00e4eme:\r\n\r\n<img class=\"alignnone wp-image-817 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/12.png\" alt=\"\" width=\"602\" height=\"304\" \/>\r\n<h1>M\u00f5tlemise ja nuputus\u00fclesanded<\/h1>\r\n[h5p id=\"38\"]\r\n<h1>Edasij\u00f5udnutele nuputamiseks<\/h1>\r\na. Kes soovivad sellel teemal programmi edasi uurida, v\u00f5ivad proovida ka veebi teel lede juhtida. Siin kasutusel k\u00fcll teine teek (Adafruit_DHT) mis Raspberry Pi 4 ei taha t\u00f6\u00f6tada. Selle peab asendama siis meie n\u00e4ites oleva teegiga ja ka programmis tegema muudatused. J\u00f5udu katsetamisel!\r\n\r\n<a href=\"https:\/\/www.iotstarters.com\/raspberry-pi-flask-web-server-with-dht11\/\">Loe siit<\/a>\r\n\r\nb. Samamoodi on siin peat\u00fckis v\u00e4lja pakutud lahendus k\u00fcll toimiv, aga ei ole turvaline. Kui soovite luua turvalise lahenduse, mille saate panna ka internetti teistele k\u00e4ttesaadavaks, siis on vaja natuke enam nuputada. Selle osa j\u00e4tame nuputamiseks edasij\u00f5udnudtele!\r\n\r\n<a href=\"https:\/\/zditect.com\/blog\/50928960.html\">Loe siit<\/a>\r\n<h1>Lisamaterjal<\/h1>\r\n[embed]https:\/\/www.youtube.com\/watch?v=GsG1OClojOk[\/embed]\r\n\r\n[embed]https:\/\/www.youtube.com\/watch?v=Tsy8SwY_jic[\/embed]","rendered":"<div class=\"textbox textbox--learning-objectives\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">Peat\u00fckk annab \u00fclevaate<\/p>\n<\/header>\n<div class=\"textbox__content\">\n<ul>\n<li>kuidas luua veebiarendus temperatuuriandmete lugemiseks ja v\u00e4ljastamiseks veebilehe kujul.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<h1><span lang=\"ET\">Veebirakenduse loomine<\/span><\/h1>\n<p>N\u00fc\u00fcd, kui oleme tutvunud DHT andurilt andmete lugemisega ning Flaski kasutamisega, teeme rakenduse, mis kuvab neid n\u00e4itusid veebis. Kuna meil on n\u00fc\u00fcd tegemist suurema projektiga, siis teeme selle jaoks eraldi kataloogi.<\/p>\n<div class=\"textbox textbox--examples\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">N\u00e4ide: Selleks kasutame k\u00e4sku mkdir ja paneme nimeks n\u00e4iteks \u201ekatse\u201c.<\/p>\n<\/header>\n<div class=\"textbox__content\">\n<p><strong>mkdir katse<\/strong><\/p>\n<p>Siseneme sinna k\u00e4suga:<\/p>\n<p><strong>cd katse<\/strong><\/p>\n<p>Kui juba kataloogide tegemiseks l\u00e4ks siis teeme veel kaks kataloog, mida me hiljem kasutame:<\/p>\n<p><strong>mkdir static templates<\/strong><\/p>\n<\/div>\n<\/div>\n<div class=\"textbox textbox--examples\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">N\u00e4ide: alustame Pythoni koodi tegemisega:<\/p>\n<\/header>\n<div class=\"textbox__content\">\n<p>nano katse.py<\/p>\n<p>Kirjutame koodi:<\/p>\n<p>import adafruit_dht<\/p>\n<p>import board<\/p>\n<p>import datetime<\/p>\n<p>import time<\/p>\n<p>from flask import Flask, render_template<\/p>\n<p>dhtDevice = adafruit_dht.DHT11(board.D4)<\/p>\n<p>app = Flask(__name__)<\/p>\n<p>@app.route(&#8220;\/&#8221;)<\/p>\n<p>def katse():<\/p>\n<p>now = datetime.datetime.now()<\/p>\n<p>timeString = now.strftime(&#8220;%d -%m-%Y\u00a0 %H:%M&#8221;)<\/p>\n<p>humidity = dhtDevice.humidity<\/p>\n<p>temperature = dhtDevice.temperature<\/p>\n<p>templateData = {<\/p>\n<p>&#8216;time&#8217; : timeString,<\/p>\n<p>&#8216;temperature&#8217; : temperature,<\/p>\n<p>&#8216;humidity&#8217; : humidity<\/p>\n<p>}<\/p>\n<p>return render_template(&#8217;index.html&#8217;, **templateData)<\/p>\n<p>if __name__ == &#8220;__main__&#8221;:<\/p>\n<p>app.run(host=&#8217;0.0.0.0&#8242;, port=8080)<\/p>\n<\/div>\n<\/div>\n<p>Seletame selle lahti:<\/p>\n<p>Alustame j\u00e4lle teekide (moodulite) laadimisega. Seekord lisame ka teegi kellaaja ja kuup\u00e4eva kuvamiseks.<\/p>\n<p><strong>import adafruit_dht<\/strong><\/p>\n<p><strong>import board<\/strong><\/p>\n<p><strong>import datetime<\/strong><\/p>\n<p><strong>import time<\/strong><\/p>\n<p>Loeme sisse flask mooduli:<\/p>\n<p><strong>from flask import Flask, render_template<\/strong><\/p>\n<p>N\u00fc\u00fcd seadistame DHT seadme milline andur on kasutusel ja millisele n\u00f5elaga (pin\/kontakt) \u00fchendatud:<\/p>\n<p><strong>dhtDevice = adafruit_dht.DHT11(board.D4)<\/strong><\/p>\n<p>Loome Flask\u2019i rakenduse<\/p>\n<p><strong>app = Flask(__name__)<\/strong><\/p>\n<p>Kui olete oma veebilehitseias Raspberry PI IP-aadressi sisestanud, k\u00e4ivitub allolev kood:<\/p>\n<p><strong>@app.route(&#8220;\/&#8221;)<\/strong><\/p>\n<p><strong>def katse():<\/strong><\/p>\n<p>Loeme kuup\u00e4eva ja kellaaja<\/p>\n<p><strong> now = datetime.datetime.now()<\/strong><\/p>\n<p>N\u00e4itame siis vastavas j\u00e4rjekorras : p\u00e4ev-kuu-aasta ja siis tund:minut<\/p>\n<p><strong>timeString = now.strftime(&#8220;%d -%m-%Y \u00a0%H:%M&#8221;)<\/strong><\/p>\n<p>Loeme niiskuse:<\/p>\n<p><strong>humidity = dhtDevice.humidity<\/strong><\/p>\n<p>Loeme temperatuuri:<\/p>\n<p><strong>temperature = dhtDevice.temperature<\/strong><\/p>\n<p>N\u00e4itame siis seda vastavalt:<\/p>\n<p><strong>\u00a0 templateData = {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8216;time&#8217; : timeString,<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8216;temperature&#8217; : temperature,<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8216;humidity&#8217; : humidity<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<\/strong><\/p>\n<p>P\u00f6\u00f6rdume veebis kuvamiseks html faili poole index.html<\/p>\n<p><strong> return render_template(&#8217;index.html&#8217;, **templateData)<\/strong><\/p>\n<p><strong>koodi k\u00e4ivitamine terminalist:<\/strong><\/p>\n<p><strong>if __name__ == &#8220;__main__&#8221;:<\/strong><\/p>\n<p>Server kuulab porti 8080<\/p>\n<p><strong>app.run(host=&#8217;0.0.0.0&#8242;, port=8080)<\/strong><\/p>\n<p>Seekord kasutame porti 8080, nii ei pea me administraatori \u00f5igustes (sudo) programmi k\u00e4ivitama.<\/p>\n<p>Teeme faili index.html (kataloogi \u00a0templates, mis on juba enne tehtud):<\/p>\n<p><strong>nano templates\/index.html<\/strong><\/p>\n<p><strong>&lt;!DOCTYPE html&gt;<\/strong><\/p>\n<p><strong>\u00a0\u00a0 &lt;head&gt;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;title&gt;Raspberry ilmajaam&lt;\/title&gt;<\/strong><\/p>\n<p><strong>\u00a0\u00a0 &lt;\/head&gt;<\/strong><\/p>\n<p><strong>\u00a0\u00a0 &lt;body&gt;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h1&gt;Kuup\u00e4ev ja kellaeg on: {{ time }}&lt;\/h1&gt;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h2&gt;Temperatuur on: {{ temperature }}&lt;\/h2&gt;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h2&gt;Niiskus on: {{ humidity }}&lt;\/h2&gt;<\/strong><\/p>\n<p><strong>\u00a0\u00a0 &lt;\/body&gt;<\/strong><\/p>\n<p><strong>&lt;\/html&gt;<\/strong><\/p>\n<p>Kuvame kuup\u00e4ev ja kellaja mis on j\u00e4rgmistel ridadel. T\u00e4psemad juhised saate <a href=\"https:\/\/www.w3.org\/MarkUp\/\">W3 MarkUp.<\/a><\/p>\n<p>K\u00f5ike mis on suletud topelt loogelistesse sulgudsse k\u00e4sitletakse muutujana, mis edastatakse meie Pythoni skriptile.<\/p>\n<h1>Projekti k\u00e4ivitamine<\/h1>\n<p>Selleks, et midagi p\u00e4riselt n\u00e4ha on meil vaja projekt k\u00e4ivitada.<\/p>\n<div class=\"textbox textbox--examples\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">N\u00e4ide: k\u00e4ivitame oma projekti k\u00e4suga:<\/p>\n<\/header>\n<div class=\"textbox__content\">\n<p>python katse.py<\/p>\n<\/div>\n<\/div>\n<p>Vaatamiseks sisestame oma veebilehitsejasse oma ip ja sinna j\u00e4rgi kooloni ning pordinumbri. N\u00e4iteks nii:<\/p>\n<p><a href=\"http:\/\/192.168.0.91:8080\">http:\/\/192.168.0.91:8080<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-816 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/11.png\" alt=\"\" width=\"373\" height=\"228\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/11.png 373w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/11-300x183.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/11-65x40.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/11-225x138.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/11-350x214.png 350w\" sizes=\"auto, (max-width: 373px) 100vw, 373px\" \/><\/p>\n<div class=\"textbox textbox--examples\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">N\u00e4ide: teeme veebilehe v\u00e4rvilisemaks kasutades stiilifaili (css):<\/p>\n<\/header>\n<div class=\"textbox__content\">\n<p>nano\u00a0 static\/style.css<\/p>\n<\/div>\n<\/div>\n<div class=\"textbox textbox--examples\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">N\u00e4ide: teeme v\u00e4ga lihtsa kujunduse, millega tausta teeme siniseks ja teksti kollaseks:<\/p>\n<\/header>\n<div class=\"textbox__content\">\n<p>body {<\/p>\n<p>background: blue;<\/p>\n<p>color: yellow;<\/p>\n<p>}<\/p>\n<\/div>\n<\/div>\n<div class=\"textbox textbox--examples\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">N\u00e4ide: selleks, et seda teaks ka meie veebileht lisame faili index.html lause:<\/p>\n<\/header>\n<div class=\"textbox__content\">\n<p>&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;..\/static\/style.css\/&#8221;&gt;<\/p>\n<\/div>\n<\/div>\n<div class=\"textbox textbox--examples\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">N\u00e4ide: meie faili sisu<\/p>\n<\/header>\n<div class=\"textbox__content\">\n<p>&lt;!DOCTYPE html&gt;<\/p>\n<p>&lt;head&gt;<\/p>\n<p>&lt;title&gt;Raspberry ilmajaam&lt;\/title&gt;<\/p>\n<p>&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;..\/static\/style.css\/&#8221;&gt;<\/p>\n<p>&lt;\/head&gt;<\/p>\n<p>&lt;body&gt;<\/p>\n<p>&lt;h1&gt;Kuup\u00e4ev ja kellaeg on: {{ time }}&lt;\/h1&gt;<\/p>\n<p>&lt;h2&gt;Temperatuur on: {{ temperature }}&lt;\/h2&gt;<\/p>\n<p>&lt;h2&gt;Niiskus on: {{ humidity }}&lt;\/h2&gt;<\/p>\n<p>&lt;\/body&gt;<\/p>\n<p>&lt;\/html&gt;<\/p>\n<\/div>\n<\/div>\n<p>K\u00e4ivitame uuesti oma projekti k\u00e4suga: <strong>python katse.py<\/strong><\/p>\n<p>Vaatame uuesti oma veebilehte ja n\u00e4eme:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-817 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/12.png\" alt=\"\" width=\"602\" height=\"304\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/12.png 602w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/12-300x151.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/12-65x33.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/12-225x114.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2022\/12\/12-350x177.png 350w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<h1>M\u00f5tlemise ja nuputus\u00fclesanded<\/h1>\n<div id=\"h5p-38\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-38\" class=\"h5p-iframe\" data-content-id=\"38\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"Veebirakendus\"><\/iframe><\/div>\n<\/div>\n<h1>Edasij\u00f5udnutele nuputamiseks<\/h1>\n<p>a. Kes soovivad sellel teemal programmi edasi uurida, v\u00f5ivad proovida ka veebi teel lede juhtida. Siin kasutusel k\u00fcll teine teek (Adafruit_DHT) mis Raspberry Pi 4 ei taha t\u00f6\u00f6tada. Selle peab asendama siis meie n\u00e4ites oleva teegiga ja ka programmis tegema muudatused. J\u00f5udu katsetamisel!<\/p>\n<p><a href=\"https:\/\/www.iotstarters.com\/raspberry-pi-flask-web-server-with-dht11\/\">Loe siit<\/a><\/p>\n<p>b. Samamoodi on siin peat\u00fckis v\u00e4lja pakutud lahendus k\u00fcll toimiv, aga ei ole turvaline. Kui soovite luua turvalise lahenduse, mille saate panna ka internetti teistele k\u00e4ttesaadavaks, siis on vaja natuke enam nuputada. Selle osa j\u00e4tame nuputamiseks edasij\u00f5udnudtele!<\/p>\n<p><a href=\"https:\/\/zditect.com\/blog\/50928960.html\">Loe siit<\/a><\/p>\n<h1>Lisamaterjal<\/h1>\n<p><iframe loading=\"lazy\" id=\"oembed-1\" title=\"Raspberry Pi DHT11 DHT22 Temperature and Humidity Sensor\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/GsG1OClojOk?feature=oembed&#38;rel=0\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p><iframe loading=\"lazy\" id=\"oembed-2\" title=\"Control Raspberry Pi LED with Webpage : Using Python and Flask\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/Tsy8SwY_jic?feature=oembed&#38;rel=0\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"author":6,"menu_order":5,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-815","chapter","type-chapter","status-publish","hentry"],"part":782,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":8,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/815\/revisions"}],"predecessor-version":[{"id":934,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/815\/revisions\/934"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/parts\/782"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/815\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=815"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=815"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=815"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}