ESP-32, ESP8266, micropython, STM32

VMP

ESP32 espressif.com
Arduino core for the ESP32
ESP32
ESP32: знакомимся, пишем и запускаем первую прошивку 2016
Wi-Fi модуль ESP-32
Знакомимся с ESP32, часть 1: установка в Arduino IDE
Бюджетный отладчик к ESP-32 и его настройка 2018
Tools ESP32
Как настроить статический IP-адрес в ESP32
ESP32 Static/Fixed IP Address
Find ESP32/ESP8266 IP Address on a WiFi Network using mDNS Home » Articles » Wireless » Find ESP32/ESP8266 IP Address on a WiFi Network using mDNS
Wi-Fi Driver ESP32 Wi-Fi Feature List
ESP32-DevKitC
ESP32 Access point (AP) and Station web server with HTML using Arduino IDE
Настройка Arduino IDE для модуля ESP32 WROOM
Steps to install Arduino ESP32 support on Windows
9-DOF IMU using ESP32 and MPU9250
ESP32 full library for all MPU6000 MPU6050 MPU6500 MPU9150 MPU9250 with SPI and I2C support and more
ESP32 and MPU-9250 sensor example
ESP32 + MPU9250: 3D Orientation Visualisation
ESP32 + MPU9250: визуализация трехмерной ориентации
arduinoWebSockets
Create A Simple ESP32 Weather Station With BME280
Create A Simple ESP32 Web Server In Arduino IDE
ESP32 Basic Over The Air (OTA) Programming In Arduino IDE
ESP32 Web Updater Over The Air (OTA) Programming In Arduino IDE
Getting Date & Time From NTP Server With ESP32
Configuring & Handling ESP32 GPIO Interrupts In Arduino IDE
NodeMcu Connect Things EASY
Первый взгляд на NodeMCU V3 Lua
NodeMCU Documentation
ESP8266 NodeMCU Прошивка
ESP32
ESP-8266/ESP32 NodeMCU Lua: азы программирования
Quick reference for the ESP32
Create A Simple ESP32 Web Server In Arduino IDE
MicroPython downloads
ESP32 I2C
Flash/Upload MicroPython Firmware to ESP32 and ESP8266
nodemcu-firmware
LuaNode For ESP32 This project is an improved Lua SDK, based on ESP-IDF/ESP8266_RTOS_SDK, for Esp32 (comp The hardware , developed by DOIT Team
Getting started with MicroPython on the ESP32
esptool ESP8266 and ESP32 serial bootloader utility
LED
arudino-maxmatrix-library
cascade 8×8 led display using MaxMatrix library from https://code.google.com/p/arudino-maxmatrix-library/
LedControl A library for the MAX7219 and the MAX7221 Led display drivers
Arduino UNO Based HUB75 LED DISPLAY DRIVER
Часы из светодиодной панели

ESP32 + MPU9250: 3D orientation visualisation
MPU9250, good news
MPU9250 Arduino Library List
Arduino library for MPU9250 Nine-Axis (Gyro + Accelerometer + Compass) MEMS MotionTracking™ Device
The M5Stack GRAY is a development kit based on ESP32 chip. You can even program The M5Stack GRAY through Blockly, Arduino or MicroPython

ESP32 Technical Tutorials: MPU6050 Accelerometer

LUA
ESP-8266/ESP32 Lua: азы программирования NodeMCU
NodeMCU. Web-server — простой веб-сервер!
Обзор, установка и программирование на ESP32
Lua-RTOS for ESP32
NodeMCU Documentation NodeMCU is an open source Lua based firmware for the ESP32 and ESP8266 WiFi SOC from Espressif
Lua-RTOS-ESP32


Отладка ESP32 в PlatformIO
esp32-camera
Firebase Realtime Database Arduino Client Library for ESP32
Arduino core for the ESP32
Espressif IoT Development Framework. Official development framework for ESP32
LittlevGL ported to ESP32 using ILI9341 display controller
Arduino library for Heltec ESP32 (or ESP32+LoRa) based boards
Arduino core for the ESP32
ESP32:Примеры/Веб-сервер на базе ESP32, настроенный с помощью IDE Arduino
ESP 32 devki tv1 — ошибка библиотеки ( установка в Arduino IDE ) и PIN»ы как их читать
Увеличение количества входов/выходов ESP8266/ESP32/Arduino
Трюки Ваяем сниффер на ESP32. Слушаем вайфай, прицеливаемся на блютус!
ESP32
ESP32: Веб-сервер

интернет радио на ESP32
espressif.com-tools
Esptool для ESP8266
Подготовка к программированию ESP8266 на micropython
espressif/esptool ESP8266 and ESP32 serial bootloader utility
Quick reference for the ESP32
Arduino core for the ESP32
the internet of things with esp-32
ESP32 A Different IoT Power and Performance

NodeMcu Connect Things EASY An open-source firmware and development kit that helps you to prototype your IOT product within a few Lua script lines

ESP32: знакомимся, пишем и запускаем первую прошивку 2016
JavaScript для умного дома. Arduino устарел, да здравствует ESP32!
Wi-Fi модуль ESP-32
Обзор и технические характеристики платы ESP32
ESP32:Модули/ESP32-WROOM-32
ESP32 Youtube

Espressif IoT Development Framework. Official development framework for ESP32.
ESP-IDF Programming Guide
ESP32 English Forum
RTOS & Embedded Software
lwIP — A Lightweight TCP/IP stack
JeeUIFramework – ВЕБ интерфейс и конфигуратор для ESP8266 и ESP32
PlatformIO is an open source ecosystem for IoT development
esp32 Youtubemicropython
MicroPython
MicroPython downloads
Getting started with MicroPython on the ESP8266
MicroPython tutorial for ESP8266
Quick reference for the ESP32
General information about the ESP32 port
Getting started with MicroPython on the ESP32

Micro Python — эффективная реализация Python 3 для микроконтроллеров 2014
MicroPython — a lean and efficient Python implementation for microcontrollers and constrained systems https://micropython.org
Документация Micro Python
MicroPython Forum
MicroPython Forum ESP32 boards
VK Micropython pyboard
200+ Electronics Projects and Tutorials
ESP32/ESP8266 MicroPython Web Server – Control Outputs
uPyCraft
Install uPyCraft IDE – Windows PC Instructions
GitHub uPyCraft
upycraft
ESP32 MicroPython: Getting started with the uPyCraft IDE
Picoweb
Picoweb Really minimal web application framework for Pycopy/MicroPython and its «uasyncio» async framework
ESP32 MicroPython: HTTP Webserver with Picoweb
How to make ESP32 as HTTP webserver using MicroPython ?
ESP32 MicroPython Tutorial: HTTP Webserver with Picoweb
ESP32 Picoweb Tutorial: Serving JSON content
MicroPython Python Experiments for the ESP32
ESP32 MicroPython Tutorial: Serving HTML from the file system in Picoweb

Slim Web Server on MicroPython 1.9.4 for ESP32 | Легкий Веб Сервер | Python 3.6
A micro HTTP Web server that supports WebSockets, html/python language templating and routing handlers, for MicroPython (used on Pycom modules & ESP32) https://microwebsrv.hc2.fr

Network — TCP sockets
Send data via websocket from ESP32 to server?
Сокеты в Python 3: TCP, клиент, сервер

ESP32 MicroPython: HTTP Webserver with Picoweb

ESP32 MicroPython Web Server
Raspberry Pi ESP32 MicroPython Web Server Tutorial

Кодинг Прыжок в облако. Строим бюджетное решение для интернета вещей на NodeMCU + Azure IoT Hub
ESP8266 с чего начать или первый опыт 2016
Начало работы с ESP8266 NodeMcu v3 Lua с WiFi
esp8266 — Сообщество разработчиков
ESP8266:Примеры/Прошивка ESP8266 методом OTA
ESPCut IDE for ESP8266 Lua and Micropython
EsPy Micropython IDE for ESP8266

pip install esptool
Чтение прошивки
esptool.py —port COM32 read_flash 0x00000 0x100000 esp8266-backup.bin
esptool.py — запуск утилиты;
–port COM19 — номер COM-порта устройства. Узнайте ваш номер в диспетчере задач;
read_flash — команда считывания данных из флэш-памяти;
0x00000 — адрес начала считывания флэш-памяти;
0x10000 — адрес конца считывания флэш-памяти;
esp8266-backup.bin — имя файла для считываемой прошивки.

Чтение прошивки и backup
esptool.py —port COM32 read_flash 0x00000 0x100000 esp8266-backup.bin
Далее очищаем флеш-память устройства
esptool.py —port COM32 erase_flash
прошивка
esptool.py —port com32 —baud 460800 write_flash —flash_size=detect 0 esp8266-20190125-v1.10.bin
Дождитесь окончания прошивки.

HTML5 Book
I2C
Quick reference for the ESP32
Quick reference for the ESP8266
MicroPython I2C driver for MPU9250 9-axis motion tracking device
MicroPython Programming Tutorial: Getting Started with the ESP32 Thing
list of awesome MicroPython libraries, frameworks, software and resources.

MicroPython примеры
«help()» for more information
>>> help()
Welcome to MicroPython on the ESP32!
For generic online docs please visit http://docs.micropython.org/

For access to the hardware use the ‘machine’ module:
import machine
pin12 = machine.Pin(12, machine.Pin.OUT)
pin12.value(1)
pin13 = machine.Pin(13, machine.Pin.IN, machine.Pin.PULL_UP)
print(pin13.value())
i2c = machine.I2C(scl=machine.Pin(21), sda=machine.Pin(22))
i2c.scan()
i2c.writeto(addr, b’1234′)
i2c.readfrom(addr, 4)

Basic WiFi configuration:

import network
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.scan() # Scan for available access points
sta_if.connect(«», «») # Connect to an AP
sta_if.isconnected() # Check for successful connection

Control commands:
CTRL-A — on a blank line, enter raw REPL mode
CTRL-B — on a blank line, enter normal REPL mode
CTRL-C — interrupt a running program
CTRL-D — on a blank line, do a soft reset of the board
CTRL-E — on a blank line, enter paste mode

For further help on a specific object, type help(obj)
For a list of available modules, type help(‘modules’)

from machine import Pin

p0 = Pin(0, Pin.OUT) # create output pin on GPIO0
p0.on() # set pin to «on» (high) level
p0.off() # set pin to «off» (low) level
p0.value(1) # set pin to on/high

p2 = Pin(2, Pin.IN) # create input pin on GPIO2
print(p2.value()) # get value, 0 or 1

p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor
p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation

from machine import Pin, PWM

pwm0 = PWM(Pin(0)) # create PWM object from a pin
pwm0.freq() # get current frequency
pwm0.freq(1000) # set frequency
pwm0.duty() # get current duty cycle
pwm0.duty(200) # set duty cycle
pwm0.deinit() # turn off PWM on the pin

pwm2 = PWM(Pin(2), freq=20000, duty=512) # create and configure in one go

from machine import ADC

adc = ADC(Pin(32)) # create ADC object on ADC pin
adc.read() # read value, 0-4095 across voltage range 0.0v — 1.0v

adc.atten(ADC.ATTN_11DB) # set 11dB input attentuation (voltage range roughly 0.0v — 3.6v)
adc.width(ADC.WIDTH_9BIT) # set 9 bit return values (returned range 0-511)
adc.read()

from machine import Pin, SPI

# construct an SPI bus on the given pins
# polarity is the idle state of SCK
# phase=0 means sample on the first edge of SCK, phase=1 means the second
spi = SPI(baudrate=100000, polarity=1, phase=0, sck=Pin(0), mosi=Pin(2), miso=Pin(4))

spi.init(baudrate=200000) # set the baudrate

spi.read(10) # read 10 bytes on MISO
spi.read(10, 0xff) # read 10 bytes while outputing 0xff on MOSI

buf = bytearray(50) # create a buffer
spi.readinto(buf) # read into the given buffer (reads 50 bytes in this case)
spi.readinto(buf, 0xff) # read into the given buffer and output 0xff on MOSI

spi.write(b’12345′) # write 5 bytes on MOSI

buf = bytearray(4) # create a buffer
spi.write_readinto(b’1234′, buf) # write to MOSI and read from MISO into the buffer
spi.write_readinto(buf, buf) # write buf to MOSI and read MISO back into buf

Hardware SPI bus
There are two hardware SPI channels that allow faster (up to 80Mhz) transmission rates, but are only supported on a subset of pins.
HSPI (id=1) VSPI (id=2)
sck 14 18
mosi 13 23
miso 12 19

Hardware SPI has the same methods as Software SPI above:

from machine import Pin, SPI

hspi = SPI(1, 10000000, sck=Pin(14), mosi=Pin(13), miso=Pin(12))
vspi = SPI(2, baudrate=80000000, polarity=0, phase=0, bits=8, firstbit=0, sck=Pin(18), mosi=Pin(23), miso=Pin(19))

I2C bus

The I2C driver is implemented in software and works on all pins, and is accessed via the machine.I2C class:

from machine import Pin, I2C

# construct an I2C bus
i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)

