Project

General

Profile

Protocole » History » Revision 42

Revision 41 (Frédéric Blanc, 2019-05-15 09:30) → Revision 42/47 (Frédéric Blanc, 2019-05-16 08:58)

h1. Protocole 

 1er octet [4][4] 
 quatre premier bits type 

 0 ALARME 
 1 température -43°C à +84.5°C -+0.5°C codé sur 8bits 
 2 % de 0 à 100% -+0.5% codé sur 8 bits 
 3 ADC brut sur 12bits [MSB LSB] concaténé sur 24bits 
 4 entier sur 16 bits [MSB LSB] 
 5 float simple précision    IEEE754 sur 32bits 
 6 ASCII chaine terminé par CRLF 
 7 Switch binaire 8 données de 1bit codées sur 8bits  
 ... 
 F réservé 

 quatre octet suivant nombre de données ou numéro de capteur 
 0 réservé ou numéro de capteur 0 
 1 à 9 nombre de données ou numéro de capteur 
 A à F réservé ou nombre de données 
 exemple 
 0x02 0x11 0x8A  
 Alarme capteur n°2 température +26.5°C 

 0x14 0x7A 0x79 0x7A 0x7B 0x24 0x33 0x32 0x33 0x32 0x34 0xBB 0x8B 0xB9 0xBB 0xAB 0xBB 0x51 0x40 0x49 0x0F 0xDA 0x6x OPEN 0x0D 0x0A 
 capteur n°0 température 18.5°C; 18,0°C; 18,5°C; 19,0°C 
 capteur n°1 humidité 64.5%; 64.0%; 64.5%; 64.0% 
 capteur n°2 ADC RAW 12bits 3000;3001;3002;3003 
 Capteur n°3 float RAW 3.1415926 
 capteur n°4 ASCII "OPEN" 

 <notextile>0xF0 0x00 0x05 0x10 capteur n°0 est un capteur DHT de type température -43°C à +84.5°C -+0.5°C codé sur 8bits</notextile> 
 <notextile>0xF1 0x00 0x05 0x20 capteur n°1 est un capteur DHT de type humidité de 0 à 100% -+ 0.5%</notextile> 
 <notextile>0xF2 0x00 0x1C 0x10 capteur n°2 est un capteur BME280 de type température -43°C à +84.5°C -+0.5°C codé sur 8bits</notextile> 
 <notextile>0xF3 0x00 0x1C 0x20 capteur n°3 est un capteur BME280 de type humidité de 0 à 100% -+ 0.5%</notextile> 
 0xF4 0x00 0x1C 0x50 capteur n°4 est un capteur BME280 de type Pression Barométrique mBAR en float simple précision 32bits 
 0xF5 0x00 0x01 0x71 0x0A capteur n°5 type Switch sur GPIO 10 
 0xF6 0x00 0x02 0x33 0x24 0x0C 0x1E capteur n°6 type ADC sur GPIO 36; 12 bits; vref 3Volts 


 h2. Universally Unique IDentifier (UUID) 

 - DevAddr: Un ID de l'appareil de 32 bits qui identifie de manière unique le dispositif final. Cet identifiant est fourni par l’entreprise qui l’a créée. 

 h2. Commandes 

 |Commande||END DEVICE SERVER| 
 |_.0x6F *IDN? 0x0D 0x0A| demande identifiant |_.<-| 
 |\3=.reponse| 
 |0x6F "identifiant" 0x0D 0x0A| |_.->| 
 |_.0x6F *UUID? 0x0D 0x0A| demande UUID |_.<-| 
 |\3=.reponse| 
 |0x6F UUID 0x0D 0x0A| |_.->| 
 |_.0x6F *SENSOR? 0x0D 0x0A| demande SENSOR|_.<-| 
 |\3=.example de reponse| 
 |\2<.0xF0 0x00 0x05 0x10 0xF1 0x00 0x05 0x20 0xF2 0x00 0x1C 0x10 0xF3 0x00 0x1C 0x20 0xF4 0x00 0x1C 0x50 0xF5 0x00 0x01 0x71 0x0A 0xF6 0x00 0x02 0x33 0x24 0x0C 0x1E|_.->| 
 |\3=.explication| 
 |\3<.<notextile>capteur n°0 est un capteur DHT de type température -43°C à +84.5°C -+0.5°C codé sur 8bits</notextile>| 
 |\3<.<notextile>capteur n°1 est un capteur DHT de type humidité de 0 à 100% -+ 0.5%</notextile>| 
 |\3<.<notextile>capteur n°2 est un capteur BME280 de type température -43°C à +84.5°C -+0.5°C codé sur 8bits</notextile>| 
 |\3<.<notextile>capteur n°3 est un capteur BME280 de type humidité de 0 à 100% -+ 0.5%</notextile>| 
 |\3<.<notextile>capteur n°4 est un capteur BME280 de type Pression Barométrique mBAR en float simple précision 32bits</notextile>| 
 |\3<.<notextile>capteur n°5 type Switch sur GPIO 10</notextile>| 
 |\3<.<notextile>capteur n°6 type ADC sur GPIO 36; 12 bits; vref 3Volts</notextile>| 
 |_.0x6F *ALARM? 0x0D 0x0A| demande |_.<-| 
 |\3=.example de reponse| 
 |\2<.0xF0 0x00 0x05 0x00 0x11 0x8A 0xF1 0x00 0x00 0xF2 0x00 0x00 0xF3 0x00 0x00 0xF4 0x00 0x1C 0xFF 0x21 0x44 0x7A 0x00 0x00 0xF5 0x00 0x01 0x00 0x71 0xFF 0xF6 0x00 0x02 0x00 0x31 0xBB 0x80 0x00 |_.->| 
 |\3=.explication| 
 |\3<.<notextile>alarme capteur n°0 si température supérieure à +26.5°C</notextile>| 
 |\3<.<notextile>capteur n°1 pas d'alarme</notextile>| 
 |\3<.<notextile>capteur n°2 pas d'alarme</notextile>| 
 |\3<.<notextile>capteur n°3 pas d'alarme</notextile>| 
 |\3<.<notextile>alarme capteur n°4 si Pression Barométrique inférieure    à 1000mBAR</notextile>| 
 |\3<.<notextile>alarme capteur n°5 si Switch sur GPIO 10 passe à 1</notextile>| 
 |\3<.<notextile>alarme capteur n°6 si ADC sur GPIO 36 dépasse 3000</notextile>| 
 |_.0x6F *SETALARM 0x0D 0x0A 0xF0 0x00 0x05 0x00 0x11 0x8A 0xF4 0x00 0x00 0xF6 0x00 0x02 0xFF 0x31 0xBB 0x80 0x00| demande |_.<-| 
 |\3=.explication| 
 |\3<.<notextile> set alarme capteur n°0 si température supérieure à +26.5°C</notextile>| 
 |\3<.<notextile>capteur n°4 pas d'alarme</notextile>| 
 |\3<.<notextile>set alarme capteur n°6 si ADC sur GPIO 36 inférieure à 3000</notextile>| 
 |_.0x6F *GPS? 0x0D 0x0A| demande |_.<-| 
 |\3=.example de reponse| 
 |0x22 ... |_.->| 

  

 h2. Annexe 

 type de capteur (inspiré de easymega https://github.com/letscontrolit/ESPEasy) 
 (ATTENTION CODE EN DECIMAL) 

 |000|0x0000| réservé| 
 |001|0x0001| Switch|état| Switch|| GPIO; PULL| 
 |002|0x0002| ADC|valeur|GPIO; ADC||GPIO; BITS; VREF| 
 |003|0x0003| Pulse| 
 |004|0x0004| Dallas Environment - DS18b20| 
 |005|0x0005| DHT Temp/Humi|Temp (°C); HR (%)| 
 |006|0x0006| BMP085| 
 |007|0x0007| PCF8591| 
 |008|0x0008| RFID| 
 |009|0x0009| MCP| 
 |010|0x000A| BH1750| 
 |011|0x000B| PME| 
 |012|0x000C| LCD| 
 |013|0x000D| HCSR04| 
 |014|0x000E| SI7021| 
 |015|0x000F| TSL2561| 

 |016|0x0010| IR| 
 |017|0x0011| PN532| 
 |018|0x0012| Dust| 
 |019|0x0013| PCF8574| 
 |020|0x0014| Ser2Net| 
 |021|0x0015| Level| 
 |022|0x0016| PCA9685| 
 |023|0x0017| OLED| 
 |024|0x0018| MLX90614| 
 |025|0x0019| ADS1115| ADC I2C QUAD| 
 |026|0x001A| SysInfo| 
 |027|0x001B| INA219| 
 |028|0x001C|BME280| BME280 I2C Temp/Hum/Barometric Pressure Sensor|Temp (°C); HR (%); Barometric (mBAR)| 
 |029|0x001D| Output| 
 |030|0x001E| BMP280 |    (Made obsolete, now BME280 can handle both)| 
 |031|0x001F| SHT1X| 

 032 MS5611 
 033 Dummy 
 034 DHT12 
 035 IRTX 
 036 FrameOLED 
 037 MQTTImport 
 038 NeoPixel 
 039 Environment - Thermocouple 
 040 RFID - ID12LA/RDM6300 
 041 NeoClock 
 042 Candle 
 043 ClkOutput 
 044 P1WifiGateway 
 049 MHZ19 
 052 SenseAir 
 056 SDS011-Dust 
 059 Encoder 
 063 TTP229_KeyPad 
 079 Wemos Motoshield 
 045 MPU6050 
 047 I2C_soil_misture 
 048 Motoshield_v2 
 051 AM2320 
 053 PMSx003 
 054 DMX512 
 055 Chiming 
 057 HT16K33_LED 
 058 HT16K33_KeyPad 
 060 MCP3221 
 061 Keypad 
 062 MPR121_KeyPad 
 064 APDS9960 
 065 DRF0299 
 066 VEML6040 
 067 HX711_Load_Cell 
 068 SHT3x 
 069 LM75A 
 070 NeoPixel_Clock 
 071 Kamstrup401 
 072 HDC1080 
 073 7DG 
 074 TSL2561 
 075 Nextion 
 076 HWL8012 cse7759    in POW r1 
 077 CSE7766     in POW R2    Needs HWL8012 cse7759B CSE7766 Energy sensor, via Serial RXD 4800 baud 8E1 (GPIO1), TXD (GPIO3) 
 078 Eastron Modbus Energy meters 
 080 iButton Sensor    DS1990A 
 081 Cron 
 082 GPS 
 083 SGP30 
 084 VEML6070 

 777 EXPERIMENTAL