본문 바로가기
python/python 수업

dhttest

by sj0020 2020. 9. 11.

 

1. 시간
    input 받아서 온도, 습도, index 출력 (1개)
    "온도는 x, 습도 y, index z다"

2. 온도 23도 이상
    습도 90% 이상 10개 (sort) 온도 습도 인덱스 값
    데이터 시각화 (온도, 습도, 인덱스 값)
    - 0911.csv 각자 : 제출 (4시)
    - 본인.csv 도와주셔도 됩니다 : 제출 (4시 40분)

※ 파이썬 잘 쓸 수 있냐? 기본 문법
    import - 라이브러리 사용
    리스트, dict, tuple, 변수, def, for, while
    if, >=, ==, print, input
    플랫폼 코랩 사용해서 .ipnyb 파일로 제출
#include <Time.h>
#include <TimeAlarms.h>
#include "DHT.h"
#include "TimeLib.h"

#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

void setup() 
{
  setTime (10,33,0,11,9,2020);
  Serial.begin(9600);
  dht.begin();
  Serial.println("CLEARDATA");
  Serial.println("LABEL, Date, Time, Temp, Humi");
}

void loop() 
{
  delay(2000);
  float hum = dht.readHumidity();
  float tem = dht.readTemperature();
  float f = dht.readTemperature(true);

  if (isnan(hum) || isnan(tem) || isnan(f)) {
    Serial.println ("Failed to read from DHT sensor!");
    return;
  }

  float hif = dht.computeHeatIndex(f, hum);
  float hic = dht.computeHeatIndex(tem, hum, false);

  Serial.print("DATA,");
  //20200911,
  Serial.print(year());
  Serial.print("0");
  Serial.print(month());
  Serial.print(day());
  Serial.print(",");
  //10:33:
  Serial.print(hour());
  Serial.print(":");
  Serial.print(minute());
  Serial.print(":");
  Serial.print(second());
  Serial.print(",");
  //tem,
  Serial.print(tem);
  Serial.print(",");
  //hum
  Serial.println(hum);
  
  
 
  
}

 

 

import csv
import matplotlib.pyplot as plt
import operator

f = open('0911.csv', encoding='cp949')
data = csv.reader(f, delimiter=',')
header = next(data) # 첫줄 띄워넘으려면 넣어야됨

time = 0
temp = 0
hum = 0
templist = []
humlist = []
indexlist = []
indexlist2 = []
tempdic={}
humdic={}

tentemp = []
tenhum= []
tentempindex = []
tenhumindex = []


time = input("시간 입력(0(고정):(0~28):(0~58)2초간격으로 입력) : ")
for row in data :
  if time in row :
    print("그 때의 온도는 %d도 습도는 %d%% index는 %d다" %(int(row[2]), int(row[3]), int(row[4])))
 
  
  if row[-3] >= "23" and row[-2] >= "90" :
    templist.append(float(row[-3]))
    humlist.append(float(row[-2]))
    indexlist.append(float(row[-1]))
    indexlist2.append(float(row[-1]))

print(templist)
print(humlist)
print(indexlist)
print(indexlist2)

for indexlist,templist in zip(indexlist, templist) :
  tempdic[indexlist] = templist

for indexlist2,humlist in zip(indexlist2, humlist) :
  humdic[indexlist2] = humlist

print(tempdic)
print(humdic)  

revtemp = sorted(tempdic.items(), key=operator.itemgetter(1), reverse=True)
revhum = sorted(humdic.items(), key=operator.itemgetter(1), reverse=True)
print(revtemp)
print(revhum)  


for i in range (10) :
  #tentemp.append(revtemp[i][1])
  #tenhum.append(revhum[i][1])
  tentempindex.append(revtemp[i][0])
  tenhumindex.append(revhum[i][0])

#print(tentemp)
#print(tenhum)
print(tentempindex)
print(tenhumindex)  

plt.title('index')
plt.plot(range(10), tentempindex,label = 'temp index') 
plt.plot(range(10), tenhumindex,label = 'hum index')
plt.legend() #범례
plt.show() # plot출력




for row in data :

 row[2] = float(row[2])  왜 안되는지 모르겠음

 

'python > python 수업' 카테고리의 다른 글

딕셔너리 key/value 로 정렬  (0) 2020.09.08
fairytale slicing  (0) 2020.09.08
데이터시각화 matplot weather0106  (0) 2020.09.08
과제 - 생일 일교차  (0) 2020.08.28
weather - colab 최고온도  (0) 2020.08.18