i2c.readfrom(0x3a, 4) # read 4 bytes from slave device with address 0x3a
i2c.writeto(0x3a, ’12’) # write ’12’ to slave device with address 0x3a

buf = bytearray(10) # create a buffer with 10 bytes
i2c.writeto(0x3a, buf) # write the given buffer to the slave

Real time clock (RTC)

See machine.RTC

from machine import RTC

rtc = RTC()
rtc.datetime((2017, 8, 23, 1, 12, 48, 0, 0)) # set a specific date and time
rtc.datetime() # get date and time

Deep-sleep mode

The following code can be used to sleep, wake and check the reset cause:

import machine

# check if the device woke from a deep sleep
if machine.reset_cause() == machine.DEEPSLEEP_RESET:
print(‘woke from a deep sleep’)

# put the device to sleep for 10 seconds
machine.deepsleep(10000)

Notes:

Calling deepsleep() without an argument will put the device to sleep indefinitely
A software reset does not change the reset cause

OneWire driver

The OneWire driver is implemented in software and works on all pins:

from machine import Pin
import onewire

ow = onewire.OneWire(Pin(12)) # create a OneWire bus on GPIO12
ow.scan() # return a list of devices on the bus
ow.reset() # reset the bus
ow.readbyte() # read a byte
ow.writebyte(0x12) # write a byte on the bus
ow.write(‘123′) # write bytes on the bus
ow.select_rom(b’12345678′) # select a specific device by its ROM code

