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

king001 发表于 2019-7-12 12:28

Blinker专属设备问题

我用专属设备的时候这个程序写进去有时候会配网失败,如果配网成功配网则会一直重启请问是哪里的问题呢,有阻塞吗?



代码如下:


#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_PIND5 // 模块上的CS口连接到 pin4
#define SO_PIND6 // 模块上的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);
}

king001 发表于 2019-7-12 12:30

串口显示这个

king001 发表于 2019-7-12 12:47

还有io口d7定义了,长按清空后WiFi账号密码还是在的,没进入智能配网

https://v.youku.com/v_show/id_XNDI3MDQ3NTU1Ng==.html?x&sharefrom=android&sharekey=4081e9e9d6d5c9be37915cf2f5a085284

coloz 发表于 2019-7-12 15:06

1.使用github上最新blinker lib
2.确定下你使用的那几个IO,是否是可用的IO

king001 发表于 2019-7-12 15:11

coloz 发表于 2019-7-12 15:06
1.使用github上最新blinker lib
2.确定下你使用的那几个IO,是否是可用的IO

用的是github上的库,应该不是io问题,因为这个用普通diy设备是可以用的,就是专属设备炸了

奈何col 发表于 2019-7-12 20:09

如果是设备自己报错重启,删除所有IO操作,或者直接测试例程,看看是否正常。
至于长按清除配置的问题,看看文档:https://doc.blinker.app/?file=009-%E4%B8%93%E5%B1%9E%E8%AE%BE%E5%A4%87%E5%BC%80%E5%8F%91/02-Arduino%E6%94%AF%E6%8C%81
页: [1]
查看完整版本: Blinker专属设备问题