IHC temperatur protokol
21 Janurary, 2016
Det er muligt at sætte en temperatur føler en enkelt indgang på et IHC indput modul, og for temperatur værdien ind i IHC så det kan bruges til temperatur styring og lign. Desuden kan der være en ekstra “gulv” temperatur fra føleren. Den samme protokol kan bruges til en temperatur føler med fugtighedsmåler.Signalet består at de 3 værdier for temperatur, fugtighed, og gulvtemperatur og til sidst en 5 bits checksum. Hver værdi er i 1/10 dele og anvender 12bit. D.v.s signalet er totalt 12*3+5=41 bits
- Hver bit er ca 122ms
- En 1 bit starter med høj i 81ms og derefter lav 41ms
- En 0 bit starter med høj i 41ms og derefter lav 81ms
Beregning af checksum
Checksum beregnes som en nibble checksum (d.v.s. 4 bits ad gangen)
Et eksempel
Vi har en rum temperatur på 21,5 og gulvtemperatur på 19,2 grader. Temperaturene ganges med 10 og det giver:
21,5*10=215 = 11010111
19,2*10=192 = 1100000
Værdier kommer i rækkefølgen: rum temperatur, luftfugtighed
og gulvtemperatur
. Så nu har vi
0000 1101 0111 0000 0000 0000
0000 1100 0000
Nibble checksum (nul værdier udeladt):
1101 + 0111 + 1100 = 13+7+12 = 32 = 32 afrundes til 4 bit = 0
Den fulde pakke er nu:
0000 1101 0111 0000 0000 0000
0000 1100 0000
00000
Den sendes fra venstre til højre. Bemærk checksum er 5 bit selvom den er afrundet til 4 bit.
Special checksum hvis gulvtemperatur ikke er med
Når gulvtemperaturen ikke er med skal bit 5 sættes til 1 og bit 4 inverteres. (Mærkelig undtagelse som jeg ikke har nogen forklaring på)
Comments
The comments below has been imported from the old website. Currently comments are readonly, meaning you can not
make new comments.
You will be able to do that when it is ready. For now if you want to get in touch, you can send me an email.
If you have problems with something that has a github repository, please make a github issue.
Kan du give et par eksempler?Et eksempel er tilføjet ovenfor. Se e.v.t. koden i mit [ArduinoIHC ](http://www.dingus.dk/arduinoihc-now-in-library-manger/)library. (Hvis du ikke er vant til c/c++ og bit operationerer så er det måske lidt svært at forstå).Tak for denne artikel :)
Har ud fra dette, lavet en blok til WAGO, så IHC BIT produkterne kan bruges dertil.
Lux + temp IHC modul kører samme protokol
12 bit temp + 12 bit hvor kun 1 bit bliver brugt til LUX over 50, må være en slags skumre funktion + 12 bit lux + 5 bit checksum.Hi Jens
Can you send IHC Arduino temp sensor wiring sketch and sensor proposal as an advise?
ToDTry Google! - there are many examples of tempereture sensor for arduino. DHT22 is cheap and easy to use: [The arduino project website](https://create.arduino.cc/projecthub/mafzal/temperature-monitoring-with-dht22-arduino-15b013)Thx
Apologize for the to simple questions, can you send sketch connection towards IHC input module ArduinoYou can connect arduino and IHC directly - both are 5v ttl levels. Or you can use an optocoupler if you want to seperate them se here: [image at the bottom ](https://www.dingus.dk/arduinoihc/)
Note the optocoupler will invert the signal and you need to change IHC_HIGH,IHC_LOW in IHCOutput.h
Just make sure you do not connect an output to and output, and use the IHC data in/output (don't use output from IHC output modules - these are 24v levels)Hi Jens
IHCInput.cpp: In static member function 'static void IHCinput::_PinChangeInterrupt()':
C:\Users\10011989\Documents\Arduino\libraries\arduinoihc\IHCInput.cpp:90:17: error: 'PCintPort' has not been declared
I have used the standard libraries installed. Can´t get it to work (1.8.19), advice?
/TProblem Solved-> re-installedHi Jens
(New at this but getting there) plan is:
Arduino connect to IHC INP 24 via 1kohm GPIO8 IHC 8.18
DS18B20 One wire to D3 Arduino Nano or TX1)?
Onewire.h (Dallas) to read/serial print temp to Oled I2C on arduino (SCA A4 / SCL A5)
Please correct my set-up and necessary amendment.
T