Skip to content

Instantly share code, notes, and snippets.

@m2wasabi
Last active December 17, 2017 23:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save m2wasabi/49f40f78d4bf9877abe856a74bdb4838 to your computer and use it in GitHub Desktop.
Save m2wasabi/49f40f78d4bf9877abe856a74bdb4838 to your computer and use it in GitHub Desktop.
NefryBTで温度計

NefryBTで温度計

さむい!

How to use

1. 温湿度センサの接続

NefryBTのA0端子にGrove温湿度センサを接続する

2. DHTセンサライブラリの導入

ライブラリマネージャから DHT sensor library by Adafruit をインストールする

3. 日本語ライブラリの導入

以下を参照して日本語フォントフォントを導入する
NefryBTで日本語表示させてみる | Qiita

4. スケッチをインストールする

temp_meter_jp.inoを参照

#include <stdio.h>
#include <Nefry.h>
#include <NefryDisplay.h>
#include <NefrySetting.h>
#include <misakiUTF16.h>
#include "DHT.h"
#define DHTPIN A0
#define DHTTYPE DHT11
DHT dht( DHTPIN, DHTTYPE );
void setting(){
Nefry.disableWifi();
Nefry.disableDisplayStatus();
}
NefrySetting nefrySetting(setting);
void misakiPrint(int x, int y, char * pUTF8) {
int n=0;
byte buf[20][8]; //160x8ドットのバナー表示パターン
while(*pUTF8)
pUTF8 = getFontData(&buf[n++][0], pUTF8); // フォントデータの取得
// 文字の描画
for (byte i=0; i < 8; i++) {
for (byte j=0; j < n; j++) {
for (byte k=0; k<8;k++) {
if(bitRead(buf[j][i],7-k)) {
NefryDisplay.setPixel(x + 8*j + k , y + i);
}
}
}
}
}
int iter = 0;
void displayTempInfo() {
float h = dht.readHumidity();
float t = dht.readTemperature();
char buffer[50];
if( isnan(t) || isnan(h) )
{
NefryDisplay.drawString(0,0, "Failed to read from DHT" );
}
else
{
NefryDisplay.setFont(ArialMT_Plain_24);
sprintf(buffer,"しつど:",h);
misakiPrint(0, 0, buffer);
sprintf(buffer,"%.2f %%",h);
NefryDisplay.drawString(32, 0, buffer);
sprintf(buffer,"温度:");
misakiPrint(0, 30, buffer);
sprintf(buffer,"%.2f *C",t);
NefryDisplay.drawString(32, 30, buffer);
if(t < 10.0){
sprintf(buffer,"こごえしぬ!");
}else if(t < 18.0) {
sprintf(buffer,"さむい!");
} else if(t < 26.0){
sprintf(buffer,"かいてき");
} else if(t < 36.0){
sprintf(buffer,"あつい!");
}else {
sprintf(buffer,"わからん");
}
misakiPrint(50, 55, buffer);
NefryDisplay.setFont(ArialMT_Plain_10);
sprintf(buffer,"%d",iter);
NefryDisplay.drawString(100, 52, buffer);
iter++;
}
}
void setup() {
dht.begin();
}
void loop() {
NefryDisplay.clear();
displayTempInfo();
NefryDisplay.display();
delay(5000);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment