## Vaja ESP32 ### Vaja 1 - Vrtenje vsake 4. ledice ![prva](https://hackmd.io/_uploads/rye1olP1p.png) ##### [Dodatno](https://hackmd.io/@lukac/zapiski) ```python= import neopixel from machine import Pin from utime import sleep num_leds = 16 leds = neopixel.NeoPixel(Pin(5),num_leds) def someOff(): for l in range(num_leds): leds[l] = [0,0,0] leds.write off= num_leds//4 while True: for i in range(num_leds): leds[i] = [37,150,190] leds[(i+off) % num_leds] = [37,150,190] leds[(i+off*2) % num_leds] = [37,150,190] leds[(i+off*3) % num_leds] = [37,150,190] leds.write() sleep(0.5) someOff() ``` ### Vaja 2 - Reguliranje RGB z Potenciometrom ```python= from machine import Pin, ADC from utime import sleep import neopixel num_leds = 16 potRed = 32 potGreen = 33 potBlue = 25 leds = neopixel.NeoPixel(Pin(4),num_leds) p1 = ADC(Pin(potRed)) p2 = ADC(Pin(potGreen)) p3 = ADC(Pin(potBlue)) while True: leds.fill([p1.read()//16,p2.read()//16,p3.read()//16]) leds.write() ``` ![](https://hackmd.io/_uploads/rkQT0Xee6.png) ### Vaja 3 - Gumb in LED ```python= from machine import Pin led = Pin(19,Pin.OUT) led2 = Pin(21, Pin.OUT) btn = Pin(5, Pin.IN, Pin.PULL_UP) btn2 = Pin(18, Pin.IN, Pin.PULL_UP) while True: g = not bool(btn.value()) g2 = not bool(btn2.value()) if g: led.value(1) elif g2: led.value(1) led2.value(1) else: led.value(0) led2.value(0) ``` ![](https://hackmd.io/_uploads/S1ET_4lxT.png) ### Vaja 4 - hitrost animacije ```python= from machine import Pin, ADC import neopixel from utime import sleep num_leds = 16 pot = 32 leds = neopixel.NeoPixel(Pin(2),num_leds) p1 = ADC(Pin(pot)) while True: for i in range(num_leds): leds[i] = (14,255,0) leds.write() sleep(p1.read()*0.001) leds[i] = (0,0,0) leds.write() ``` ![](https://hackmd.io/_uploads/ByRKt8ZxT.png) ### Vaja 5 - Animacija ![image.png](https://hackmd.io/_uploads/ryaEqLLQa.png) ```python= from machine import Pin import neopixel from utime import sleep import random as rng num_leds = 22 leds = neopixel.NeoPixel(Pin(2),num_leds) while True: col = [rng.randrange(255),rng.randrange(255),rng.randrange(255)] for i in range(num_leds): leds[i] = col leds.write() sleep(0.1) leds[i] = [0,0,0] if i == num_leds-1: leds[i] = col leds.write() num_leds-= 1 ``` ### Vaja 6 - Lov Ledic ![image](https://hackmd.io/_uploads/ryjvP9yN6.png) ```python= from machine import Pin, ADC import neopixel from utime import sleep, time import random as rng num_leds=50 leds = neopixel.NeoPixel(Pin(2),num_leds) p1 = ADC(Pin(32)) score = 0 y = int(round(p1.read()/83.57142857142857,0)) noRounds = int(input("Number of rounds: ")) for i in range(noRounds): x = rng.randint(0,49) t = time() print("No.",i+1) while y != x: y = int(round(p1.read()/83.57142857142857,0)) leds[y] = [0,255,0] leds[x] = [255,0,0] leds.write() leds[y] = [0,0,0] sleep(1) leds[x] = [0,0,0] leds.write() if i+1 == noRounds: print("Youre score is:",score, "\nTime:",t,"s") break else: score += 1 ``` ### Vaja 7 - barve wokwi ```python= from time import sleep, time from machine import Pin from neopixel import NeoPixel numLeds = 16 btn = Pin(5, Pin.IN, Pin.PULL_UP) leds= NeoPixel(Pin(4), numLeds) green = (0, 255, 0) blue = (0,0,255) red = (255,0,0) i = 0 def timer(): while True: if bool(btn.value()) == True: s = 0 sleep(1) s+=1 else: return s while True: sleep(1) t = time() x = bool(btn.value()) if x == False: if timer() < 1: leds[i] = (0,255,0) leds.write() i+=1 elif 1<timer()<2: leds[i] = (0,0,255) leds.write() i+=1 else: leds[i] = (255,0,0) leds.write() i+=1 ``` ### Vaja 8 - Fells like ```python= import dht from machine import Pin, ADC import math from utime import sleep d = dht.DHT11(Pin(2)) p = ADC(Pin(32)) while True: temp = d.temperature() vla = d.humidity() x = int(p.read()/40.95) print(temp+0.5*(1-(vla/100))- 0.2*math.sqrt(x)) sleep(3) ``` ### vaja 9 ```python= from machine import Pin , PWM from utime import sleep import random as rng LedI = Pin(0,Pin.OUT) LedII = Pin(16,Pin.OUT) LedIII = Pin(2,Pin.OUT) LedIV = Pin(4,Pin.OUT) LedV = Pin(17,Pin.OUT) LedVI = Pin(5,Pin.OUT) LedVII = Pin(18,Pin.OUT) btn = Pin(15, Pin.IN, Pin.PULL_UP) while True: g = not bool(btn.value()) if g: r = rng.randint(1,6) if r == 1: LedI.value(1) sleep(2) LedI.value(0) if r == 2: LedII.value(1) LedVII.value(1) sleep(2) LedII.value(0) LedVII.value(0) if r == 3: LedIV.value(1) LedI.value(1) LedVI.value(1) sleep(2) LedIV.value(0) LedI.value(0) LedVI.value(0) if r == 4: LedII.value(1) LedVII.value(1) LedIII.value(1) LedV.value(1) sleep(2) LedII.value(0) LedVII.value(0) LedIII.value(0) LedV.value(0) if r == 5: LedI.value(1) LedII.value(1) LedVII.value(1) LedV.value(1) LedIII.value(1) sleep(2) LedI.value(0) LedII.value(0) LedVII.value(0) LedV.value(0) LedIII.value(0) if r == 6: LedIII.value(1) LedII.value(1) LedIV.value(1) LedV.value(1) LedVI.value(1) LedVII.value(1) sleep(2) LedIII.value(0) LedII.value(0) LedIV.value(0) LedV.value(0) LedVI.value(0) LedVII.value(0) ``` ![image](https://hackmd.io/_uploads/BkmEzC_NT.png) ### Vaja 10 - ugibanje barv ```python= from machine import Pin, ADC import neopixel import random as rng r=ADC(Pin(34)) g= ADC(Pin(35)) b= ADC(Pin(32)) num_leds = 16 leds = neopixel.NeoPixel(Pin(4),num_leds) ledsG = neopixel.NeoPixel(Pin(2),num_leds) btn = Pin(16, Pin.IN, Pin.PULL_UP) def convert(x, in_min, in_max, out_min, out_max): return (x - in_min) * (out_max - out_min) // (in_max - in_min) + out_min for i in range(num_leds): col = [rng.randrange(255),rng.randrange(255),rng.randrange(255)] leds.fill(col) leds.write() while btn.value() == 1: rg = convert(r.read(), 0, 4095, 1, 255)#round(r.read()/16.05882352941176,0) gg = convert(g.read(), 0, 4095, 1, 255)#round(g.read()/16.05882352941176,0) bg = convert(b.read(), 0, 4095, 1, 255)#round(b.read()/16.05882352941176,0) ledsG.fill([int(rg),int(gg),int(bg)]) ledsG.write() if btn.value() == 0: s = [rg,gg,bg] break print("Red: ",col[0]-s[0]) print("Green: ",col[1]-s[1]) print("Blue: ",col[2]-s[2]) i = str(input("New? :")) if i == "y": pass else: break ``` ![image](https://hackmd.io/_uploads/ryONohpL6.png) ### h3 ```python= from machine import Pin, ADC import neopixel import random as rng from utime import sleep, time num = 50 last = 0 q = 0 p = ADC(Pin(34)) leds = neopixel.NeoPixel(Pin(0),num) def convert(x, in_min, in_max, out_min, out_max): return (x - in_min) * (out_max - out_min) // (in_max - in_min) + out_min x = convert(p.read(),0,4095,0,49) while q < 5: z = rng.randrange(0,49) t = time() if (last - z) > 20 or (last + z) > 20: last = z while x != z: x = convert(p.read(),0,4095,0,49) leds[x] = [255,0,0] leds[z] = [0,255,0] leds.write() leds[x] = [0,0,0] leds.write() leds[x] = [255,0,0] leds[z] = [0,255,0] leds.write() sleep(0.5) leds.fill([0,0,0]) leds.write() q += 1 print("Time: ",t) ``` ![image](https://hackmd.io/_uploads/SkFDY3ewa.png) ## API začetki ### Klicanje spletne strani ```python= import requests url = "https://wokwi.com/micropython" call = requests.get(url) print(call.text) ``` ### Izpis iz dictionary ```python= import requests from pprint import pprint dict = {"Ime" : "David", "Starost" : "17", "Zaposlen" : False, "Siblings" : ["Matej"]} url = "https://api.chucknorris.io/jokes/random" call = requests.get(url) pprint(dict["Ime"]) pprint(dict["Zaposlen"]) pprint(dict["Siblings"][0]) pprint(dict.get("Ime", -1)) pprint(dict.get("Ime2", -1)) ``` ### URL ```python= import requests from pprint import pprint dict = {"Ime" : "David", "Starost" : "17", "Zaposlen" : False, "Siblings" : ["Matej"]} url = "https://deckofcardsapi.com/api/deck/new/shuffle/?deck_count=1" call = requests.get(url).json() pprint(call) ``` ### Vaja 1 - API Open Weather Map ```python= import requests from pprint import pprint apiKey = "b60c073e506a66cd318d5d990dc939fe" payload = {"lon":"14.312596353103178", "lat":"46.274773772162945", "appid":apiKey} baseURL = "https://api.openweathermap.org/data/2.5/weather" call = requests.get(baseURL, params = payload).json() pprint(call) ``` ### Vaja 2 ```python= import requests from pprint import pprint apiKey = "b60c073e506a66cd318d5d990dc939fe" #40.711708415949175, -74.01290114709457 def get_weather(lat,lon): dict = {"lat":lat, "lon" : lon, "units": "metric", "lang" : "sl", "appid": apiKey } baseURL = "https://api.openweathermap.org/data/2.5/weather" call = requests.get(baseURL, params=dict).json() return call["main"]["feels_like"] #pprint(js) #pprint(js["weather"][0]["description"]) sezMest = [["Laško",46.15508266288024, 15.237139533976794],["Ajdovščina", 45.88804030068664, 13.915667092866444 ],["Komenda", 46.20541364651428, 14.54073627696203],["Trstenik", 46.317587005307075, 14.372544633883736],["Kranjska gora", 46.485365629436224, 13.783885731258243],["Zgornje Duplje", 46.30661438523437, 14.29512093441640646]] temp = [] for s in sezMest: t = get_weather(s[1],s[2]) temp.append([s[0],t]) def getTemp(item): return item[1] temp.sort(key=getTemp) pprint(temp) ``` ### Vaja 3 ```python= import requests from pprint import pprint url = 'http://www.smsapi.si/poslji-sms' payload = {"un":"twin_towers", "ps":"17cd9c733edfa5e572605379026a9e1b4df8f734dd", "from": "031480333", "to": "041608528", "m": "Glory, glory, Man United Glory, glory, Man United Glory, glory, Man Unite As The Reds Go Marching On On On", "cc": "386" } k = requests.get(url,params=payload) print(k.text) ``` ### Vaja4 - Number facts ```python= import requests for i in range(101): url = f"http://numbersapi.com/{i}/trivia" print(url) k = requests.get(url) print(k.text) ``` ### vaja 5 - spooncalculator ```python= import requests from pprint import pprint url = "https://api.spoonacular.com/recipes/random?" urlMP = "https://api.spoonacular.com/mealplanner/generate" urlAutoCompl = "https://api.spoonacular.com/food/ingredients/autocomplete" urlMAouto = "https://api.spoonacular.com/recipes/autocomplete" urlConv = "https://api.spoonacular.com/recipes/convert" urlMenu = "https://api.spoonacular.com/food/menuItems/search" urlWine = "https://api.spoonacular.com/food/wine/pairing" urlFind = "https://api.spoonacular.com/recipes/findByIngredients" eng = [] while True: i = input() if i == "": break eng.append(i) eng = ",".join(eng) payload = { "ingredients" : eng, "number" : "10", "limitLicense" : True, "ranking" : 1, "apiKey" : "55b99fd4f754441b9df11cb1e76e059c" } j = requests.get(urlFind,params=payload).json() pprint(j) ``` ### Vaja 5 - pokeapi ```python= import requests from pprint import pprint url = "https://pokeapi.co/api/v2/pokemon/rayquaza" call = requests.get(url).json() for i in call["moves"]: print(i["move"]["name"]) ``` ### Vaja 6 - Bored API ```python= import requests from pprint import pprint # st. ljudi, cena, št aktivnosti url = "https://www.boredapi.com/api/activity/" st = int(input("Number of people: ")) num = int(input("Number of activities: ")) price = int(input(("Price: "))) s = [] payload = { "participants": st, "minprice" : 0, "maxprice" : price, #"price": 0 } #call = requests.get(url, params=payload).json() for k in range(num): call = requests.get(url, params=payload).json() pprint(call["activity"]) ``` # Flask ``` python= import requests from flask import Flask, render_template import random app = Flask("app") @app.route('/') def index(): k = requests.get("https://zenquotes.io/api/quotes/author/babe-ruth/").json() temp = k[0]['q'] return render_template("index.html",quote=temp) app.run(host='0.0.0.0', port=8080, debug=True) ``` ### Vaja 2 ```python= import requests from flask import Flask, render_template app = Flask("app") d = requests.get("https://dog.ceo/api/breeds/list/all").json() sez = list(d["message"].keys()) print(sez) @app.route('/') def index(): d = requests.get("https://dog.ceo/api/breeds/list/all").json() sez = list(d["message"].keys()) return render_template("index.html",sez=sez) app.run(host='0.0.0.0', port=8080, debug=True) ``` ```htmlmixed= <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello Bulma!</title> </head> <body> Pasme: {%for s in sez%} <ul><li>{{ s }}</li></ul> {% endfor %} </table> </body> </html> ``` ### Vaja 3 ```python= import requests from flask import Flask, render_template from pprint import pprint app = Flask("app") @app.route('/') def index(): Ingridients = [] mesurment = [] sk = [] f = requests.get("https://www.themealdb.com/api/json/v1/1/random.php").json() Name = f["meals"][0]["strMeal"] for i in range(1,21): if f["meals"][0][f"strIngredient{i}"]: Ingridients.append(f["meals"][0][f"strIngredient{i}"]) mesurment.append(f["meals"][0][f"strMeasure{i}"]) print(mesurment,Ingridients) Instructions = f["meals"][0]["strInstructions"] Image = f["meals"][0]["strMealThumb"] return render_template("index.html",name=Name,stvari=Instructions,img=Image,ing=Ingridients,meas=mesurment) app.run(host='0.0.0.0', port=8080, debug=True) ``` ```htmlembedded= <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>doc</title> </head> <body> <h2>{{ name }}</h2> <table> <tr> <th><b>Ingridients</b></th> <th><b>Mesurment</b></th> </tr> {% for i in range(len(ing))} <tr> <td>{{ ing[i] }}</td> <td>{{ meas[i] }}</td> </tr> {% endfor%} </table> <table> <tr> <td><img src={{img}} width="300" height="300"></td> <td><p><b>Instructions</b> <br>{{ stvari }}</p></td> </tr> </table> </body> </html> ``` ### Vaja 4 ![image](https://hackmd.io/_uploads/BkmSmJptT.png) ```python= from flask import Flask, render_template, request from pprint import pprint import random app = Flask("app") @app.route('/') def index(): return render_template("index.html") @app.route('/izracunaj') def izracunaj(): d = request.args prvi = d.get("first", "Janez") drugi = d.get("second", "Lojzka") rnd = random.randint(0,100) return render_template("rezultati.html",uno=prvi,dos=drugi,r=rnd) app.run(host='0.0.0.0', port=8080, debug=True) ``` ```htmlembedded= <!DOCTYPE html> <html lang="en-US"> <head> <title>Doc</title> </head> <body> <form action="/izracunaj"> <label>Name numero uno:</label><br> <input type="text" name="first"><br> <label>Name numero dos:</label><br> <input type="text" name="second"><br><br> <input type="submit" value="Submit"> </form> </body> </html> ``` ```htmlembedded= <!DOCTYPE html> <html lang="en-US"> <head> <title>Doc</title> </head> <body> <h2>IZRAČUN</h2> <p> {{uno}} + {{dos}} = {{r}} % </p> </body> </html> ``` ### vaja 5 ```python= import requests from flask import Flask, render_template x = [] app = Flask("app") @app.route('/') def index(): pf = requests.get('https://api.agify.io?name=david').json() dlf = requests.get('https://api.genderize.io?name=david').json() af = requests.get('https://api.nationalize.io/?name=david').json() f9 = af["country"] for country_id in f9: x.append(country_id['country_id']) age = pf["age"] sp = dlf["gender"] m = dlf["probability"] n = pf["name"] return render_template('index.html', age = age, spol = sp, moznost = m, x = x,name = n) app.run(host='0.0.0.0', port=8080, debug=True) ``` ```html= <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>doc</title> </head> <body> <p> {{ name }} </p> <table> <tr> <th>&nbsp;Spol&nbsp;</th> <th>&nbsp;Verjtnost&nbsp;</th> </tr> <tr> <td>{{spol}}</td> <td>{{moznost}}</td> </tr> </table> <h3>Drzave</h3> <p> {{x}} </p> ``` ### vaja 6 ```htmlembedded= <!DOCTYPE html> <html lang="en-US"> <head> <title>Doc</title> <style> body{ margin:20px; background-color:#537d99; } h1{ font-family: "Times New Roman", Times, serif; color:#d69074; text-align:center; } p{ font-family: "Times New Roman", Times, serif; color:#edc593; font-size:1.2em; padding:5px; } </style> </head> <body> <h1>Deus dê</h1> <p>IP: {{ ip }} </p> <p>Lan: {{ lat }} </p> <p>Lon: {{lon}} </p> <p> Country: {{ ß }}, {{ Ł }} </p> <p> Weather: {{ ł }} </p> <img src="https://openweathermap.org/img/wn/{{ š }}.png" alt ='sljejka' height='170' width='200'> </body> </html> ``` ```python= from flask import Flask, render_template, request import requests from pprint import pprint app = Flask("app") @app.route('/') def index(): API_KEY = "420c89673fa140bf927be5752ab5c9c5" APIkey = "c7244d9045470736bf3e1e55e2f57235" x = dict(request.headers) x = x["X-Forwarded-For"].split(",")[0] url = f"https://api.ipgeolocation.io/ipgeo?apiKey={API_KEY}&ip={x}" q = requests.get(url).json() lat = q["latitude"] lon = q["longitude"] Ł =q["country_name"] urlmk2 = f"https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={APIkey}" đ = requests.get(urlmk2).json() ł = đ["weather"][0]["main"] ß = đ["sys"]["country"] š = đ["weather"][0]["icon"] pprint(đ) return render_template("index.html",lat = lat, lon = lon,ip = x, Ł = Ł, ł=ł,ß=ß,š=š) app.run(host='0.0.0.0', port=8080, debug=True) ``` ### vaja 7 ```python= from flask import Flask,render_template,request import random import requests import datetime app = Flask('app') @app.route('/') def hello_world(): return render_template("index.html") @app.route("/coinflip") def coinflip(): return render_template("coinflip.html") @app.route("/rndnum") def rndnum(): return render_template("randomnumber.html") @app.route("/theword") def word(): return render_template("word.html") @app.route("/dice") def maindice(): return render_template("dice.html") @app.route('/coinflipper') def coinflipper(): heads = {"img":"https://i.postimg.cc/CBNJNfDJ/head.png","rez":"Heads" } tails = {"img":"https://i.postimg.cc/zysdXN8w/tail.png","rez":"Tails" } f = random.randint(0,1) if f == 0: return heads else: return tails @app.route("/randomquote") def randomQuote(): quotes = ["The greatest glory in living lies not in never falling, but in rising every time we fall. -Nelson Mandela","The way to get started is to quit talking and begin doing. -Walt Disney","Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma – which is living with the results of other people's thinking. -Steve Jobs","If life were predictable it would cease to be life, and be without flavor. -Eleanor Roosevelt","If you look at what you have in life, you'll always have more. If you look at what you don't have in life, you'll never have enough. -Oprah Winfrey","If you set your goals ridiculously high and it's a failure, you will fail above everyone else's success. -James Cameron","Life is what happens when you're busy making other plans. -John Lennon","Spread love everywhere you go. Let no one ever come to you without leaving happier. -Mother Teresa","When you reach the end of your rope, tie a knot in it and hang on. -Franklin","Always remember that you are absolutely unique. Just like everyone else. -Margaret Mead","I have a dream that one day this nation will rise up and live out the true meaning of its creed: “We hold these truths to be self-evident, that all men are created equal.” -Martin Luther King JR","When we stop counting, we begin to measure. -Stephen Hawking","Poor kids are just as bright and just as talented as white kids.– Joe Biden"] rng = random.choice(quotes) quote = {"quote": rng} return render_template("quote.html", rng = rng) @app.route("/randomnumber") def number(): min = request.args.get("min") max = request.args.get("max") rng = random.randint(int(min), int(max)) number = {"rez": rng, "min": min, "max": max } return number @app.route('/password') def password(): password = "" no = request.args.get("num") for _ in range(int(no)): password += random.choice("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%") dict = {"word": password, "length": no} return dict @app.route('/randDice') def dice(): sides = request.args.get("sides") numDices = request.args.get("num") sc = [] rez = [] sum = 0 for i in range(int(sides)): sc.append(i) for i in range(int(numDices)): rng = random.choice(sc) rez.append(rng) sum += rng dict= {"rez":rez, "sum":sum} return dict app.run(host='0.0.0.0', port=8080, debug=True) ``` ```html= <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body{ background-color: rgba(0, 255, 255, 0.4); } .btn { background: #3498db; background-image: -webkit-linear-gradient(top, #3498db, #2980b9); background-image: -moz-linear-gradient(top, #3498db, #2980b9); background-image: -ms-linear-gradient(top, #3498db, #2980b9); background-image: -o-linear-gradient(top, #3498db, #2980b9); background-image: linear-gradient(to bottom, #3498db, #2980b9); -webkit-border-radius: 28; -moz-border-radius: 28; border-radius: 28px; font-family: Arial; color: #ffffff; font-size: 20px; padding: 10px 20px 10px 20px; text-decoration: none; } .btn:hover { background: #3cb0fd; background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db); background-image: -moz-linear-gradient(top, #3cb0fd, #3498db); background-image: -ms-linear-gradient(top, #3cb0fd, #3498db); background-image: -o-linear-gradient(top, #3cb0fd, #3498db); background-image: linear-gradient(to bottom, #3cb0fd, #3498db); text-decoration: none; } section{ text-align: center; } </style> </head> <!-- HARRY MAGURE --> <body> <section> <h1>Vaja Flask vaje</h1> <a class="btn" href="/coinflip">Coin</a> <a class="btn" href="/randomquote">Quote</a> <a class="btn" href="/rndnum">Number</a> <a class="btn" href="/theword">Password</a> <a class="btn" href="/dice">Dice</a> <a class="btn" href="/investing">Investing</a> </section> </body> </html> ``` ```html= <!DOCTYPE html> <html lang="en"> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> <title>Document</title> </head> <body> <a href="/"><img src="https://cdn-icons-png.flaticon.com/512/93/93634.png" alt="" height="30px"></a> <h1>Dice</h1> <input type="number" id="side" placeholder="sides"> <input type="number" id="num" placeholder="number"> <button onclick="dice()">knof</button> <h3>Rezult</h3> <div id=rez></div> <br> <div id="sum"></div> <script> function dice() { let sides = document.getElementById("side").value; let num = document.getElementById("num").value; $.ajax({ url: "/randDice", data: { sides:sides, num:num, }, success: function( result ) { rez.innerHTML = result.rez; sum.innerHTML = result.sum; } }); } </script> </body> </html> ``` ```html= <!DOCTYPE html> <html lang="en"> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> <title>Document</title> </head> <body> <a href="/"><img src="https://cdn-icons-png.flaticon.com/512/93/93634.png" alt="" height="30px"></a> <h1>Coin Flip</h1> <button onclick="coinflip()">Flip</button> <h3 id="rez"></h3> <img id="img" src=""> <script> function coinflip() { $.ajax({ url: "/coinflipper", success: function( result ) { img.src = result.img; rez.innerHTML = result.rez; } }); } </script> </body> </html> ```