python server page_Webserver:如何从本地webpage运行python脚本

我在非常好的pigpio library的帮助下,把我的Somfy sketch移植到Python,这样我的树莓派可以在早上打开百叶窗,日落后关闭百叶窗。在

一切正常,我很高兴。在

为了增加一点互动性,我希望能够通过一个由树莓派服务的网页来控制百叶窗。这意味着在按网页上的按钮时启动Python脚本。在

有n个百叶窗,所以页面上有3*n个按钮({UP,STOP,DOWN}代表每个盲人)。

它们可以用两个参数(blind和命令)触发同一个脚本,也可以为每个按钮触发不同的脚本(我不介意)。在

但我从来没有建立过网络服务器。我几乎不懂任何HTML,也从未使用过CGI,也不知道它是什么。在

所以,我的问题是:我能使用的最简单的(必须交付一个页面和触发器脚本)Web服务器是什么?在

使用什么HTML代码?在

最重要的是:单击按钮/链接将如何启动脚本(可能传递两个参数)?在

如何确保这只在本地工作(检查主机的IP,或在我的智能手机上下载证书,这是最简单的方法)?在

脚本位于somfy目录中。对于跟踪滚动代码和远程地址的文本文件也是如此。也可以放在那里吗?

如果你真的觉得你需要代码,我会给你,但我不确定是否有必要:def envoi_commande(telco, bouton):

checksum = 0

with open("somfy/" + telco + ".txt", 'r') as file:

data = file.readlines()

teleco = int(data[0], 16)

code = int(data[1])

data[1] = str(code + 1)

print hex(teleco)

print code

with open("somfy/" + telco + ".txt", 'w') as file:

file.writelines(data)

pi = pigpio.pi() # connect to Pi

if not pi.connected:

exit()

pi.wave_add_new()

pi.set_mode(TXGPIO, pigpio.OUTPUT)

print "Remote : " + "0x%0.2X" % teleco

print "Button : " + "0x%0.2X" % bouton

print "Rolling code : " + str(code)

print ""

frame[0] = 0xA7; # Encryption key. Doesn't matter much

frame[1] = bouton << 4 # Which button did you press? The 4 LSB will be the checksum

frame[2] = code >> 8 # Rolling code (big endian)

frame[3] = (code & 0xFF) # Rolling code

frame[4] = teleco >> 16 # Remote address

frame[5] = ((teleco >> 8) & 0xFF) # Remote address

frame[6] = (teleco & 0xFF) # Remote address

print "Frame : ",

for octet in frame:

print "0x%0.2X" % octet,

print ""

for i in range(0, 7):

checksum = checksum ^ frame[i] ^ (frame[i] >> 4)

checksum &= 0b1111; # We keep the last 4 bits only

frame[1] |= checksum;

print "With cks : ",

for octet in frame:

print "0x%0.2X" % octet,

print ""

for i in range(1, 7):

frame[i] ^= frame[i-1];

print "Obfuscated :",

for octet in frame:

print "0x%0.2X" % octet,

print ""

wf=[]

wf.append(pigpio.pulse(1<

wf.append(pigpio.pulse(0, 1<

for i in range(2):

wf.append(pigpio.pulse(1<

wf.append(pigpio.pulse(0, 1<

wf.append(pigpio.pulse(1<

wf.append(pigpio.pulse(0, 1<

for i in range (0, 56):

if ((frame[i/8] >> (7 - (i%8))) & 1):

wf.append(pigpio.pulse(0, 1<

wf.append(pigpio.pulse(1<

else:

wf.append(pigpio.pulse(1<

wf.append(pigpio.pulse(0, 1<

wf.append(pigpio.pulse(0, 1<

#2 (I repeat the frame)

for i in range(7):

wf.append(pigpio.pulse(1<

wf.append(pigpio.pulse(0, 1<

wf.append(pigpio.pulse(1<

wf.append(pigpio.pulse(0, 1<

for i in range (0, 56):

if ((frame[i/8] >> (7 - (i%8))) & 1):

wf.append(pigpio.pulse(0, 1<

wf.append(pigpio.pulse(1<

else:

wf.append(pigpio.pulse(1<

wf.append(pigpio.pulse(0, 1<

wf.append(pigpio.pulse(0, 1<

pi.wave_add_generic(wf)

wid = pi.wave_create()

pi.wave_send_once(wid)

while pi.wave_tx_busy():

pass

pi.wave_delete(wid)

pi.stop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值