* AM2321的取温度间隔得大于2s,否则,i2c会不工作了 * SimpleTimer有个bug,会导致两次快速的读温度,现在读温度函数里加了保护 * Blynk有个bug,会导致无法把数据传到服务器 * 现在可以正常工作了
WidgetBridge.h
00001 /** 00002 * @file WidgetBridge.h 00003 * @author Volodymyr Shymanskyy 00004 * @license This project is released under the MIT License (MIT) 00005 * @copyright Copyright (c) 2015 Volodymyr Shymanskyy 00006 * @date Apr 2015 00007 * @brief 00008 * 00009 */ 00010 00011 #ifndef WidgetBridge_h 00012 #define WidgetBridge_h 00013 00014 #include <Blynk/BlynkApi.h> 00015 00016 class WidgetBridge 00017 { 00018 public: 00019 WidgetBridge(int vPin) 00020 : mPin(vPin) 00021 {} 00022 void onWrite(BlynkReq& request, const BlynkParam& param) {} 00023 00024 void setAuthToken(const char* token) { 00025 char mem[64]; 00026 BlynkParam cmd(mem, 0, sizeof(mem)); 00027 cmd.add(mPin); 00028 cmd.add("i"); 00029 cmd.add(token); 00030 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1); 00031 } 00032 00033 template <typename T> 00034 void digitalWrite(const T& pin, int val) { 00035 char mem[64]; 00036 BlynkParam cmd(mem, 0, sizeof(mem)); 00037 cmd.add(mPin); 00038 cmd.add("dw"); 00039 cmd.add(pin); 00040 cmd.add(val); 00041 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1); 00042 } 00043 00044 template <typename T> 00045 void analogWrite(const T& pin, int val) { 00046 char mem[64]; 00047 BlynkParam cmd(mem, 0, sizeof(mem)); 00048 cmd.add(mPin); 00049 cmd.add("aw"); 00050 cmd.add(pin); 00051 cmd.add(val); 00052 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1); 00053 } 00054 00055 template <typename T> 00056 void virtualWrite(int pin, const T& data) { 00057 char mem[64]; 00058 BlynkParam cmd(mem, 0, sizeof(mem)); 00059 cmd.add(mPin); 00060 cmd.add("vw"); 00061 cmd.add(pin); 00062 cmd.add(data); 00063 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength()-1); 00064 } 00065 00066 template <typename T1, typename T2> 00067 void virtualWrite(int pin, const T1& data1, const T2& data2) { 00068 char mem[64]; 00069 BlynkParam cmd(mem, 0, sizeof(mem)); 00070 cmd.add(mPin); 00071 cmd.add("vw"); 00072 cmd.add(pin); 00073 cmd.add(data1); 00074 cmd.add(data2); 00075 Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1); 00076 } 00077 00078 template <typename T1, typename T2, typename T3> 00079 void virtualWrite(int pin, const T1& data1, const T2& data2, const T3& data3) { 00080 char mem[64]; 00081 BlynkParam cmd(mem, 0, sizeof(mem)); 00082 cmd.add(mPin); 00083 cmd.add("vw"); 00084 cmd.add(pin); 00085 cmd.add(data1); 00086 cmd.add(data2); 00087 cmd.add(data3); 00088 Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1); 00089 } 00090 00091 template <typename T1, typename T2, typename T3, typename T4> 00092 void virtualWrite(int pin, const T1& data1, const T2& data2, const T3& data3, const T4& data4) { 00093 char mem[64]; 00094 BlynkParam cmd(mem, 0, sizeof(mem)); 00095 cmd.add(mPin); 00096 cmd.add("vw"); 00097 cmd.add(pin); 00098 cmd.add(data1); 00099 cmd.add(data2); 00100 cmd.add(data3); 00101 cmd.add(data4); 00102 Blynk.sendCmd(BLYNK_CMD_HARDWARE, 0, cmd.getBuffer(), cmd.getLength()-1); 00103 } 00104 00105 void virtualWriteBinary(int pin, const void* buff, size_t len) { 00106 char mem[8]; 00107 BlynkParam cmd(mem, 0, sizeof(mem)); 00108 cmd.add(mPin); 00109 cmd.add("vw"); 00110 cmd.add(pin); 00111 Blynk.sendCmd(BLYNK_CMD_BRIDGE, 0, cmd.getBuffer(), cmd.getLength(), buff, len); 00112 } 00113 00114 void virtualWrite(int pin, const BlynkParam& param) { 00115 virtualWriteBinary(pin, param.getBuffer(), param.getLength()-1); 00116 } 00117 00118 private: 00119 int mPin; 00120 }; 00121 00122 #endif 00123
Generated on Tue Jul 12 2022 13:01:30 by 1.7.2