¡¡¡¡ÎïÁªÍø (IoT) ²»Ö»ÊÇм¼Êõ£¬ »¹ÊÇÓë¾É¼¼ÊõµÄ¼¯³É£¬Æä¹Ø¼üÔÚÓÚͨÐÅ¡£ ¿ÉÓõÄͨÐÅ·½·¨¸÷²»Ïàͬ£¬µ«ÊÇ£¬¸÷ÖÖ²»Í¬µÄÐÒéÔÚ½«º£Á¿¡°ÊÂÎÁ¬½Óµ½»¥ÁªÍøʱ·¢»Ó×ÅÖØÒªµÄ×÷Óᣠ±¾ÎĽéÉÜÁËÁ½ÖÖÎïÁªÍø²¹³äÐÒ飺 ÓÃÓڶ̾àÀëÉ豸Á¬½ÓµÄ±¾µØÐÒé Modbus ÒÔ¼°Ö§³ÖÎïÁªÍø½øÐÐÈ«¾ÖͨÐŵĿÉÀ©Õ¹»¥ÁªÍøÐÒé¡°ÏûÏ¢¶ÓÁÐÒ£²â´«Êä (MQTT)¡±¡£
¡¡¡¡Modbus ÊÇÒ»¸ö´®ÐÐͨÐÅÐÒ飬Ê״γöÏÖÓÚ 1979 Ä꣬ÊÇÁ¬½ÓÐÐÒµÉ豸ʵ¼ÊʹÓõıê×¼ÐÒé¡£ MQTT ÔçÔÚ 20 ÄêÇ°±ãÒѳöÏÖ£¬µ«Êǽ«ÕâÁ½¸öÐÒé½áºÏÔÚÒ»ÆðʹÓã¬Äܹ»ÎªÉî¶ÈǶÈëʽÉ豸ÌṩÎïÁªÍøµÄ¹æÄ£ºÍÁ¬½ÓÐÔ¡£
¡¡¡¡Modbus
¡¡¡¡×Ô 1979 ÄêÊ״γöÏÖÖÁ½ñ£¬Modbus ÒѾÑݱäΪһÌ×È«ÃæÖ§³Ö¶àÖÖÎïÀíÁ¬½ÓµÄÐÒ鼯(Èç RS-485)¡£ Modbus µÄºËÐÄÊÇÒ»¸ö´®ÐÐͨÐÅÐÒ飬²ÉÓÃÖ÷´Óģʽ¡£ Ö÷»úÏò´Ó»ú·¢ËÍÇëÇ󣬴ӻúÓèÒԻظ´¡£
¡¡¡¡½èÖúRS-485£¬Ö÷´Ó»úÖ®¼äµÄͨÐÅ·¢ÉúÔÚָʾ¹¦ÄÜÂëµÄÖ¡ÖС£ ¸Ã¹¦ÄÜÂë¿Éʶ±ðÒª²Ù×÷µÄ¹¦ÄÜ£¬Èç¶ÁÈ¡¶ÀÁ¢ÊäÈë;¶ÁÈ¡ÏȽøÏȳö¶ÓÁÐ;»òÖ´ÐÐÕï¶Ïº¯Êý¡£ È»ºó£¬´Ó»ú¸ù¾ÝÊÕµ½µÄ¹¦ÄÜÂë½øÐÐÏìÓ¦£¬¸ÃÏìÓ¦½ÏΪ¼òµ¥£¬ÓÉÒ»×é×Ö½Úָʾ¡£ Òò´Ë£¬´Ó»ú¿ÉÒÔÊÇÖÇÄÜÉ豸£¬Ò²¿ÉÒÔÊÇÖ»ÓÐÒ»¸ö´«¸ÐÆ÷µÄ¼òµ¥É豸¡£
¡¡¡¡´Ó¸ÃÃèÊöÖУ¬Äú¿ÉÒÔ¿´µ½ Modbus ÐÒé·Ç³£¼òµ¥£¬µ«ÊÇÆä×÷ΪÐÒéµÄ¿ª·ÅÐÔʹÆä³ÉΪÕû¸öÐÐÒµ»ò SCADA ϵͳµÄʵ¼ÊͨÐÅÐÒé¡£
¡¡¡¡ÏûÏ¢¶ÓÁÐÒ£²â´«Êä
¡¡¡¡MQTT ÊÇÒ»¸ö¿ª·ÅµÄÇáÁ¿¼¶»úÆ÷¶Ô»úÆ÷ÐÒ飬רΪÎïÁªÍø½»»¥Éè¼Æ¡£ MQTT ÍøÂç°üº¬Ò»¸ö MQTT ¾¼ÍÈË (broker)£¬¸ºÔðе÷ MQTT ´úÀíÖ®¼äµÄ½»»¥¡£ ´úÀíÊÇ·¢²¼Æ÷£¬¸ºÔð·¢²¼¹©Óû§Ê¹ÓõÄÐÅÏ¢¡£
¡¡¡¡MQTT¹µÍ¨Ä£ÐÍ
¡¡¡¡MQTT µÄÒªÇó·Ç³£ÉÙ£¬ÒòΪËüרΪ×ÊÔ´ÓÐÏÞµÄǶÈëʽÉ豸Éè¼Æ¡£ ³ýÁËÕ¼µØ¿Õ¼äÉÙÖ®Í⣬MQTT »¹¿ÉÌṩ³öÉ«µÄͨПßЧÐÔ(¼´Ê¹Í¨¹ýµÍ´ø¿íÍøÂç½øÐÐͨÐÅ)ºÍ·Ç³£ÉٵĿªÏú(½ÏÖ®HTTP µÈÐÒé)¡£ ÔÚ3GÍøÂçÖУ¬MQTT µÄÍÌÍÂÁ¿ËÙ¶ÈÊÇʹÓà HTTP µÄ±íÊöÐÔ״̬תÒÆ (REST) µÄ 93 ±¶¡£
¡¡¡¡MQTT ¿ÉʹÓÃ×îÉٵķ½·¨Ö¸Ê¾ÒªÔÚÌض¨Ö÷ÌâÉÏʵʩµÄ²Ù×÷£¬½ø¶øʵʩ·¢²¼/¶©ÔÄģʽ¡£ ´úÀíÏÈÁ¬½Óµ½¾¼ÍÈË£¬È»ºóÔÙ·¢²¼»ò¶©ÔÄÖ÷Ìâ¡£ Íê³Éºó£¬´úÀí½«´Ó¾¼ÍÈËÉ϶ϿªÁ¬½Ó¡£
¡¡¡¡MQTT ·½·¨¶¨Ò壺
¡¡¡¡? Á¬½Ó - ½¨Á¢Óë MQTT ¾¼ÍÈËÖ®¼äµÄÁ¬½Ó¡£
¡¡¡¡? ¶Ï¿ªÁ¬½Ó - ¶Ï¿ªÓë MQTT ¾¼ÍÈËÖ®¼äµÄÁ¬½Ó¡£
¡¡¡¡? ·¢²¼ - ÔÚ MQTT ¾¼ÍÈËÉÏ·¢²¼Ö÷Ìâ¡£
¡¡¡¡? ¶©ÔÄ - ´Ó MQTT ¾¼ÍÈËÉ϶©ÔÄÖ÷Ìâ¡£
¡¡¡¡? Í˶© - ´Ó MQTT ¾¼ÍÈËÉÏÍ˶©Ö÷Ìâ¡£
¡¡¡¡ÐÅÏ¢´´½¨Õß (producer) Á¬½ÓÖÁ MQTT ¾¼ÍÈË¡£ ͬÑù£¬ÐÅÏ¢Ïû·ÑÕß (consumer) Á¬½ÓÖÁ MQTT ¾¼ÍÈË¡£ Ïû·ÑÕ߶©ÔÄÖ÷Ìâ(´Ë´¦¶¨ÒåΪ /home/alarms/1/status)¡£ ±¾Ê¾ÀýÖ÷Ìâ¿Éʶ±ðÖ÷Ò³ÉÏÕë¶ÔÇøÓò 1 µÄ¾¯±¨ÏµÍ³µÄ״̬±ä»¯¡£µ±´´½¨ÕßÓÐÐÅÏ¢Òª·ÖÏíʱ£¬»áÏò¾¼ÍÈË·¢²¼Ò»ÌõÏûÏ¢£¬È»ºó¾¼ÍÈ˽«»á½«ÐÅÏ¢·ÖÏí¸øËùÓж©ÔĸÃÖ÷ÌâµÄÓû§¡£
¡¡¡¡MQTT½»»¥Á÷³Ì
¡¡¡¡ÓëÎļþϵͳ²ã´Î½á¹¹ÏàËÆ£¬Õâ¿É¼ò»¯Ö÷ÌåµÄ½á¹¹¡£ÕâÖÖ×ÊÔ´²ã´ÎÐÎʽҲ³£¼ûÓÚÐÒé¼Ü¹¹ÖУ¬ÈçREST¡£
¡¡¡¡MQTT ÉõÖÁÔÊÐíʹÓÃͨÅä·ûµÄÐÎʽ£¬ÒÔ¼ò»¯¶©ÔÄÁ÷³Ì¡£ Èç¹ûÓû§ÏëÒª»ñÈ¡ËùÓо¯±¨µÄ״̬£¬Ôò¿ÉÖ±½Ó¶©ÔÄ /home/alarms/+/status£¬¸ÃÖ÷Ìâ¿É֪ͨÓû§ËùÓеľ¯±¨×´Ì¬±ä»¯¡£ Õû¸ö×ÓÊ÷»¹¿ÉʹÓÃÖ÷Ìâ /home/# ½øÐж©ÔÄ£¬¸ÃÖ÷Ìâ¿ÉÒÔ¶©ÔÄ /homeϵÄËùÓÐʼþ¡£
¡¡¡¡·þÎñÖÊÁ¿
¡¡¡¡MQTT ÔÊÐí¶¨Òå·þÎñÖÊÁ¿ (QoS)¡£ MQTT ÖÐÓÐÈý¸öµÈ¼¶µÄ QoS£º
¡¡¡¡? QoS 0¡£¸ÃµÈ¼¶±íʾ¡°×î¶àÒ»´Î¡±½»¸¶(×î¼Ñ×´¿ö)¡£ ÏûÏ¢²»»áµÃµ½È·ÈÏ£¬Òò¶ø£¬ÕâÊÇÒ»ÖÖÒ»ÀÍÓÀÒݵķ½·¨¡£
¡¡¡¡? QoS 1¡£¸ÃµÈ¼¶±íʾ¡°ÖÁÉÙÒ»´Î¡±½»¸¶¡£ Óû§¿ÉÄܲ»Ö¹Ò»´Î»ñµÃÏûÏ¢£¬µ«ÊÇÔÊÐíÊÕµ½µÄÈËÈ·ÈÏÒѾÊÕµ½
¡¡¡¡? QoS 2¡£×îÂýµ«ÊÇ×îÓб£ÕϵķþÎñÖÊÁ¿µÈ¼¶¼´ÎªµÈ¼¶ 2¡£ QoS 2 ±íʾ¡°Ö»ÓÐÒ»´Î¡±£¬²¢°üº¬Ëĸö½×¶ÎµÄ½»¸¶ÎÕÊÖ¡£ ¸ÃµÈ¼¶×îÂý£¬µ«ÊÇ×ȫ¡£
¡¡¡¡Ñ¡ÔñµÄ QoS µÈ¼¶½«È¡¾öÓÚÊý¾Ý¼°Æä½»¸¶µÄÖØÒªÐÔ¡£
¡¡¡¡ÏûÏ¢¶ÓÁÐÒ£²â´«Êä¾¼ÍÈË
¡¡¡¡Ëæ×ÅÔ½À´Ô½¶àµÄÎïÁªÍø²ÉÓà MQTT ×÷Ϊ֧³ÖÐÒ飬Äú½«»á·¢ÏÖÐí¶à¿ªÔ´Ó¦ÓúͲúÆ·ÖгöÏÖÁË MQTT¡£ÎïÁªÍøÍø¹Ø½â¾ö·½°¸ÔòÊÇÆäÖÐÒ»¿î²ÉÓà MQTT µÄÈ«ÃæÎïÁªÍø½â¾ö·½°¸£¬Ö§³Ö½«¸÷ÖÖ¹¤¿ØÐÒéת»»ÎªMQTT£¬ÊµÏÖÔÆƽֱ̨½Óµ÷ÓÃÏÖ³¡É豸µÄÊý¾Ý¡£