设为首页收藏本站

咖啡集成CAFFZ - 智能开发者社区

 找回密码
 立即注册
搜索
查看: 33|回复: 4

脉冲风力计

[复制链接]

1111

经验值

161

帖子

2479

金币

积分
1114
发表于 2019-7-10 14:41:31 | 显示全部楼层 |阅读模式
本帖最后由 chnzbq 于 2019-7-10 15:18 编辑

首先,看懂水流速度计算的例子:
https://blog.csdn.net/song527730241/article/details/51134585


接线类似上例



代码 :
#define PIN 2

volatile long count =0;
void setup() {
// put your setup code here, to run once:
pinMode(PIN,INPUT);
attachInterrupt(0,blinkA,FALLING);
Serial.begin(9600);

}

long c=0;
void loop() {
// put your main code here, to run repeatedly:
c=count;
//Serial.println(c);
Serial.print(c/10*1.75);
Serial.println("m/s");
   count=0;
   c=0;
delay(1000);
}
void blinkA()
{
count++;
}

运行结果:

微信图片_20190710092559.png

1111

经验值

161

帖子

2479

金币

积分
1114
 楼主| 发表于 2019-7-18 14:12:00 | 显示全部楼层
脉冲风力计


使用Arduino读取水流速传感器的脉冲数.png

1111

经验值

161

帖子

2479

金币

积分
1114
 楼主| 发表于 2019-7-19 16:27:22 | 显示全部楼层

1111

经验值

161

帖子

2479

金币

积分
1114
 楼主| 发表于 2019-7-27 18:21:46 | 显示全部楼层
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>


extern "C" {
  #include "user_interface.h"
}

#define UKey "" // Yeelink提供的U-ApiKey
String ssid = "CAFFZ"; // 需要连接的wifi热点名称
String password = "www.caffz.com"; // 需要连接的wifi热点密码
String payloadIP="";

const byte PIN = D5;

void ICACHE_RAM_ATTR blinkA();

volatile long count =0;
int flg=0;
void setup() {
// put your setup code here, to run once:
pinMode(PIN,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(D5),blinkA,FALLING);
Serial.begin(115200);

int connectCount = 0;
  WiFi.begin ( ssid.c_str(), password.c_str() );
  while ( WiFi.status() != WL_CONNECTED ) {
    delay ( 1000 );
    Serial.print ( "." );
    if(connectCount > 30) {
      Serial.println( "Connect fail!" );
      //break;
    }
    connectCount += 1;
  }
  if(WiFi.status() == WL_CONNECTED) {
    Serial.println ( "" );
    Serial.print ( "Connected to " );
    Serial.println ( ssid );
    Serial.print ( "IP address: " );
    Serial.println ( WiFi.localIP() );
    connectCount = 0;
    flg=1;
  }
}

float cnt=0;
float tmp=0;

long c=0;
void loop() {
  if(flg==1)
  {
    // put your main code here, to run repeatedly:
    c=count;
    //Serial.println(c);
    float spd=c/20.00*1.75;
    Serial.print(spd);
    Serial.println("m/s");
   
    cnt++;
    if(spd>tmp) tmp=spd;
    if(cnt>=60)
    {
      sendServer(tmp);
      tmp=0;
      cnt=0;
      }
      
       count=0;
       c=0;
    delay(1000);
  }
}
void blinkA()
{
count++;
}

void sendServer(float t) {
  HTTPClient http;
  const String apiAddress = "/smart_farm/index.php?c=collector&a=insert&sn=160.14&sv="+String(t);
  http.begin("cloud.caffz.com", 20000, apiAddress);
  int httpCode =  http.GET(); // 使用GET形式来取得数据
  Serial.print("code:");
  Serial.println(httpCode);
  if(httpCode == 200) { // 访问成功,取得返回参数
      String payload = http.getString();
      Serial.println(payload);
  } else { // 访问不成功,打印原因
     String payload = http.getString();
     Serial.print("context:");
     Serial.println(payload);
  }
}
高级模式
B Color Image Link Quote Code Smilies @朋友

本版积分规则

QQ|站点统计|Archiver|手机版|小黑屋|CAFFZ社区 - 每一天我们都有新的知识产生 ( 粤ICP备18101488号  

GMT+8, 2019-9-15 22:50 , Processed in 1.404002 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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