7 import serial_asyncio # pyserial-asyncio Debian: python3-serial-asyncio
10 log = logging.getLogger(__name__)
17 def write(self, data: bytes):
18 self.buffer += data.decode()
21 class Receiver(asyncio.Protocol):
25 def connection_made(self, transport):
26 self.transport = transport
27 log.debug('port opened')
29 def data_received(self, data):
33 def connection_lost(self, exc):
34 log.debug('port closed')
35 self.transport.loop.stop()
39 parser = argparse.ArgumentParser('Logs CO2 and temperature from MH-Z19B sensor.')
40 parser.add_argument('--device', '-d', default='/dev/ttyACM0', help='Device where Arduino is connected to')
41 args = parser.parse_args()
42 logging.basicConfig(level=logging.INFO, format='%(asctime)-15s %(message)s')
43 loop = asyncio.get_event_loop()
44 coro = serial_asyncio.create_serial_connection(loop, Receiver, args.device, baudrate=115200)
45 loop.run_until_complete(coro)
50 if __name__ == '__main__':