ESP8266/Py: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
(lite strip)
(#044)
Line 2: Line 2:


== update firmware ==
== update firmware ==
Download latest "dirty" build, made at noisebridge, [[File:Esp8266-dirty-20170119-green.dat]]
https://github.com/nubcore/micropython/tree/%EB%88%95
<pre>
<pre>
esptool --port /dev/ttyUSB0 erase_flash
esptool --port /dev/ttyUSB0 erase_flash

Revision as of 23:47, 19 January 2017

microPython on ESP8266

update firmware

Download latest "dirty" build, made at noisebridge, File:Esp8266-dirty-20170119-green.dat

https://github.com/nubcore/micropython/tree/%EB%88%95

esptool --port /dev/ttyUSB0 erase_flash
esptool --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20161110-v1.8.6.bin 

blink/wink

>>> import machine
>>> led = machine.Pin(2, machine.Pin.OUT)
>>> led.high()
>>> led.low()
>>> from time import sleep
>>> def blink():
...     led.low()
...     sleep(0.5)
...     led.high()
... 
>>> blink()
>>> def wink():
...     led.low()
...     sleep(0.1)
...     led.high()
...     sleep(0.2)
...     led.low()
...     sleep(0.1)
...     led.high()
... 
>>> wink()

#505

#050 green strip
#005 blue

import time
from machine import Pin, PWM, Timer
from neopixel import NeoPixel

NEO_PIN = const(3)
NEO_LENGTH = const(60)

TIMER_INTERVAL = const(100)

blue = PWM(Pin(2))
blue.duty(512)

color = [14, 0, 32]

blue.duty(1023)
time.sleep(0.2)
blue.duty(0)
time.sleep(0.1)
blue.duty(999)

neo = NeoPixel(Pin(NEO_PIN), NEO_LENGTH)

t = Timer(-1)

def stripColor():
	global neo, color
	for x in range(0, NEO_LENGTH):
		if uos.urandom(1)[0] < 10:
			color[0] = uos.urandom(1)[0] // 2
			neo[x] = color
	neo.write()

def update(_t):
	stripColor()

def reboot():
	import machine
	time.sleep(2)
	machine.reset()

t.init(period=TIMER_INTERVAL, mode=Timer.PERIODIC, callback=update)
stripColor()

in/out w/weather

import dht
import machine
from machine import Pin
from time import sleep

d3 = machine.Pin(3, machine.Pin.OUT)
d0 = machine.Pin(0, machine.Pin.IN)
d2 = machine.Pin(2, machine.Pin.IN)
d4 = machine.Pin(4, machine.Pin.OUT)
d5 = machine.Pin(5, machine.Pin.OUT)

d = dht.DHT11(machine.Pin(1))

def callback(p):
 if p == d2:
  if d4.value() == 0:
   d4.high()
  else:
   d4.low()
  sleep(1)
  beep()
 elif p == d0:
  if d5.value() == 0:
   d5.high()
  else:
   d5.low()
  sleep(1)
  beep()
  beep()

d2.irq(trigger=Pin.IRQ_FALLING, handler=callback)
d0.irq(trigger=Pin.IRQ_FALLING, handler=callback)

def weather():
 d.measure()
 t = d.temperature()
 h = d.humidity()
 print(t, h)

def beep():
 d3.high()
 sleep(.1)
 d3.low()
 sleep(.2)

beep()
beep()
beep()

PS2'ish

>>> d0 = machine.Pin(4, machine.Pin.IN, machine.Pin.PULL_UP)
>>> d1 = machine.Pin(5, machine.Pin.IN, machine.Pin.PULL_UP)
>>> d0.value()
>>> 
>>> def callback(p):
...     print(p, p.value())
... 
>>> from machine import Pin
>>> d0.irq(trigger=Pin.IRQ_FALLING | Pin.IRQ_RISING, handler=callback)
>>> d1.irq(trigger=Pin.IRQ_FALLING | Pin.IRQ_RISING, handler=callback)
>>> import machine
>>> from machine import Pin
>>> import utime
>>> def callback(p):
...     print(utime.ticks_us())
... 
>>> d0 = machine.Pin(4, machine.Pin.IN)
>>> d0.irq(trigger=Pin.IRQ_FALLING, handler=callback)
<IRQ>
>>> 

'SPACE'
>>> 161328207
161328513
161328708
161328900
161405882
161406119
161406266
161406458
161406648
161406845
161408507
161408654
161408849
161409041
161409239
161409433

'SPACE'
165145125
165145405
165145596
165145797
165145992
165211956
165212194
165212385
165212586
165212782
165212928
165214540
165214737
165214934
165215129
165215276
165215469

'SPACE'
167842588
167842838
167843033
167843180
167843373
167920437
167920681
167920877
167921023
167921216
167921407
167923024
167923219
167923370
167923581
167923772
167923969
>>> 



>>> import machine
>>> from machine import Pin
>>> import utime
>>> def callback(p):
...     print(utime.ticks_us(), p.value(), p)
... 
>>> d0 = machine.Pin(4, machine.Pin.IN)
>>> d1 = machine.Pin(5, machine.Pin.IN)
>>> d0.irq(trigger=Pin.IRQ_FALLING, handler=callback)
<IRQ>
>>> d1.irq(trigger=Pin.IRQ_FALLING | Pin.IRQ_RISING, handler=callback)
<IRQ>
[SPACE]
>>> 210770016 1 Pin(5)
210770569 0 Pin(4)
210770865 1 Pin(5)
210771213 1 Pin(4)
210771514 1 Pin(5)
210847670 0 Pin(5)
210848033 1 Pin(4)
210848336 1 Pin(4)
210848682 1 Pin(5)
210848986 1 Pin(4)
210850323 1 Pin(5)
210850627 1 Pin(4)
210850921 0 Pin(5)
210851268 0 Pin(4)
210852497 1 Pin(5)

[SPACE]
214292169 0 Pin(5)
214292636 1 Pin(4)
214292932 1 Pin(5)
214293280 0 Pin(4)
214293580 1 Pin(5)
214402831 0 Pin(5)
214403247 0 Pin(4)
214403540 1 Pin(5)
214403890 0 Pin(4)
214405434 1 Pin(5)
214405740 0 Pin(4)
214406038 0 Pin(5)
214406336 0 Pin(4)
214406678 1 Pin(5)

[Caps]
>>> 223902923 1 Pin(5)
223903519 0 Pin(4)`
223903810 1 Pin(5)
223904113 1 Pin(4)
223904456 1 Pin(5)
223964179 0 Pin(5)
223964508 0 Pin(4)
223964806 0 Pin(4)
223965101 1 Pin(5)
223965451 1 Pin(4)
223966912 0 Pin(5)
223967413 0 Pin(4)
223967746 1 Pin(5)
223968047 0 Pin(4)
223968997 1 Pin(5)

[U]
>>> 231044948 1 Pin(5)
231045553 0 Pin(4)
231045848 1 Pin(5)
231046203 1 Pin(4)
231133566 0 Pin(5)
231133897 1 Pin(4)
231134194 0 Pin(4)
231134492 1 Pin(5)
231134842 1 Pin(4)
231136321 1 Pin(5)
231136711 0 Pin(4)
231137006 1 Pin(5)
231137305 0 Pin(4)
231138390 1 Pin(5)

[U]
>>> 232928590 1 Pin(5)
232929128 1 Pin(4)
232929436 1 Pin(5)
232929735 1 Pin(4)
232930084 1 Pin(5)
233011829 0 Pin(5)
233012233 1 Pin(4)
233012527 1 Pin(5)
233012829 0 Pin(4)
233014394 0 Pin(5)
233014699 0 Pin(4)
233014994 0 Pin(5)
233015294 0 Pin(4)
233015587 1 Pin(5)

[U]
>>> 234233385 1 Pin(5)
234233821 0 Pin(4)
234234119 1 Pin(5)
234234418 0 Pin(4)
234234713 1 Pin(5)
234311186 0 Pin(5)
234311583 0 Pin(4)
234311878 1 Pin(5)
234312179 0 Pin(4)
234313706 0 Pin(5)
234314064 0 Pin(4)
234314362 1 Pin(5)
234314665 0 Pin(4)
234314959 1 Pin(5)