There is a specific driver for DS18S20 and DS18B20 devices:

import time, ds18x20
ds = ds18x20.DS18X20(ow)
roms = ds.scan()
ds.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(ds.read_temp(rom))

Be sure to put a 4.7k pull-up resistor on the data line. Note that the convert_temp() method must be called each time you want to sample the temperature.
NeoPixel driver

Use the neopixel module:

from machine import Pin
from neopixel import NeoPixel

pin = Pin(0, Pin.OUT) # set GPIO0 to output to drive NeoPixels
np = NeoPixel(pin, 8) # create NeoPixel driver on GPIO0 for 8 pixels
np[0] = (255, 255, 255) # set the first pixel to white
np.write() # write data to all pixels
r, g, b = np[0] # get first pixel colour

For low-level driving of a NeoPixel:

import esp
esp.neopixel_write(pin, grb_buf, is800khz)

Warning

By default NeoPixel is configured to control the more popular 800kHz units. It is possible to use alternative timing to control other (typically 400kHz) devices by passing timing=0 when constructing the NeoPixel object.
Capacitive Touch

Use the TouchPad class in the machine module:

from machine import TouchPad, Pin

t = TouchPad(Pin(14))
t.read() # Returns a smaller number when touched

TouchPad.read returns a value relative to the capacitive variation. Small numbers (typically in the tens) are common when a pin is touched, larger numbers (above one thousand) when no touch is present. However the values are relative and can vary depending on the board and surrounding composition so some calibration may be required.

