yoon2566 commited on
Commit
d7d61b4
ยท
verified ยท
1 Parent(s): 41af28d

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -0
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import requests # requests ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€
3
+
4
+ def execute_get_request(token, virtual):
5
+ """Generates a GET request URL for Blynk API and executes the request."""
6
+ url = "https://blynk.cloud/external/api/get?token=" + token + '&' + virtual
7
+ try:
8
+ response = requests.get(url)
9
+ response.raise_for_status() # ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ HTTPError ์˜ˆ์™ธ ๋ฐœ์ƒ
10
+ response_text = response.text # ์‘๋‹ต ํ…์ŠคํŠธ ์ถ”์ถœ
11
+ except requests.exceptions.RequestException as e:
12
+ response_text = f"์š”์ฒญ ์‹คํŒจ: {e}" # ์—๋Ÿฌ ๋ฉ”์‹œ์ง€
13
+ return url, response_text # URL๊ณผ ์‘๋‹ต ํ…์ŠคํŠธ ๋ฐ˜ํ™˜
14
+
15
+ def create_push_url(token, virtual,value):
16
+ """Generates a PUSH request URL for Blynk API."""
17
+ url = "https://blynk.cloud/external/api/update?token=" + token + '&' + virtual + '=' + str(value)
18
+ try:
19
+ response = requests.get(url)
20
+ response.raise_for_status() # ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ HTTPError ์˜ˆ์™ธ ๋ฐœ์ƒ
21
+ response_text = response.text # ์‘๋‹ต ํ…์ŠคํŠธ ์ถ”์ถœ
22
+ except requests.exceptions.RequestException as e:
23
+ response_text = f"์š”์ฒญ ์‹คํŒจ: {e}" # ์—๋Ÿฌ ๋ฉ”์‹œ์ง€
24
+ return url
25
+
26
+ with gr.Blocks() as demo:
27
+ gr.Markdown("# Blynk ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์›น์•ฑ")
28
+
29
+ with gr.Row():
30
+ with gr.Column():
31
+ gr.Markdown("### ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ (GET)") # Section title for GET
32
+ get_token_textbox = gr.Textbox(label='ํ† ํฐ ๊ฐ’ (Token Value):') # Input for GET Token
33
+ get_virtual_pin_radio = gr.Radio(['V0','V1','V2','V3','V4'], label='Virtual Pin ์„ ํƒ (Virtual Pin Selection):') # Radio for GET Virtual Pin
34
+ generate_get_url_button = gr.Button("GET ์š”์ฒญ ์‹คํ–‰ (Execute GET Request)") # Button to trigger GET request (๋ฒ„ํŠผ ์ด๋ฆ„ ๋ณ€๊ฒฝ)
35
+ get_url_output_textbox = gr.Textbox(label='์ƒ์„ฑ๋œ GET URL (Generated GET URL):',show_copy_button=True) # Output textbox for GET URL
36
+ get_response_textbox = gr.Textbox(label='GET ์‘๋‹ต (GET Response):',show_copy_button=True) # ์‘๋‹ต ํ…์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ค„ ํ…์ŠคํŠธ ๋ฐ•์Šค ์ถ”๊ฐ€
37
+
38
+ generate_get_url_button.click(
39
+ fn=execute_get_request, # ํ•จ์ˆ˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ (์š”์ฒญ ์‹คํ–‰ ํ•จ์ˆ˜๋กœ ๋ณ€๊ฒฝ)
40
+ inputs=[get_token_textbox, get_virtual_pin_radio],
41
+ outputs=[get_url_output_textbox, get_response_textbox] # outputs์— ์‘๋‹ต ํ…์ŠคํŠธ ๋ฐ•์Šค ์ถ”๊ฐ€
42
+ )
43
+
44
+ with gr.Column():
45
+ gr.Markdown("### ๊ฐ’ ์„ค์ • (PUSH)") # Section title for PUSH
46
+ push_token_textbox = gr.Textbox(label='ํ† ํฐ ๊ฐ’ (Token Value):') # Input for PUSH Token
47
+ push_virtual_pin_radio = gr.Radio(['V0','V1','V2','V3','V4'], label='Virtual Pin ์„ ํƒ (Virtual Pin Selection):') # Radio for PUSH Virtual Pin
48
+ push_value = gr.Slider(1, 255, label='Virtual Pin ๊ฐ’ ์„ ํƒ')
49
+ generate_push_url_button = gr.Button("PUSH URL ์ƒ์„ฑ (Generate PUSH URL)") # Button to trigger PUSH URL generation
50
+ push_url_output_textbox = gr.Textbox(label='์ƒ์„ฑ๋œ PUSH URL (Generated PUSH URL):',show_copy_button=True) # Output textbox for PUSH URL
51
+
52
+ generate_push_url_button.click(
53
+ fn=create_push_url, # PUSH URL ์ƒ์„ฑ ํ•จ์ˆ˜๋Š” ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ
54
+ inputs=[push_token_textbox, push_virtual_pin_radio,push_value],
55
+ outputs=push_url_output_textbox
56
+ )
57
+
58
+ demo.launch()