は結構お気に入りだ。
その証拠に、もう幾度も記事に登場している。
測定部先端までが長く、測定部が小さいので、奥まで届くし、狭いところでも測定できる。
やっぱりESP8266でも扱いたいので、作例を探してみた。
見つけたのは Wiring Thermocouple MAX6675 on ESP8266 12E NodeMCU という記事だ。
必要なものが列挙してあるが、ESP8266 12E, 13 NodeMCU Board ではなくESP-WROOM-02 + FT232RLモジュール を使う。
また、I2C 0.96” OLED Screen は持ってないので使わない。
元のスケッチから、OLED Screen に表示する部分をすべて取り除いたらこれだけになってしまった。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <max6675.h> #include <Wire.h> int ktcSO = 12; int ktcCS = 13; int ktcCLK = 14; MAX6675 ktc(ktcCLK, ktcCS, ktcSO); void setup(){ Serial.begin(74880); } void loop(){ float DC = ktc.readCelsius(); float DF = ktc.readFahrenheit(); Serial.print("C = "); Serial.print(DC); Serial.print("\t F = "); Serial.println(DF); delay(3000); } |
とりあえず、ただ、淡々とシリアル・モニタに温度を表示するだけだ。
MAX6675のライブラリはここからもらってくる。
そのままコンパイルすると util¥delay.h が無いとかのエラーが出る。
max6675.cpp の #include <util¥delay.h> がお気に召さないらしい。
Adafruitのフォーラムに書かれていたのを参考にして直したら動くようになった。
オリジナル
1 2 3 4 5 6 7 8 |
#ifdef __AVR #include <avr/pgmspace.h> #elif defined(ESP8266) #include <pgmspace.h> #endif #include <util/delay.h> #include <stdlib.h> #include "max6675.h" |
変更後
1 2 3 4 5 6 7 8 9 10 |
#ifdef __AVR #include <avr/pgmspace.h> #elif defined(ESP8266) #include <pgmspace.h> #endif //#include <util/delay.h>//sahara comment outed this line #define _delay_ms(ms) delayMicroseconds((ms) * 1000)//sahara added this line #include <stdlib.h> #include <SPI.h>//sahara added this line #include "max6675.h" |
華氏の部分も削り、Wi-Fiまわりのコードを付け足して、ThingSpeakへデータを送ってみた。