guowenxue
2019-08-08 d399ece9a16d2c9fe053a07912037a770f9fe1e5
Merge branch 'master' of ssh://master.iot-yun.club:2280/raspberrypi
2 files modified
1 files added
86 ■■■■■ changed files
mqttd/etc/mqttd-02.conf 71 ●●●●● patch | view | raw | blame | history
mqttd/hal/hal.h 1 ●●●● patch | view | raw | blame | history
mqttd/main.c 14 ●●●● patch | view | raw | blame | history
mqttd/etc/mqttd-02.conf
New file
@@ -0,0 +1,71 @@
[common]
id="RPi.3B-GP-0002"
# 树莓派连接的外设信息,0:禁用或未连接  其他: 使能或相关硬件连接的Pin管脚(wPI模式)
[hardware]
# 是否使能硬件支持,如果是在X86上调试该程序,可以把该选项设置为0
enable=1
# 控制蜂鸣器,0: 禁用   !0:蜂鸣器连接树莓派的wPI管脚编号, PIN#12(wPI 1#) can be used as PWM
beep_pin=1
# 蜂鸣器响的次数: 0: 不响  >0: 蜂鸣器响的次数
beep_times=2
# RGB三色LED, 全0:禁用   !0: 三色LED相关引脚连接树莓派的wPI管脚编号
red_pin=24
green_pin=25
blue_pin=23
# 是否使能 DS18b20 温度传感器模块,0:禁用  1:使能
#ds18b20=1
# 是否使能 SHT2X 温湿度传感器模块,0:禁用  1:使能
sht2x=1
[logger]
# 日志记录文件
file=/tmp/mqttd.log
# 日志级别: 0:Disable 1:Fatal 2:ERROR 3:warnning 4:Normal 5:Debug 6:Infor 7:Trace
level=4
# 日志回滚大小
size=1024
[broker]
# broker 服务器地址和端口号
hostname="master.iot-yun.club"
port=10883
# broker 认证连接的用户名和密码
username="lingyun"
password="lingyun-emb"
# broker给subsciber和publisher发送PING报文保持 keepalive 的时间周期,单位是秒
keepalive=30
# Qos0: 发送者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下,Broker可能没有接受到消息
# Qos1: 发送者最少发送一次消息,确保消息到达Broker,Broker需要返回确认消息PUBACK。在Qos1情况下,Broker可能接受到重复消息
# Qos2: Qos2使用两阶段确认来保证消息的不丢失和不重复。在Qos2情况下,Broker肯定会收到消息,且只收到一次
[publisher]
pubTopic="$Sys/Studio/Uplink"
pubQos=0
# Publisher上报传感器数据的周期,单位是秒
interval=300
[subsciber]
subTopic="$Sys/Studio/Downlink"
subQos=0
mqttd/hal/hal.h
@@ -22,6 +22,7 @@
#include "ds18b20.h"
#include "sht20.h"
#include "tsl2561.h"
#include "beep.h"
#define OFF   0
#define ON    1
mqttd/main.c
@@ -275,7 +275,7 @@
        else 
            snprintf(msg, sizeof(msg), "{ \"id\":%s, \"temp\":\"%.2f\" }", ctx->id, temp);
        rv = mosquitto_publish(mosq, NULL, ctx->pubTopic, strlen(msg)+1, msg, ctx->pubQos, retain);
        rv = mosquitto_publish(mosq, NULL, ctx->pubTopic, strlen(msg), msg, ctx->pubQos, retain);
        if( rv )
        {
            log_err("Publisher broadcast message '%s' failure: %d\n", msg, rv);
@@ -295,7 +295,7 @@
        else 
            snprintf(msg, sizeof(msg), "{ \"id\":%s, \"temp\":\"%.2f\", \"RH\":\"%.2f\" }", ctx->id, temp, rh);
        rv = mosquitto_publish(mosq, NULL, ctx->pubTopic, strlen(msg)+1, msg, ctx->pubQos, retain);
        rv = mosquitto_publish(mosq, NULL, ctx->pubTopic, strlen(msg), msg, ctx->pubQos, retain);
        if( rv )
        {
            log_err("Publisher broadcast message '%s' failure: %d\n", msg, rv);
@@ -464,7 +464,15 @@
            {
                if( strcasestr(value, "on") )
                {
                    log_nrml("Turn buzzer on [%d] times\n", hwconf->beep_times);
            turn_passive_beep(ON, BEEP_FREQ);
                }
        else if( strcasestr(value, "off") )
                {
            turn_passive_beep(OFF, BEEP_FREQ);
                }
        else if( strcasestr(value, "music") )
                {
            play_little_star();
                }
            }