There are ten capacitive touch-enabled pins that can be used on the ESP32: 0, 2, 4, 12, 13 14, 15, 27, 32, 33. Trying to assign to any other pins will result in a ValueError.

Note that TouchPads can be used to wake an ESP32 from sleep:

import machine
from machine import TouchPad, Pin
import esp32

t = TouchPad(Pin(14))
t.config(500) # configure the threshold at which the pin is considered touched
esp32.wake_on_touch(True)
machine.sleep() # put the MCU to sleep until a touchpad is touched

For more details on touchpads refer to Espressif Touch Sensor.
DHT driver

The DHT driver is implemented in software and works on all pins:

import dht
import machine

d = dht.DHT11(machine.Pin(4))
d.measure()
d.temperature() # eg. 23 (°C)
d.humidity() # eg. 41 (% RH)

d = dht.DHT22(machine.Pin(4))
d.measure()
d.temperature() # eg. 23.6 (°C)
d.humidity() # eg. 41.3 (% RH)

WebREPL (web browser interactive prompt)

WebREPL (REPL over WebSockets, accessible via a web browser) is an experimental feature available in ESP32 port. Download web client from https://github.com/micropython/webrepl (hosted version available at http://micropython.org/webrepl), and configure it by executing:

import webrepl_setup

and following on-screen instructions. After reboot, it will be available for connection. If you disabled automatic start-up on boot, you may run configured daemon on demand using:

