12297| 1
|
[uPyCraft IDE] 一步一步使用uPyCraft学习MicroPython之TCP上送温度至物联网 |
本帖最后由 沧海笑 于 2017-6-18 23:26 编辑 【一步一步使用uPyCraft学习MicroPython之TCP上送温度物联网】 【本期主要内容】 上一期我们一起初步了解了uPyCraft这个很棒的IDE,学习用uPyCraft及其官方例题,修改了一个实用的小程序,用MicroPython 之UPD控制LED灯。 本期我们继续深入学习MicroPython。将esp32设置为TCP client,采集LM35,将温度上送至物联网(我们继续使用tlink.io) 好吧,现在我们就开始学习之旅。 【硬件准备】
【软件准备】
【一步一步学习】 第一步:硬件接线 接线表
第二步:配置物联网侧。 在tlink.io申请一个注册账号,然后设置设备----提取序列号。详情请看该网站的开发者中心http://tlink.io/help.htm。 另外,我为dfrobot评测的几篇小文,也被有幸收录到开源案例中,也可作为参考: http://tlink.io/case/dfrobot_three.htm 第三步:FireBeetle Board-ESP32侧代码准备 [mw_shl_code=python,true]import network import socket import time from machine import Pin,I2C,ADC import ssd1306 i2c = I2C(scl=Pin(22), sda=Pin(21), freq=100000) lcd=ssd1306.SSD1306_I2C(128,64,i2c) adc0=ADC(Pin(36)) #LM35 PIN--A0 SSID="your ssid" PASSWORD="your psw" host="tcp.tlink.io" port=8647 wlan=None s=None def connectWifi(ssid,passwd): global wlan wlan=network.WLAN(network.STA_IF) wlan.active(True) wlan.disconnect() wlan.connect(ssid,passwd) while(wlan.ifconfig()[0]=='0.0.0.0'): time.sleep(1) return True try: #while True: connectWifi(SSID,PASSWORD) ip=wlan.ifconfig()[0] s = socket.socket() s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.connect((host,port)) #s.send("hello DFRobot,I am TCP Client") s.send("your serial number") #第一次连接后,需要发送序列号,仅一次即可 time.sleep(2) #延时2S lcd.clear() lcd.text("TCP connect..",0,16) i=10 #发送十次 while(i>0): print(i) i-=1 temperature = adc0.read()*0.001409587904157*10*2 #该系数的计算另帖讨论 up_temp=str("%.2f" % temperature) up_temp="#RTU,"+up_temp+"#" #组合出上送的数据标签 s.send(up_temp) print(up_temp) lcd.clear() lcd.text(up_temp,24,32) #显示上送的数据标签 lcd.text("Countdown:"+str(i),0,48) #显示倒计次数 lcd.show() time.sleep(10) #延时10S while True: data = s.recv(1024) if(len(data) == 0): print("close socket") s.close() break print(data) ret = s.send(data) except: if (s): s.close() wlan.disconnect() wlan.active(False)[/mw_shl_code] 第四步:上送10次温度数据(间隔10秒) 【小结】 今天我们一起学习了利用TCP client上送温度数据至物联网。而且上送了一组(10次)数据,今后我们还要学习低功耗,我希望FireBeetle Board-ESP32以及oled正常在休眠状态,在收到外部中断激活后,上送10组数据,然后继续休眠。这是下一个玩具啦,也希望玩家跟帖给我提出更好的建议,你对外部中断激活以及低功耗运行有什么好建议,也希望一起探讨交流。谢谢。沧海抱拳。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed