OpeniKair

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(Overview)
(PM2.5)
 
(未显示1个用户的13个中间版本)
第1行: 第1行:
 
== Overview ==
 
== Overview ==
  
[[文件:Ikair-base-board-1.jpg]]
+
[[文件:Ikair-01.jpg | 555px]][[文件:Ikair-base-board-1.jpg]]
  
  
第28行: 第28行:
 
* HCHO 甲醛传感器之 i2c address 是 0x28 (40, decode: 0x50)
 
* HCHO 甲醛传感器之 i2c address 是 0x28 (40, decode: 0x50)
 
* PM2.5 部件的 i2c address 是 0x30 (48, decode: 0x60)
 
* PM2.5 部件的 i2c address 是 0x30 (48, decode: 0x60)
* SHT2x 温湿度传感器的 i2c address 是 0x40 (64, decode: 0x80)
+
 
 +
以上这些由 STM8S105K6 模拟 i2c slave 设备的部件,都对 0x00 的 i2c 地址有响应。。。可以认为 0x00 是他们的广播地址。。。
 +
 
 +
 
 
* BH1750 光照度传感器之 i2c address 是 0x5C (92, decode: 0xB8)
 
* BH1750 光照度传感器之 i2c address 是 0x5C (92, decode: 0xB8)
 +
* SHT2x 温湿度传感器的 i2c address 是 0x40 (64, decode: 0x80)
 +
 +
 +
SHT2x 传感器在 USB 线上耳机接口部件内,USB_SCL, USB_SDA 分别连接到 CC2531 之 PIN15 和 PIN16
 +
 +
CC2531 的 PIN9 和 PIN11 则分别连接到统一的 I2C_SCL 和 I2C_SDA
  
 
<br><br>
 
<br><br>
第38行: 第47行:
  
 
[[文件:STM8S105K-QFP32-pinmap.jpg]]
 
[[文件:STM8S105K-QFP32-pinmap.jpg]]
 +
 +
=== PM2.5 ===
 +
 +
* PIN14 --- PPDNS_PIN2
 +
* PIN16 --- PPDNS_PIN4
 +
 +
 +
'''LED_RING:'''
 +
* R:  P8, P13, P25, P17, P18, P19
 +
* G:  P20, P21, P22, P23, P24,  P26
 +
* B:  P27, P28, P29, P30, P31, P32
 +
 +
<br><br>
 +
 +
== CC2531 ==
 +
 +
[[文件:Cc2531-pinmap.jpg]]
  
 
<br><br>
 
<br><br>
第198行: 第224行:
 
bytes: 34 1D 63 7D 46 46 4C 02 38 00 00 00
 
bytes: 34 1D 63 7D 46 46 4C 02 38 00 00 00
 
</source>
 
</source>
 
<br>
 
 
=== Temp & Humi ===
 
 
* Type is SHT21/SHT2x
 
 
* i2c address is 0x40
 
  
 
<br>
 
<br>
第248行: 第266行:
 
</source>
 
</source>
 
<br>
 
<br>
 
=== Light Sensor ===
 
 
* Type is BH1750
 
* i2c address is 0x5C
 
 
 
* '''BH1750:'''
 
** ADDR-> LOW (Pull down), i2c address is 0x23
 
** ADDR-> HIGH (Pull up), i2c address is 0x5C
 
 
<br><br>
 
  
 
=== Base Station ===
 
=== Base Station ===
  
 +
* 环形三色灯,执行部件
 +
* MIC,噪声传感器
 
* i2c address is 0x08
 
* i2c address is 0x08
  
第334行: 第342行:
  
 
<br><br>
 
<br><br>
 +
 +
=== Light Sensor ===
 +
 +
位于头部件 (Head) 内
 +
 +
* Type is BH1750
 +
* i2c address is 0x5C
 +
 +
 +
* '''BH1750:'''
 +
** ADDR-> LOW (Pull down), i2c address is 0x23
 +
** ADDR-> HIGH (Pull up), i2c address is 0x5C
 +
 +
<br><br>
 +
 +
=== Temp & Humi ===
 +
 +
* Type is SHT21/SHT2x
 +
 +
* i2c address is 0x40
 +
 +
<br>
  
 
== TODO ==
 
== TODO ==

2018年12月14日 (五) 17:37的最后版本

目录

[编辑] 1 Overview

Ikair-01.jpgIkair-base-board-1.jpg


基座:

  • 一片 TI CC3000 (WiFi)
  • STM8S105K6
  • TI CC2531 (Zigbee)


每个可拆卸部件,内部都有一颗 STM8S105K6,模拟 i2c slave device

所有的部件通过一个 4 pin 的快拆口连接,从圆外往圆心数,其定义为:

  • 5V
  • SCL (测试点常常标为 15) <=== STM8S105K6_PIN12 (I2C_SCL)
  • SDA (测试点常常标为 14) <=== STM8S105K6_PIN11 (I2C_SDA)
  • GND


所有部件的 STM8S105K6 的 PIN11 (I2C_SDA) 都连到统一的 SDA; PIN12 (I2C_SCL) 都连到统一的 SCL


  • 底座的 i2c address 是 0x08 (8, decode: 0x10)
  • 顶盖带触摸的 i2c address 是 0x10 (16, decode: 0x20)
  • HCHO 甲醛传感器之 i2c address 是 0x28 (40, decode: 0x50)
  • PM2.5 部件的 i2c address 是 0x30 (48, decode: 0x60)

以上这些由 STM8S105K6 模拟 i2c slave 设备的部件,都对 0x00 的 i2c 地址有响应。。。可以认为 0x00 是他们的广播地址。。。


  • BH1750 光照度传感器之 i2c address 是 0x5C (92, decode: 0xB8)
  • SHT2x 温湿度传感器的 i2c address 是 0x40 (64, decode: 0x80)


SHT2x 传感器在 USB 线上耳机接口部件内,USB_SCL, USB_SDA 分别连接到 CC2531 之 PIN15 和 PIN16

CC2531 的 PIN9 和 PIN11 则分别连接到统一的 I2C_SCL 和 I2C_SDA



[编辑] 2 STM8S105K6

STM8S105K6 Datasheet

STM8S105K-QFP32-pinmap.jpg

[编辑] 2.1 PM2.5

  • PIN14 --- PPDNS_PIN2
  • PIN16 --- PPDNS_PIN4


LED_RING:

  • R: P8, P13, P25, P17, P18, P19
  • G: P20, P21, P22, P23, P24, P26
  • B: P27, P28, P29, P30, P31, P32



[编辑] 3 CC2531

Cc2531-pinmap.jpg



[编辑] 4 Hacking

[编辑] 4.1 Dust Sensor

  • i2c address is 0x30
  • Type is PPD42NS, a STM8S105K6 MCU emulating a i2c slave device
l`▒▒▒Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00

Reading i2c device...
bytes: 34 AD 3E E0 45 45 61 01 5F 00 00 00
Reading i2c device...
bytes: 34 A1 A4 25 46 46 E6 08 C5 00 00 00

Reading i2c device...
bytes: 34 FC C6 52 46 46 E8 0C 50 00 00 00
Reading i2c device...
bytes: 34 C1 2F B9 46 46 20 0C 93 00 00 00
Reading i2c device...
bytes: 34 0A 05 82 46 46 4D 09 C4 00 00 00
Reading i2c device...
bytes: 34 C7 3A BF 46 46 80 09 6F 00 00 00
Reading i2c device...
bytes: 34 8D 97 ED 46 46 4C 07 F7 00 00 00
Reading i2c device...
bytes: 34 74 B9 38 46 46 94 08 C9 00 00 00


Reading i2c device...
bytes: 34 0F 09 7F 46 46 54 07 8B 00 00 00
Reading i2c device...
bytes: 34 19 EC 4F 46 46 D5 10 12 00 00 00
Reading i2c device...
bytes: 34 CC 0C A2 46 46 00 13 3C 00 00 00
Reading i2c device...
bytes: 34 D9 44 DD 46 46 9E 0D 25 00 00 00
Reading i2c device...
bytes: 34 15 0F 83 46 46 F5 0A B3 00 00 00
Reading i2c device...
bytes: 34 8C 84 FA 46 46 A4 08 54 00 00 00
......
concentration = 1292.44 pcs/L, 365.76 pcs/0.01cf, LowPulsOccu = 211526, Ratio = 0.71
concentration = 2019.79 pcs/L, 571.60 pcs/0.01cf, LowPulsOccu = 331231, Ratio = 1.10
concentration = 830.56 pcs/L, 235.05 pcs/0.01cf, LowPulsOccu = 135637, Ratio = 0.45
concentration = 2811.53 pcs/L, 795.66 pcs/0.01cf, LowPulsOccu = 461557, Ratio = 1.54
concentration = 1997.89 pcs/L, 565.40 pcs/0.01cf, LowPulsOccu = 327624, Ratio = 1.09
concentration = 1817.27 pcs/L, 514.29 pcs/0.01cf, LowPulsOccu = 297887, Ratio = 0.99

concentration = 13836.23 pcs/L, 3915.65 pcs/0.01cf, LowPulsOccu = 2139899, Ratio = 7.13
concentration = 3388.41 pcs/L, 958.92 pcs/0.01cf, LowPulsOccu = 556358, Ratio = 1.85
concentration = 4074.18 pcs/L, 1152.99 pcs/0.01cf, LowPulsOccu = 668694, Ratio = 2.23
concentration = 2964.61 pcs/L, 838.99 pcs/0.01cf, LowPulsOccu = 486733, Ratio = 1.62
concentration = 6126.22 pcs/L, 1733.72 pcs/0.01cf, LowPulsOccu = 100705, Ratio = 3.34
concentration = 4440.79 pcs/L, 1256.74 pcs/0.01cf, LowPulsOccu = 728527, Ratio = 2.43


Another PM2.5:

Reading i2c device...
bytes: 00 00 00 00 00 00 00 00 00 00 00 00
Reading i2c device...
bytes: 34 ED B0 0E 45 43 ED 00 00 00 00 00
Reading i2c device...
bytes: 34 93 F0 D0 46 4F 93 00 00 00 00 00
Reading i2c device...
bytes: 34 9F F0 DC 46 4F 9F 00 00 00 00 00
Reading i2c device...
bytes: 34 63 D4 D8 46 4F 63 00 00 00 00 00
Reading i2c device...
bytes: 34 54 08 C4 45 42 54 00 00 00 00 00
Reading i2c device...
bytes: 34 54 08 C4 45 42 54 00 00 00 00 00
Reading i2c device...
bytes: 34 54 08 C4 45 42 54 00 00 00 00 00
Reading i2c device...
bytes: 34 5E 20 9F 45 43 5E 00 00 00 00 00
Reading i2c device...
bytes: 34 5E 20 9F 45 43 5E 00 00 00 00 00
Reading i2c device...
bytes: 34 5E 20 9F 45 43 5E 00 00 00 00 00
Reading i2c device...
bytes: 34 32 10 B3 45 43 32 00 00 00 00 00
Reading i2c device...
bytes: 34 D4 20 16 45 40 D4 00 00 00 00 00
Reading i2c device...
bytes: 34 D4 20 16 45 40 D4 00 00 00 00 00


Another PM2.5:

Reading i2c device...
bytes: 00 00 00 00 00 00 00 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 34 00 00 00 00 34 00 00 00 00 00
Reading i2c device...
bytes: 34 86 06 06 44 44 E3 00 2D 00 00 00
Reading i2c device...
bytes: 34 86 06 06 44 44 E3 00 2D 00 00 00
Reading i2c device...
bytes: 34 86 06 06 44 44 E3 00 2D 00 00 00
Reading i2c device...
bytes: 34 86 06 06 44 44 E3 00 2D 00 00 00
Reading i2c device...
bytes: 34 60 D8 48 44 44 30 00 55 00 00 00
Reading i2c device...
bytes: 34 DE F2 39 45 45 2A 01 35 00 00 00
Reading i2c device...
bytes: 34 DE F2 39 45 45 2A 01 35 00 00 00
Reading i2c device...
bytes: 34 58 92 2F 45 45 94 01 14 00 00 00
Reading i2c device...
bytes: 34 DB 02 BC 45 45 8A 01 15 00 00 00
Reading i2c device...
bytes: 34 DB 02 BC 45 45 8A 01 15 00 00 00
Reading i2c device...
bytes: 34 15 70 7B 46 46 27 01 E1 00 00 00
Reading i2c device...
bytes: 34 3E 3E 08 46 46 16 02 FC 00 00 00
Reading i2c device...
bytes: 34 3E 3E 08 46 46 16 02 FC 00 00 00
Reading i2c device...
bytes: 34 9A F3 EE 46 46 56 02 36 00 00 00
Reading i2c device...
bytes: 34 1D 63 7D 46 46 4C 02 38 00 00 00
Reading i2c device...
bytes: 34 1D 63 7D 46 46 4C 02 38 00 00 00


[编辑] 4.2 HCHO Sensor

  • Type is Dart 2-FE5 , a STM8S105K6 MCU emulating a i2c slave device
  • i2c address is 0x28

Read the sensor data every 5s:

Reading i2c device...
bytes: 00 00 00 00 00 00 00 00 00 00 00 00
Reading i2c device...
bytes: 33 8F B1 D5 3E 37 FF 01 99 00 00 00
Reading i2c device...
bytes: 33 02 27 7A 3E 37 C0 01 98 00 00 00
Reading i2c device...
bytes: 33 02 27 7A 3E 37 C0 01 98 00 00 00
Reading i2c device...
bytes: 33 95 9E CB 3E 37 81 01 97 00 00 00
Reading i2c device...
bytes: 33 24 14 5A 3E 37 42 01 96 00 00 00
Reading i2c device...
bytes: 33 BA 8A CC 3E 37 03 01 95 00 00 00
Reading i2c device...
bytes: 33 BA 8A CC 3E 37 03 01 95 00 00 00
bytes: 33 BE DA FA 3E 39 D8 01 90 00 00 00
Reading i2c device...
bytes: 33 BE DA FA 3E 39 D8 01 90 00 00 00
Reading i2c device...
bytes: 33 BE DA FA 3E 39 D8 01 90 00 00 00
Reading i2c device...
bytes: 33 21 50 49 3E 39 99 01 8F 00 00 00
Reading i2c device...
bytes: 33 21 50 49 3E 39 99 01 8F 00 00 00
Reading i2c device...
bytes: 33 50 C7 D6 3E 39 5A 01 8E 00 00 00
Reading i2c device...
bytes: 33 50 C7 D6 3E 39 5A 01 8E 00 00 00


[编辑] 4.3 Base Station

  • 环形三色灯,执行部件
  • MIC,噪声传感器
  • i2c address is 0x08
aReading i2c device...
bytes: 12 73 01 01 00 00 43 00 00 00 00 00
Reading i2c device...
bytes: 13 09 FF E0 C1 C4 F6 FF 9C 00 00 00
Reading i2c device...
bytes: 16 6A F9 79 42 47 20 02 11 00 00 00
Reading i2c device...
bytes: 14 08 FF E0 C1 C4 F7 FF 9C 00 00 00
Reading i2c device...
bytes: 00 00 00 00 00 00 00 00 00 00 00 00
Reading i2c device...
bytes: 13 91 FF 68 C1 C4 6E FF 9C 00 00 00
Reading i2c device...
bytes: 16 D2 E0 95 42 47 C2 02 08 00 00 00
Reading i2c device...
bytes: 14 90 FF 68 C1 C4 6F FF 9C 00 00 00
Reading i2c device...
bytes: 00 00 00 00 00 00 00 00 00 00 00 00
Reading i2c device...
bytes: 13 8D CC 14 C1 C4 47 FF 9C 00 00 00
Reading i2c device...
bytes: 16 84 9D 15 42 45 74 02 30 00 00 00
Reading i2c device...
bytes: 14 82 CC 14 C1 C4 48 FF 9C 00 00 00
Reading i2c device...
bytes: 00 00 00 00 00 00 00 00 00 00 00 00
Reading i2c device...
bytes: 13 96 8F 86 C2 C7 CC FF 9C 00 00 00
Reading i2c device...
bytes: 16 87 93 1A 42 45 11 02 22 00 00 00
Reading i2c device...
bytes: 14 97 8F 86 C2 C7 CD FF 9C 00 00 00
Reading i2c device...
bytes: 00 00 00 00 00 00 00 00 00 00 00 00
Reading i2c device...
bytes: 13 4A CD EE C2 C7 9A FF 9C 00 00 00
Reading i2c device...
bytes: 16 8D 9D E6 42 47 43 02 0B 00 00 00
Reading i2c device...
bytes: 14 4B CD EE C2 C7 9B FF 9C 00 00 00
Reading i2c device...
bytes: 00 00 00 00 00 00 00 00 00 00 00 00


[编辑] 4.4 Head

Touch the head, then send i2c data (No other device):

  • Write 0x00 (no ack)
  • Write 0x28 (no ack) 0x44 (no ack)
  • Write 0x28 (no ack) 0x44 (no ack)

Touch-iKair-head-then-send-data.png


Send i2c data (with pm2.5 sensor):

 0x00 0x12 0x1E 0x03 0x02 0x00 0x00 0x1A

Touch-iKair-head-then-send-data2.png


第一个字节 0x00 是目标传感部件环灯广播地址,改为 0x60 就只点亮 PM2.5 的环灯 (i2c addr = 0x30), 0x50 就只点亮甲醛传感部件上的环灯 (i2c addr = 0x28)



[编辑] 4.5 Light Sensor

位于头部件 (Head) 内

  • Type is BH1750
  • i2c address is 0x5C


  • BH1750:
    • ADDR-> LOW (Pull down), i2c address is 0x23
    • ADDR-> HIGH (Pull up), i2c address is 0x5C



[编辑] 4.6 Temp & Humi

  • Type is SHT21/SHT2x
  • i2c address is 0x40


[编辑] 5 TODO

  • 重启后 push 的第一条 light 数据为 -1
  • 上传数据间隔不固定。需改为用固定的时间间隔上传数据(比如 1 min),2 s 监测一下热点传感器(比如温度、湿度或者光照),有大的变化就上传数据
  • 动态开启/关闭 MQTT


[编辑] 6 Reference












个人工具
名字空间

变换
操作
导航
工具箱