import webrepl
webrepl.start()

# or, start with a specific password
webrepl.start(password=’mypass’)

Ex

from machine import Pin

p0 = Pin(0, Pin.OUT) # create output pin on GPIO0
p0.on() # set pin to «on» (high) level
p0.off() # set pin to «off» (low) level
p0.value(1) # set pin to on/high

p2 = Pin(2, Pin.IN) # create input pin on GPIO2
print(p2.value()) # get value, 0 or 1

p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor
p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation

#Ex
from machine import Pin
import time

p = Pin(2, Pin.OUT)

for i in range(5):
print(i)
time.sleep_ms(500)
p.low()
time.sleep_ms(500)
p.high()
#Ex
from machine import Pin
pin = Pin(13, Pin.OUT)
pin.high()
pin.low()

#Ex1
import pyb
# turn on an LED
pyb.LED(1).on()
# print some text to the serial console
print(‘Hello MicroPython!’)

#Ex2
from machine import Pin

# create an I/O pin in output mode
p = Pin(‘X1’, Pin.OUT)

# toggle the pin
p.high()
p.low()
#Ex3
from machine import Pin, I2C

# creat an I2C bus
i2c = I2C(scl=Pin(‘X1’), sda=Pin(‘X2′))

# scan for list of attached devices
dev_list = i2c.scan()

# write to and read from a device
i2c.writeto(0x42, b’4′)
data = i2c.readfrom(0x42, 4)

# memory transactions
i2c.writeto_mem(0x42, 0x12, b’’)
data = i2c.readfrom_mem(0x42, 0x12, 2)
#Ex4
from machine import Pin

# create an I/O pin in output mode
p = Pin(‘X1’, Pin.OUT)

# toggle the pin
p.high()
p.low()

#Ex5
# MicroPython has an inline assembler
import micropython
# define a Thumb-code inline-assembler function
@micropython.asm_thumb
def asm_add(r0, r1):
add(r0, r0, r1)

# use it as a normal Python function
total = asm_add(1, 2)
#Ex6
import os

# list root directory
print(os.listdir(‘/’))

# print current directory
print(os.getcwd())

# open and read a file from the SD card
with open(‘/sd/readme.txt’) as f:
print(f.read())
#Ex7
import machine
# set CPU frequency to 84MHz
machine.freq(84000000)


ESP32, Micropython, что где и как

Что может Python на микроконтроллерах» Андрей Власовских, JetBrains

Программируем электронику на языке Python Денис Хаит

MicroPython #1 — Lets Get Started

Bluetooth и ESP32, Micropython

Программа OpenMV-IDE и ESP32, Micropython
MicroPython Pyboard D-серии с микроконтроллером STM32F7, WiFi и Bluetooth


ESP32, более мощная чем любая другая Ардуино


ESP32. Что под капотом? 2CPU, RTOS, Ethernet, Bluetooth…


Как перейти с Arduino IDE на PlatformIO

Веб интерфейс для ESP8266 и ESP32 JeeUI Framework


M5stack универсальная платформа для создания проектов ESP32 в новом облике


ESP32 для начинающих. Первые шаги с Arduino IDE


ESP32. Что под капотом? 2CPU, RTOS, Ethernet, Bluetooth…


Прошивка и работа с модулем NodeMCU ESP8266


Микроконтроллер NODE MCU достойная замена Ардуино


STM32 c чего начать?Быстрый старт с нуля.

STM32. Урок 9. GPIO. Программирование портов ввода вывода. Скорость работы GPIO

