ATtiny – Modbus met DHT sensor

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

Wat heb je nodig?

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

Sluit de onderdelen aan volgens onderstaand schema:

Script met Simplemodbus, Softwareserial en SimpleDHT

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 = DHT sensor
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
– Register 1 = Luchtvochtigheid

Voorbeeld met DHT22 sensor en tijdinterval

Uitlezen met functie 3:
– Register 0 = Temperatuur HEEL
– Register 1 = Temperatuur DECIMAAL
– Register 2 = Luchtvochtigheid HEEL
– Register 3 = Luchtvochtigheid DECIMAAL