ESP32: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 17: Строка 17:
 
=UART READ=
 
=UART READ=
 
<PRE>
 
<PRE>
>>> from machine import UART
+
from machine import UART
>>> uart = UART(1, 9600) # init with given baudrate
+
uart = UART(1, 9600) # init with given baudrate
>>> uart = UART(2, 9600) # init with given baudrate
+
uart = UART(2, 9600) # init with given baudrate
>>> uart.init(9600, bits=8, parity=None, stop=1)
+
uart.init(9600, bits=8, parity=None, stop=1)
>>> uart.read()
+
uart.read()
 
</PRE>
 
</PRE>
 
<PRE>
 
<PRE>

Версия 11:54, 28 июня 2019

ESP32

@DmZ:

Краткая инструкция:
1. Install SiLabs drivers
2. brew install esptool
3. https://docs.micropython.org/en/latest/esp32/tutorial/intro.html
4. screen /dev/tty.SLAB_USBtoUART 115200 (поиграться с питоном)
5. pip3 install mpfshell
6. https://github.com/wendlers/micropython-mfrc522
7. поменять в питоновых модулях esp8266 на esp32 и пины инициализации SPI в read/write.py
8. отредактировать и запустить deploy_esp.sh для копирования либ
9. зайти снова в скрин и попробовать почитать rfid

UART READ

from machine import UART
uart = UART(1, 9600)                         # init with given baudrate
uart = UART(2, 9600)                         # init with given baudrate
uart.init(9600, bits=8, parity=None, stop=1)
uart.read()
#!/usr/bin/env python


#l = b'\x025E00DD3417A0\x03\x025E00DD3417A0\x03'

#l = b'0DD3417A0\x03\x025E00DD3417A0\x0312113'
l= b'\x0259004E6A7805\x03\x0259004E6A7805\x03'
print(l)

read_ids = []
id = ""
start = False
stop = False
for char in l:
#    print(char)
#    print(int(char, 16))
    print hex(ord(char))
    if char == "\x02":
        print("found start")
        id = b""
        start = True

    elif char == "\x03":
        print("found stop")
        if start:
            read_ids.append(id)
        start = False
    else:
        id = id + char

print(read_ids)

for id in read_ids:
    print(int(id, 16))

Ультразвуковой датчик HC-SR04

import utime
import machine

PIN_TRIG=32
PIN_ECHO=35
ECHO_SLEEP=10
PAUSE=1
# 0.1 sec = 100000 us
MAX_READ_TIME=100000

def read():
    pin_echo = machine.Pin(PIN_ECHO, machine.Pin.IN)
    pin_trig = machine.Pin(PIN_TRIG, machine.Pin.OUT)
    pin_trig.on()
    utime.sleep_us(ECHO_SLEEP)
    pin_trig.off()
    deadline = utime.ticks_add(utime.ticks_us(), MAX_READ_TIME )

    while utime.ticks_diff(deadline, utime.ticks_us()) > 0:
        if pin_echo.value() == 1:
            pulse_start = True
            pulse_start_tics=utime.ticks_us();

            while pin_echo.value() == 1:
                utime.sleep_us(PAUSE)

            pulse_finish_tics=utime.ticks_us();
            time_diff = utime.ticks_diff(pulse_finish_tics, pulse_start_tics)

            # 34 mm  per 100 us
            distance_mm = 34 / 100 /2 * time_diff
            return(distance_mm)
    return(-1)


Модуль ИК-отражателя TCRT5000