ESP32 включают в себя
Микроконтроллер и управление
Tensilica Xtensa LX6 двухъядерный (или одноядерный) 32-разрядный процессор, с тактовой частотой 160 или 240 МГц и производительностью до 600 DMIPS (Dhrystone IMPS)
Сопроцессор с ультранизким энергопотреблением
Память: 520 КБ памяти SRAM
Беспроводная связь:
Wi-Fi: 802.11 b / g / N
Bluetooth: v4.2 BR/EDR and BLE
Периферийные интерфейсы:
12-разрядный АЦП до 18 каналов
2 × 8 бит ЦАПа
10 × портов для подключения емкостных датчиков (измеряющие ёмкость GPIO)
Датчик температуры
4 × SPI мастер-интерфейса (ведущие устройства)
2 × I²S мастер-интерфейса
2 × I²C мастер-интерфейса
3 × UART интерфейса
SD/SDIO/CE-ATA/MMC/ eMMC хост-контроллер
SDIO/SPI слейв-контроллеры (ведомые устройства)
Ethernet MAC interface с выделенным DMA и IEEE 1588 Precision Time Protocol support
CAN bus 2.0
ИК дистанционное управление (передатчик/приемник, до 8 каналов)
Возможность подключения двигателей и светодиодов через ШИМ-выход
Датчик Холла
Аналоговый предусилитель низкого энергопотребления
Безопасность:
Поддерживаются все функции безопасности стандарта IEEE 802.11, в том числе WFA, WPA/WPA2 и WAPI
Безопасная загрузка
Шифрование флэш-диска
1024-битный ключ, до 768 бит для клиентов
Криптографическое аппаратное ускорение: AES, SHA-2, RSA, криптографии на основе эллиптических кривых (ЕСС), аппаратный генератор случайных чисел при включеном WiFi или Bluetooth, иначе используется генератор псевдослучайных чисел
Управление питанием:
Линейный регулятор с низким уровнем падения напряжения
Индивидуальнное питание для RTC
потребление 5 мкА в режиме «глубокий сон»
Пробуждение по прерыванию от GPIO, таймера, измерению АЦП, прерыванию емкостного сенсорного датчика
Firebase Realtime Database Arduino Client Library for ESP32


ESP32, более мощная чем любая другая Ардуино

Contents

Libraries

Audio

Communications

Bluetooth

Ethernet

  • Official wiznet5k — Official driver for the WIZnet5x00 series of Ethernet controllers.

GPS

IR

OneWire

Radio

RFID

RTC

WiFi

Display

E-Paper

LCD Character

LCD Graphic

LCD TFT

LED Matrix

LED Segment

LEDs

OLED

  • Grove_OLED — Driver for SSD1327 used by SeeedStudio’s Grove OLED Display 1.12″ v1.0.
  • micropython-oled — Collection of drivers for monochrome OLED displays, PCD8544, SH1106, SSD1306, UC1701X.
  • micropython-ssd1327 — Driver for SSD1327 128×128 4-bit greyscale OLED displays.
  • micropython-ssd1351 — Driver for SSD1351 OLED displays.
  • MicroPython_SSD1306 — ESP8266 driver for SSD1306 OLED 128×64 displays.
  • Official SSD1306 — Driver for SSD1306 128×64 OLED displays.
  • SH1106 — Driver for the SH1106 OLED display.

IO

ADC

  • ads1x15 — Driver for the ADS1015/ADS1115 ADC, I2C interface.
  • micropython-ads1015 — ADS1015 12-Bit and ADS1115 16-bit ADC, 4 channels with programmable gain, I2C interface.
  • Micropython_ADS1115 — ADS1115 16-bit ADC, 4 channels with programmable gain, I2C interface.

DAC

IO-Expander

Joystick

Waveform Generator

Motion

DC Motor

  • L298N — Driver for the L298N dual h-bridge motor controller.

Servo

Stepper

Sensors

Accelerometer Digital

Air Quality

Barometer

  • micropython-bme280 — Driver for the Bosch BME280 temperature/pressure/humidity sensor.
  • micropython-bmp180 — Driver for Bosch BMP180 temperature, pressure and altitude sensor.
  • mpy_bme280_esp8266 — Bosch BME280 temperature/pressure/humidity sensor.
  • wipy_bme280 — Driver for the Bosch BME280 temperature/pressure/humidity sensor.

Camera

Compass

Current

Distance IR

Distance Ultrasonic

Energy

Gaseous

Light

Motion Inertial

Soil Moisture

Temperature Analog

  • micropython-max31855 — Thermocouple amplifier, SPI interface.
  • max31856 — Precision thermocouple to digital converter with linearization, SPI interface.

Temperature Digital

Temperature IR

Touch Capacitive

Touch Resistive

Community

Books

Resources

Miscellaneous