温湿度センサーのwifi接続


ド素人農家  2022-08-22 17:31:54  No: 150379

初めて投稿させて頂きます
ご教示頂きたく投稿しました。

さて、現在、温湿度センサー(プログラム済)のデータをwifi経由でambientへ送信するため、書籍を読みながら対応しております。
その中で温湿度センサーのプログラムを下記のように作成しました。

#include "Wire.h"

#define SI7021_ADDR 0x40
#define SI7021_TEMP_HOLD 0xE3
#define SI7021_TEMP_NOHOLD 0xF3
#define SI7021_RH_HOLD 0xE5
#define SI7021_RH_NOHOLD 0xF5
#define SI7021_RESET 0xFE

void reset(void){
Wire.beginTransmission(SI7021_ADDR);
Wire.write(SI7021_RESET);
Wire.endTransmission();
delay(50);
}

float readHumidity(void){
Wire.beginTransmission(SI7021_ADDR);
Wire.write(SI7021_RH_NOHOLD);
Wire.endTransmission();

  while(true){
    if(Wire.requestFrom(SI7021_ADDR,3)==3){
      uint16_t hum = Wire.read()<<8|Wire.read();
      uint8_t chxsum = Wire.read();
      return(float)hum*125/65536 - 6;
      }
      
    delay(6);
  }
}

 float readTemperature(void){
  Wire.beginTransmission(SI7021_ADDR);
  Wire.write(SI7021_TEMP_NOHOLD);
  Wire.endTransmission();

  while(true){
    if(Wire.requestFrom(SI7021_ADDR,3)==3){
      uint16_t temp = Wire.read()<<8|Wire.read();
      uint8_t chxsum = Wire.read();
      return(float)temp * 175.72/65536 - 46.85;
      }
    delay(6);
    }
  }
 void setup(){
  Serial.begin(115200);
  while(!Serial);
  
  Wire.begin(21,22);
  reset();
 }

******************************************************
#include "WiFi.h"

const char* ssid = "SSID";//SSIDには使用wifiのSSID記入
const char* password = ""password;//passwordには使用wifiのpass記入

void setup(){
 WiFi.begin(ssid,password);
while(WiFi.status()!=WL_CONNECTED){
  delay(500)
  Serial.print(".");
}
Serial.printIn("WuFi connected");
Serial.print("IP address:");
Serial.printIn(WiFi.localIP());
}

**********************************************
  
  void loop() {
  float temp = readTemperature();
  float humid = readHumidity();
  Serial.printf("temp;%.2f,humid:%.2f/r/n",temp,humid);
  delay(1000);
}

その中で、************部分の内容で質問です。
*****内を除いた箇所では温湿度センサーを作動させることができましたが、そのプログラムとwifiを接続するプログラムの配置がよくわからず、下記の質問にご回答頂きたいです。

①wifiのプログラム と 温湿度センサーのプログラムを同時に組むと,void setupが重複してしまいます。
コンパイルしていてもエラーが出るため、おかしいとは思うのですが、このような場合どうしたらよいのでしょうか?

②また、仮に重複してはいけない場合、どのように対応したらよいでしょうか?

ご教示頂ければ幸いです


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加