ATtiny – Modbus met DS18B20 Temperatuur sensor

Op deze pagina vind je een manier om ATTiny en een Max485 chip te gebruiken als modbus interface voor een Dallas 18B20 sensor.

Wat heb je nodig?

  • Hardware
    • ATTiny85 chip
    • Max485 chip (tbv modbus)
    • DS18B20 + Weerstand 4.7K

Sluit de onderdelen aan volgens onderstaand schema:

Script met Simplemodbus en Softwareserial

Stap 1

Stel softwareserial in om niet pin 0 en 1 te gebruiken maar 4 en 3, omdat veel bibliotheken waaronder ook I2C master/slave voor de attiny altijd op pin 0 en 1 (SDA/SCL) toegewezen is.

Bewerk het bestand in de libraries folder: SimpleModbusSlaveSoftwareSerial\SimpleModbusSlaveSoftwareSerial.cpp

En vervang:

SoftwareSerial mySerial(0, 1);

in

SoftwareSerial mySerial(4, 3);

Zodende hebben we nu deze pinout:

ATTINY Pin 0 = Dallas DS18B20 (oneWire)
ATTINY Pin 2 = Max485 RX/TX Enable
ATTINY  Pin 3 = Softwareserial TX (naar max485)
ATTINY  Pin 4 = Softwareserial RX (naar max485)

Een baudrate van 9600/4800/2400/1200 zou ik aanbevelen, hieronder ID1, met baudrate 2400 8N1

Uitlezen met functie 3:
– Register 0 = Temperatuur heel
– Register 1 = Temperatuur decimaal