Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cs:hw:05-sensors:iaq [2021/08/04 07:40]
avsetula [Kam dál?]
cs:hw:05-sensors:iaq [2021/08/10 06:59] (current)
avsetula
Line 40: Line 40:
  
 <​html><​span class="​kbBlueText">​Možno použít:</​span></​html>​ <​html><​span class="​kbBlueText">​Možno použít:</​span></​html>​
-  * ve spojení s PLC Unipi jako prvek **v systémech MaR** s protokolem **ModbusRTU/​TCP**+  * ve spojení s jednotkou ​Unipi jako prvek **v systémech MaR** s protokolem **ModbusRTU/​TCP**
   * ve spojení se systémem třetí strany pomocí rozhraní RS485, či WiFi a s vhodným komunikačním protokolem   * ve spojení se systémem třetí strany pomocí rozhraní RS485, či WiFi a s vhodným komunikačním protokolem
   * samostatně s připojením do sítě WiFi s možností přístupu přes webové rozhraní   * samostatně s připojením do sítě WiFi s možností přístupu přes webové rozhraní
Line 61: Line 61:
  
 <​html><​span class="​kbBlueText">​Možno použít:</​span></​html>​ <​html><​span class="​kbBlueText">​Možno použít:</​span></​html>​
-  * ve spojení s PLC Unipi jako prvek **v systémech MaR** s protokolem **ModbusRTU/​TCP**+  * ve spojení s jednotkou ​Unipi jako prvek **v systémech MaR** s protokolem **ModbusRTU/​TCP**
   * ve spojení se systémem třetí strany pomocí rozhraní RS485, či WiFi a s vhodným komunikačním protokolem   * ve spojení se systémem třetí strany pomocí rozhraní RS485, či WiFi a s vhodným komunikačním protokolem
   * samostatně s připojením do sítě WiFi s možností přístupu přes webové rozhraní   * samostatně s připojením do sítě WiFi s možností přístupu přes webové rozhraní
Line 84: Line 84:
  
 <​html><​span class="​kbBlueText">​Možno použít:</​span></​html>​ <​html><​span class="​kbBlueText">​Možno použít:</​span></​html>​
-  * ve spojení s PLC Unipi jako prvek **v systémech MaR** s protokolem **ModbusRTU/​TCP**+  * ve spojení s jednotkou ​Unipi jako prvek **v systémech MaR** s protokolem **ModbusRTU/​TCP**
   * ve spojení se systémem třetí strany pomocí rozhraní RS485, či WiFi a s vhodným komunikačním protokolem   * ve spojení se systémem třetí strany pomocí rozhraní RS485, či WiFi a s vhodným komunikačním protokolem
   * samostatně s připojením do sítě WiFi s možností přístupu přes webové rozhraní   * samostatně s připojením do sítě WiFi s možností přístupu přes webové rozhraní
Line 106: Line 106:
  
 <​html><​span class="​kbBlueText">​Možno použít:</​span></​html>​ <​html><​span class="​kbBlueText">​Možno použít:</​span></​html>​
-  * ve spojení s PLC Unipi jako prvek **v systémech MaR** s protokolem **ModbusRTU/​TCP**+  * ve spojení s jednotkou ​Unipi jako prvek **v systémech MaR** s protokolem **ModbusRTU/​TCP**
   * ve spojení se systémem třetí strany pomocí rozhraní RS485, či WiFi a s vhodným komunikačním protokolem   * ve spojení se systémem třetí strany pomocí rozhraní RS485, či WiFi a s vhodným komunikačním protokolem
   * samostatně s připojením do sítě WiFi s možností přístupu přes webové rozhraní   * samostatně s připojením do sítě WiFi s možností přístupu přes webové rozhraní
Line 114: Line 114:
  
  
 +===== Kód dekodéru rámce LoRa =====
 +Příklad binárního dekodéru části přenášených dat (payload). Názvy funkcí jsou v souladu se sítí ''​The Things Network''​. ​
 +
 +
 +<​code>​
 +function getBit(number,​ bitPosition) {
 +  return (number & (1 << bitPosition)) === 0 ? 0 : 1;
 +}
 +function Decoder(bytes,​ port) {
 +  // Decode an uplink message from a buffer
 +  // (array) of bytes to an object of fields.
 +  var decoded = {};
 +  if (getBit(bytes[0],​0)) {
 +    decoded.temperature = ((bytes[2] << 8) | bytes[1]) / 100 - 100;
 +    decoded.relative_humidity = bytes[3] / 2.5;
 +  }
 +  if (getBit(bytes[0],​1)) decoded.pressure = ((bytes[5] << 8) | bytes[4]) / 100 + 800;
 +  if (getBit(bytes[0],​2)) {
 +    decoded.voc_index = ((bytes[7] << 8) | bytes[6]) & 0x01FF;
 +    decoded.voc_accuracy = ((bytes[7] << 8) | bytes[6]) >> 9 & 0x0003;
 +  }
 +  if (getBit(bytes[0],​3)) decoded.ambient_light = Math.exp(bytes[8] / 20) - 1;
 +  if (getBit(bytes[0],​4)) decoded.co2 = ((bytes[10] << 8) | bytes[9]);
 +  if (getBit(bytes[0],​5)) {
 +    decoded.pm10 = (((bytes[13] << 16) | (bytes[12] << 8) | bytes[11]) >> 12) & 0x000FFF / 4;
 +    decoded.pm2_5 = ((bytes[13] << 16) | (bytes[12] << 8) | bytes[11]) & 0x000FFF / 4;
 +  }
 +  if (getBit(bytes[0],​6)) {
 +    decoded.noise_duration = (bytes[14] / 2);
 +    decoded.noise_intensity = (bytes[15] / 5) + 25;
 +  }
 +  return decoded;
 +}
 +</​code>​
  
  
Line 119: Line 153:
  
 <​tile>​ <​tile>​
-| cs:​files:​products:​05-sensors ​                                                          ​| Dokumentace a firmware ke stažení ​ | :​en:​files:​unipi-kb-icon-os.png ​        | +| cs:​files:​products:​05-sensors:iaq            ​| Dokumentace a firmware ke stažení ​ | :​en:​files:​unipi-kb-icon-os.png ​        | 
-https://​www.unipi.technology/​cs/​interierovy-senzor-kvality-vzduchu-p299?​categoryId=43 ​ | Koupit na e-shopu Unipi            | :​en:​files:​unipi-kb-icon-shop.png ​         |+| cs:hw:05-sensors:iaq-eshop-redirect-hidden ​ | Koupit na e-shopu Unipi            | :​en:​files:​unipi-kb-icon-shop.png ​      ​|
 </​tile>​ </​tile>​