Blinker专属设备问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3729|回复: 5

[已解答] Blinker专属设备问题

[复制链接]
发表于 2019-7-12 12:28 | 显示全部楼层 |阅读模式
我用专属设备的时候这个程序写进去有时候会配网失败,如果配网成功配网则会一直重启请问是哪里的问题呢,有阻塞吗?



代码如下:


#define BLINKER_PRO_ESP
#define BLINKER_BUTTON
#define BLINKER_BUTTON_PIN D7

#include <Blinker.h>

char type[] = "***";
char auth[] = "****";


BlinkerNumber TEMP("temp");
BlinkerNumber TEMPK("tempk");
BlinkerNumber TEMPH("temph");

#include <MAX6675_Thermocouple.h>

#define SCK_PIN D4 // 模块上的SCK口连接到 pin3
#define CS_PIN  D5 // 模块上的CS口连接到 pin4
#define SO_PIN  D6 // 模块上的SO口连接到 pin5


MAX6675_Thermocouple* thermocouple = NULL;



float temp; //定义一个变量
float tempk;
float temph;



//屏幕部分
#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, D1,  D2,  U8X8_PIN_NONE);//定义屏幕引脚为D1、D2(分辨率为128x64)



#if defined(BLINKER_BUTTON)

void buttonTick()
{
    Blinker.tick();
}

void singalClick()
{
    BLINKER_LOG("Button clicked!");
}


#endif


void dataStorage() //图表格拉取云端数据
{
  Blinker.dataStorage("temp",temp);
  Blinker.dataStorage("tempk",tempk);
  Blinker.dataStorage("temph",temph);
}

void heartbeat()
{
    TEMP.print(temp);
     TEMPK.print(tempk);
     TEMPH.print(temph);
}

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    Blinker.attachHeartbeat(heartbeat);

    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);

    Blinker.begin(auth, type);


    Blinker.attachDataStorage(dataStorage);//云回调函数

    thermocouple = new MAX6675_Thermocouple(SCK_PIN, CS_PIN, SO_PIN);

    u8g2.begin();  //启动屏幕
    u8g2.enableUTF8Print();

#if defined(BLINKER_BUTTON)
    Blinker.attachClick(singalClick);

    attachInterrupt(BLINKER_BUTTON_PIN, buttonTick, CHANGE);
#endif
}

void loop()
{
    Blinker.run();

     double celsius = thermocouple->readCelsius(); // 摄氏度
     const double kelvin = thermocouple->readKelvin(); // 开尔文温度
     const double fahrenheit = thermocouple->readFahrenheit(); // 华氏温度
     Serial.print("Temperature: ");
     Serial.print(String(celsius) + " C, ");
     Serial.print(String(kelvin) + " K, ");
     Serial.println(String(fahrenheit) + " F");

     temp=celsius;
     tempk=kelvin;
     temph=fahrenheit;


     u8g2.setFont(u8g2_font_unifont_t_chinese2);  //设置字体格式
     u8g2.setFontDirection(0);    //纵向显示或者横向显示
     u8g2.clearBuffer();          //清空屏幕

     u8g2.setCursor(0,30);
     u8g2.print("摄氏度:");

     u8g2.setCursor(80, 30);       //显示输出位置
     u8g2.print(temp);           //输出字符

     u8g2.sendBuffer();          //还是清空屏幕
     Blinker.delay(2000);  
}

 楼主| 发表于 2019-7-12 12:30 | 显示全部楼层
串口显示这个

3DJ]QRI8V06WYOW}[DZ1BW0.jpg
 楼主| 发表于 2019-7-12 12:47 | 显示全部楼层
还有io口d7定义了,长按清空后WiFi账号密码还是在的,没进入智能配网



发表于 2019-7-12 15:06 | 显示全部楼层
1.使用github上最新blinker lib
2.确定下你使用的那几个IO,是否是可用的IO
 楼主| 发表于 2019-7-12 15:11 | 显示全部楼层
coloz 发表于 2019-7-12 15:06
1.使用github上最新blinker lib
2.确定下你使用的那几个IO,是否是可用的IO

用的是github上的库,应该不是io问题,因为这个用普通diy设备是可以用的,就是专属设备炸了
发表于 2019-7-12 20:09 | 显示全部楼层
如果是设备自己报错重启,删除所有IO操作,或者直接测试例程,看看是否正常。
至于长按清除配置的问题,看看文档:https://doc.blinker.app/?file=00 ... o%E6%94%AF%E6%8C%81
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 03:45 , Processed in 0.111546 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表