|
代码
- import time
- from machine import Pin
- import network
- from umqtt.simple import MQTTClient
- import json
- import gc
- device_id = "esp0004"
- wifi_ssid='FAST_20CC'
- wifi_password='409409409'
- mqtt_serverip='192.168.1.113'
- mqtt_serverport=1883
- mqtt_clientid=device_id
- mqtt_publishtopic=b'espiot'
- message_template = {}
- message_template['source_device'] = mqtt_clientid
- message_template['target_device'] = 'server'
- message_template['msg_type'] = 'ReportDistance'
- led=Pin(2,Pin.OUT)
- led.on()
- # D2
- trig = machine.Pin(4,machine.Pin.OUT)
- # D1
- echo = machine.Pin(5,machine.Pin.IN)
- def distance():
- trig.value(1)
- time.sleep_us(10)
- trig.value(0)
- while echo.value() == 0:
- pass
- while echo.value() == 1:
- ts = time.ticks_us()
- while echo.value() == 1:
- pass
- te = time.ticks_us()
- tc = te - ts
- distance = round((tc*170)/10000, 2)
- return distance
- def connectionWifi(ssid, password):
- wlan = network.WLAN(network.STA_IF)
- wlan.active(True)
- wlan.connect(ssid, password)
- while True:
- if not wlan.isconnected():
- led.on()
- time.sleep_ms(1000)
- led.off()
- time.sleep_ms(1000)
- else:
- print('connected to network')
- led.on()
- break
- if __name__=='__main__':
- print ("start")
-
- connectionWifi(wifi_ssid,wifi_password)
-
- client = MQTTClient(mqtt_clientid,mqtt_serverip,mqtt_serverport)
- client.connect()
-
- while True:
- time.sleep(3)
- message_template['distance'] = str(distance())
-
- client.publish(mqtt_publishtopic,json.dumps(message_template))
-
- gc.collect()
复制代码
截图
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|