Electric Dollar Store
The LM75B is a temperature-to-digital converter with an I²C interface. The temperature register is an 11-bit signed quantity, giving a resolution of 0.125 °C.
import sys
import time
from i2cdriver import I2CDriver, EDS
if __name__ == '__main__':
    i2 = I2CDriver(sys.argv[1])
    d = EDS.Temp(i2)
    for i in range(20):
        celsius = d.read()
        fahrenheit = celsius * 9/5 + 32
        sys.stdout.write("%.1f C  %.1f F\n" % (celsius, fahrenheit))
        time.sleep(.1)
#include <Wire.h>
float temp_read()
{
  Wire.requestFrom(0x48, 2);
  byte h = Wire.read();
  byte l = Wire.read();
  return ((h << 3) | (l >> 5)) * 0.125;
}
void setup() {
  Serial.begin(115200);
  Wire.begin();
}
void loop() {
  Serial.println(temp_read());
  delay(20);
}
from machine import I2C
import struct
import time
class Temp:
    """ TEMP is an LM75B temperature sensor """
    def __init__(self, i2, a = 0x48):
        self.i2 = i2
        self.a = a
    def regrd(self, r):
        return struct.unpack(">h", self.i2.readfrom_mem(self.a, 0, 2))[0]
    def read(self):
        return (self.regrd(0) >> 5) * 0.125
def main():
    i2 = I2C(1, freq = 100000)
    print(i2.scan())
    d = Temp(i2)
    while True:
        print("%.3f C" % d.read())
        time.sleep(.05)
| Default I²C address | 0x48 (0b1001000) |         
| Current consumption (typ.) | 5 mA | 
| Vcc | 3.3 V |