micropython upip_一步一步使用uPyCraft学习MicroPython之UDP点亮LED

本帖最后由 沧海笑 于 2017-6-18 01:02 编辑

【一步一步使用uPyCraft学习MicroPython之UDP点亮LED】

【什么是uPyCraft】

是一款运行于Windows、Mac平台的MicroPython编程IDE,界面简洁,操作便利。内置了很多基础操作库。为众多MicroPython爱好者提供了一个简洁实用的平台。

【MicroPython入门帖】

【uPyCraft界面简介】

1_1.png (151.93 KB, 下载次数: 31)

2017-6-18 00:52 上传

【一步一步学习UDP点亮LED】

硬件清单

软件清单品名版本备注

uPyCraftV0.19DF出品MicroPython IDE

2016-10-04Modified SSD1306 driver from micropython Added hardware  horizontal scroll and a clear function

UDP Sender / ReceiverV1.0UDP客户端

UDP server 示例代码dfrobot

第一步:连接FireBeetle Board-ESP32,为upload程序做好准备

连接1.png (96.32 KB, 下载次数: 22)

2017-6-18 00:52 上传

连接2.png (43.44 KB, 下载次数: 32)

2017-6-18 00:52 上传

如果该程序是你新建或者从例题中调阅,则在编辑完毕后,需要在tools菜单中,选择下载并运行,如果已经在你的设备里了,你可以直接选择run

连接3.png (67.95 KB, 下载次数: 20)

2017-6-18 00:52 上传

连接4.png (283.33 KB, 下载次数: 20)

2017-6-18 00:52 上传

第二步:FireBeetle Board-ESP32端代码

[Python] 纯文本查看 复制代码import socket

import network

import time

from machine import Pin,I2C

import ssd1306

i2c = I2C(scl=Pin(22), sda=Pin(21), freq=100000)

lcd=ssd1306.SSD1306_I2C(128,64,i2c)

led = Pin(27,Pin.OUT) # configura gpio27---对应D4

led.value(0) #初始化熄灭led

port = 10000 #端口10000

SSID="*************" #yourssid

PASSWORD="****************" #your psw

wlan=None

s=None

def connectWifi(ssid,passwd): #配置wifi

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:

if(connectWifi(SSID, PASSWORD) == True): #连接成功

s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)

ip=wlan.ifconfig()[0]

s.bind((ip,port))

print('waiting...')

lcd.text("Connected...",0,0) #在oled屏显示Connected...

while True:

data,addr=s.recvfrom(1024)

print('received:',data,'from',addr)

lcd.clear()

lcd.text("Received:",0,16) #在oled屏显示收到的字符

lcd.text(data,24,32)

lcd.show()

s.sendto(data+"***",addr) #发送回udp 客户端,增加了“***”

if int(data)==1: #字符为1

led.value(1) #点亮led

else:#非1

led.value(0) #熄灭LED

except:

if (s):

s.close()

wlan.disconnect()

wlan.active(False)

第三步:连接硬件,配置UDP客户端

接线表Esp32

oledVcc3v3

GndGnd

SclPin22

SdaPin21

LedPin(red)Pin27

Gndgnd

第四步:UDP客户端发出字符1和非1,观察LED变化情况

udp.png (97.81 KB, 下载次数: 20)

2017-6-18 00:52 上传

1.jpg (158.76 KB, 下载次数: 24)

2017-6-18 00:52 上传

0.jpg (141.91 KB, 下载次数: 18)

2017-6-18 00:52 上传

小结:1、uPyCraft的出现,将玩家玩micropython for  esp32的门槛大幅下降,玩家不需要关注寻找可用的固件,寻找可用的烧写工具,在烧写中搞定琳琅满目的参数(比如首地址配置),不必担心板子被“玩死”、“变砖”。

uPyCraft亮点:(1)直观的代码编辑区,临时文件和设备文件的相互传送、便捷的文件维护功能以及临时文件对esp32的一键下载。(2)固件的自动修复等功能,其意义不亚于的出现。(3)玩家只需要关注你的应用,你打算玩什么,而不是在准备工具、原材料方面焦头烂额,尝试运气、浪费时间。你的挫败感会大幅下降,成功率和工作效率则会大大提升。

2、ssd1306.py是一个很棒的库,可惜原版本并没有clear清屏功能,在强大的github.com上搜到了一个修改版,作者很贴心地增加了这一功能,建议df团队可以考虑采纳此修改。

有了clear()后,这块0.96寸屏就非常方便地展示程序进程,提供交互信息。

3、找到一个合用的udp客户端程序,在google play上这类程序很多,我也是试用了其中一种,带有发送和结果回馈功能的APP,您也可以用自己习惯的APP。

4、能够控制LED了,那么接下来,小车当然可以驱动了。能够用APP玩,当然可以把另外一只esp32写成客户端,直接用esp32-a控制esp32-b,这毫无疑问。

5、arduino是动手的玩具,micropythonfor esp32 当然也是,本帖抛砖引玉,希望各位玩家能折腾出更有意思的玩具来。

6、再次感谢andy, 僵小懒 ,秦皇岛岛主等师兄,你们做出这么棒、国际范的IDE,客观地说,这项工作的意义怎么赞誉都不为过、其深远的影响不久会越发显现。

周末快乐!沧海抱拳。

(程序运行完,别忘记点击stop哦。。。。。)

附上新的ssd1306库,以及udp客户端的apk。

0618.zip

(721.19 KB, 下载次数: 98)

2017-6-18 00:54 上传

点击文件名下载附件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值