Giter VIP home page Giter VIP logo

microbit-am2320's Introduction

BBC micro:bit MicroPython AM2320 I2C

A micro:bit MicroPython library for interfacing with an Aosong AM2320 temperature and humidity sensor over I2C.

This library focuses on using the I2C interface. The sensor also supports a 1-wire interface, available when pin 4 is connected to GND.

demo

Examples

In these examples, I am using pins 13 and 15 for I2C clock and data, however, you can use any pin. Pins 13 and 15 are normally used for SPI. My Kitronik edge connector breakout board does not have pin headers soldered for the standard I2C pins 19 and 20 (where you can find the accelerometer and compass), otherwise I'd be using them.

Basic measurement

from microbit import *
import am2320

i2c.init(sda=pin15, scl=pin13)
sensor = am2320.AM2320(i2c)

sensor.measure()
print(sensor.temperature())
print(sensor.humidity())

Press Button A to measure, Button B to exit

from microbit import *
import am2320

i2c.init(sda=pin15, scl=pin13)
sensor = am2320.AM2320(i2c)

while True:
	if button_a.is_pressed():
		try:
			sensor.measure()
			display.scroll(str(sensor.temperature())+"c", 50)
		except OSError:
			display.scroll("Err")
	if button_b.is_pressed():
		display.scroll("End")
		break

Continuous measurement

from microbit import *
import am2320

i2c.init(sda=pin15, scl=pin13)
sensor = am2320.AM2320(i2c)

while True:
	try:
		sensor.measure()
		print(sensor.temperature())
		print(sensor.humidity())
		sleep(4000)
	except OSError:
		print("Error")
		sleep(1000)

Links

License

Licensed under the MIT License.

microbit-am2320's People

Contributors

mcauser avatar

Watchers

 avatar  avatar  avatar

Forkers

rhubarbdog

microbit-am2320's Issues

missing validation in am3220.py

between lines 24 and 25 the following code should be inserted
# check initial bytes
if buf[0]!=0x03 or buf[1]!=0x04:
raise Exception("invalid initial bytes")

possible bug in code am3220.py

hi,
from some raspberry pi code i have from the internet there is a possible bug in your code
after line 18 the following 2 lines should be there
#wait for at least 0.8ms but no more than 3ms
time.sleep_ms(1)

Whilst experimenting with things i have found to avoid pins 3,4,6,7,9 & 10 they are connected to LEDs and i think the external pull up resistors make some lines and columns not display
Also aviod pins 5 and 11 pressing the buttons creates signals to the chip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.