5 changed files with 241 additions and 0 deletions
@ -0,0 +1,19 @@ |
|||
import board |
|||
import digitalio |
|||
import time |
|||
|
|||
elecio = digitalio.DigitalInOut(board.GP7) |
|||
elecio.direction = digitalio.Direction.INPUT |
|||
|
|||
def mesure_electricity(): |
|||
try: |
|||
# print(elecio.value) |
|||
return elecio.value |
|||
except: |
|||
return 1 |
|||
|
|||
if __name__ == "__main__": |
|||
while True: |
|||
# print(dropio.value) |
|||
time.sleep(1) |
|||
print(mesure_electricity()) |
@ -0,0 +1,155 @@ |
|||
import board |
|||
import busio |
|||
import digitalio |
|||
import adafruit_requests as requests |
|||
from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K |
|||
import adafruit_wiznet5k.adafruit_wiznet5k_socket as socket |
|||
import time |
|||
import rtc |
|||
import adafruit_hashlib as hashlib |
|||
from light import flash_led |
|||
from config import IP_ADDR,MAC_ADDR,NET_MASK,GATEWAY,DNS,SECRET,SERVER_URL,SN,TIMESPAN,A_FIRE,A_TEMP,A_HUM |
|||
|
|||
rt = rtc.RTC() |
|||
ipl = IP_ADDR.split('.') |
|||
nml = NET_MASK.split('.') |
|||
gwl = GATEWAY.split('.') |
|||
dnl = DNS.split('.') |
|||
macl = MAC_ADDR.split(':') |
|||
print(macl) |
|||
ipaddr = (int(ipl[0]),int(ipl[1]),int(ipl[2]),int(ipl[3])) |
|||
macaddr = (int(macl[0],16),int(macl[1],16),int(macl[2],16),int(macl[3],16),int(macl[4],16),int(macl[5],16)) |
|||
netmask = (int(nml[0]),int(nml[1]),int(nml[2]),int(nml[3])) |
|||
gateway = (int(gwl[0]),int(gwl[1]),int(gwl[2]),int(gwl[3])) |
|||
dns = (int(dnl[0]),int(dnl[1]),int(dnl[2]),int(dnl[3])) |
|||
|
|||
# Setup your network configuration below |
|||
print("Wiznet5k WebClient Test (no DHCP)") |
|||
print(time.localtime()) |
|||
cs = digitalio.DigitalInOut(board.GP17) |
|||
spi_bus = busio.SPI(board.GP18, MOSI=board.GP19, MISO=board.GP16) |
|||
|
|||
# Initialize ethernet interface without DHCP |
|||
eth = WIZNET5K(spi_bus, cs, is_dhcp=False, mac=macaddr) |
|||
# Set network configuration |
|||
|
|||
def eth_init(): |
|||
global eth |
|||
global ipaddr,netmask,gateway,dns # Set network configuration |
|||
nok = True |
|||
try: |
|||
eth.ifconfig = (ipaddr, netmask, gateway, dns) |
|||
print("Chip Version:", eth.chip) |
|||
print("MAC Address:", [hex(i) for i in eth.mac_address]) |
|||
print("My IP address is:", eth.pretty_ip(eth.ip_address)) |
|||
print("Link Status:", eth.link_status) |
|||
time.sleep(0.1) |
|||
requests.set_socket(socket, eth) |
|||
except: |
|||
nok = False |
|||
return nok |
|||
# eth.ifconfig = (ipaddr, netmask, gateway, dns) |
|||
|
|||
def check_time(): |
|||
global rt |
|||
# requests.set_socket(socket, eth) |
|||
print('Updating time ...') |
|||
# eth._debug = True |
|||
try: |
|||
gdata = {'spot':SN,'timespan':TIMESPAN,'afire':A_FIRE,'atemp':A_TEMP,'ahum':A_HUM} |
|||
print(gdata) |
|||
servtime = get_data(SERVER_URL+'/env/time/', gdata) |
|||
rt.datetime = time.localtime(int(servtime)) |
|||
except: |
|||
pass |
|||
# print(r.datetime) |
|||
|
|||
def check_netstatus(): |
|||
global eth |
|||
stcode = 1 |
|||
try: |
|||
if eth.link_status: |
|||
flash_led('normal') |
|||
stcode = 0 |
|||
else: |
|||
flash_led('alarm') |
|||
stcode = 1 |
|||
except: |
|||
pass |
|||
return stcode |
|||
|
|||
def get_token(): |
|||
global rt |
|||
try: |
|||
stamp = str(rt.datetime[0])+'##'+str(rt.datetime[3]%10) |
|||
print(stamp) |
|||
m = hashlib.sha1() |
|||
m.update((SECRET+stamp).encode('utf-8')) |
|||
return m.hexdigest() |
|||
except: |
|||
return '' |
|||
|
|||
def parse_data(data): |
|||
res = '' |
|||
try: |
|||
if isinstance(data, dict): |
|||
t = [] |
|||
for k in data: |
|||
t.append(k+'='+str(data[k])) |
|||
res = '&'.join(t) |
|||
except: |
|||
pass |
|||
return res |
|||
|
|||
def get_data(server_addr, data): |
|||
if not server_addr: |
|||
print('Server address must be set.') |
|||
return False |
|||
# Initialize a requests object with a socket and ethernet interface |
|||
#requests.set_socket(socket, eth) |
|||
print('Geting data :'+server_addr) |
|||
# eth._debug = True |
|||
res = 'No data received.' |
|||
try: |
|||
r = requests.get(server_addr+'?'+parse_data(data), **{'timeout':0.1}) |
|||
res = r.text |
|||
print(res) |
|||
r.close() |
|||
except: |
|||
pass |
|||
return res |
|||
|
|||
def postdata(server_addr,data): |
|||
if not server_addr: |
|||
print('Server address must be set.') |
|||
return False |
|||
# Initialize a requests object with a socket and ethernet interface |
|||
requests.set_socket(socket, eth) |
|||
data['token']= get_token() |
|||
print('Token is :'+data['token']) |
|||
print('Sending data :'+server_addr) |
|||
# eth._debug = True |
|||
requests.request('POST',server_addr,data=data) |
|||
return True |
|||
|
|||
def post_data(server_addr,data): |
|||
if not server_addr: |
|||
print('Server address must be set.') |
|||
return False |
|||
try: |
|||
data['token']= get_token() |
|||
print('Token is :'+data['token']) |
|||
print('Sending data :'+server_addr) |
|||
# eth._debug = True |
|||
r = requests.post(server_addr,**{'data':data,'timeout':0.1}) |
|||
r.close() |
|||
except: |
|||
pass |
|||
return True |
|||
|
|||
if __name__ == "__main__": |
|||
eth_init() |
|||
get_data('http://172.18.17.136:8000/env/cmd/',{'spot':'WJSPJ001'}) |
|||
# post_data('http://2.54.41.27:8000/env/api/',{'errno':0,'electricity':True,'temperature':28.5,'humidity':50,'water':False,'fire':8800}) |
|||
# post_data('http://192.168.2.76:8000/env/api/',{'sn':'WJSPJ002','errno':0,'electricity':True,'temperature':29.5,'humidity':56,'water':False,'fire':3800}) |
|||
# post_test('http://www.changzhou.gov.cn/ns_class/06v86ba2') |
@ -0,0 +1,35 @@ |
|||
import board |
|||
import busio |
|||
import digitalio |
|||
|
|||
ledpins = [] |
|||
ledpins.append(digitalio.DigitalInOut(board.GP12)) |
|||
ledpins.append(digitalio.DigitalInOut(board.GP11)) |
|||
ledpins.append(digitalio.DigitalInOut(board.GP10)) |
|||
ledpins.append(digitalio.DigitalInOut(board.GP6)) |
|||
ledpins.append(digitalio.DigitalInOut(board.GP13)) |
|||
ledpins.append(digitalio.DigitalInOut(board.GP14)) |
|||
ledpins.append(digitalio.DigitalInOut(board.GP15)) |
|||
|
|||
for ledpin in ledpins: |
|||
ledpin.direction = digitalio.Direction.OUTPUT |
|||
|
|||
displist = ( |
|||
(1, 0, 0, 0, 0, 0, 0), |
|||
(1, 1, 1, 0, 0, 1, 1), |
|||
(0, 1, 0, 0, 1, 0, 0), |
|||
(0, 1, 0, 0, 0, 0, 1), |
|||
(0, 0, 1, 0, 0, 1, 1), |
|||
(0, 0, 0, 1, 0, 0, 1), |
|||
(0, 0, 0, 1, 0, 0, 0), |
|||
(1, 1, 0, 0, 0, 1, 1), |
|||
(0, 0, 0, 0, 0, 0, 0), |
|||
(0, 0, 0, 0, 0, 0, 1), |
|||
(0, 0, 0, 0, 0, 1, 0) |
|||
) |
|||
|
|||
def show_num(number): |
|||
for i in range(7): |
|||
ledpins[i].value = displist[number][i] |
|||
|
|||
|
@ -0,0 +1,16 @@ |
|||
import board |
|||
import busio |
|||
import digitalio |
|||
|
|||
normal_led = digitalio.DigitalInOut(board.GP22) |
|||
alarm_led = digitalio.DigitalInOut(board.GP21) |
|||
normal_led.direction = digitalio.Direction.OUTPUT |
|||
alarm_led.direction = digitalio.Direction.OUTPUT |
|||
|
|||
def flash_led(mode='normal'): |
|||
if mode == 'normal': |
|||
normal_led.value = True |
|||
alarm_led.value = False |
|||
else: |
|||
normal_led.value = False |
|||
alarm_led.value = True |
@ -0,0 +1,16 @@ |
|||
import board |
|||
import analogio |
|||
import time |
|||
|
|||
smk = analogio.AnalogIn(board.GP27) |
|||
def mesure_smoke(): |
|||
try: |
|||
# print(smk.value) |
|||
return smk.value |
|||
except: |
|||
return 0 |
|||
|
|||
if __name__ == "__main__": |
|||
while True: |
|||
print(mesure_smoke()) |
|||
time.sleep(1) |
Loading…
Reference in new issue