So I am reposting this whilst following the guidelines:
A little background: I am making an infrared thermometer as a covid-19 project.
The products i use are:
-
A micro oled breakout display
SparkFun Micro OLED Breakout - LCD-13003 - SparkFun Electronics -
MLX90614 Evaluation Board
SparkFun IR Thermometer Evaluation Board - MLX90614 - SEN-10740 - SparkFun Electronics
My question is how do I connect these 2 products together and get the oled display to show the temperature recorded by the MLX90614 evaluation board.
I just wanted to say something which I forgot to add, I am doing this in SPI mode, so the MLX90614 evaluation board in SPI mode, and the micro oled breakout display in SPI mode too!
Below is my code enclosed in code tags which I learnt how to use it.
#include <Wire.h> // Include Wire.h - Arduino I2C library
#include <SparkFunMLX90614.h> // Include IR thermometer library
#include <SPI.h>
#include <Wire.h>
#include <SFE_MicroOLED.h>
#define PIN_RESET 9 // Connect RST to pin 9 (req. for SPI and I2C)
#define PIN_DC 8 // Connect DC to pin 8 (required for SPI)
#define PIN_CS 10 // Connect CS to pin 10 (required for SPI)
#define DC_JUMPER 0 // Set to either 0 (default) or 1 based on jumper, matching the value of the DC Jumper
// Also connect pin 13 to SCK and pin 11 to MOSI
//Declare a MicroOLED object. The parameters include:
//1 - Reset pin: Any digital pin
//2 - D/C pin: Any digital pin (SPI mode only)
//3 - CS pin: Any digital pin (SPI mode only, 10 recommended)
MicroOLED oled(PIN_RESET, PIN_DC, PIN_CS); //Example SPI declaration, comment out if using SPI
//MicroOLED oled(PIN_RESET, DC_JUMPER); //Example I2C declaration, uncomment if using I2C
IRTherm temp; // Create an IRTherm object called temp
void setup()
{
delay(100);
//Wire.begin(); //set up I2C bus, uncomment if you are using I2C
// Before you can start using the OLED, call begin() to init
// all of the pins and configure the OLED.
oled.begin();
temp.begin(); // Initialize I2C library and the MLX90614
temp.setUnit(TEMP_C); // Set units to Farenheit (alternatively TEMP_C or TEMP_K)
}
void loop ()
{
if (temp.read()) // Read from the sensor
{ // If the read is successful:
float ambientT = temp.ambient(); // Get updated ambient temperature
float objectT = temp.object(); // Get updated object temperature
oled.print("Ambient: " + String(ambientT));
oled.print("Object: " + String(objectT));
oled.display();
delay(100);
}
}
I am also facing this error when compiling the code:
In file included from /Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.cpp:17:0:
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.cpp: In member function 'uint8_t IRTherm::sleep()':
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.h:30:15: error: 'digitalPinToPinName' was not declared in this scope
#define SCL (digitalPinToPinName(PIN_WIRE_SCL))
^
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.cpp:276:10: note: in expansion of macro 'SCL'
pinMode(SCL, OUTPUT);
^~~
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.h:30:15: note: suggested alternative: 'digitalPinToBitMask'
#define SCL (digitalPinToPinName(PIN_WIRE_SCL))
^
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.cpp:276:10: note: in expansion of macro 'SCL'
pinMode(SCL, OUTPUT);
^~~
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.cpp: In member function 'uint8_t IRTherm::wake()':
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.h:30:15: error: 'digitalPinToPinName' was not declared in this scope
#define SCL (digitalPinToPinName(PIN_WIRE_SCL))
^
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.cpp:285:10: note: in expansion of macro 'SCL'
pinMode(SCL, INPUT); // SCL high
^~~
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.h:30:15: note: suggested alternative: 'digitalPinToBitMask'
#define SCL (digitalPinToPinName(PIN_WIRE_SCL))
^
/Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master/src/SparkFunMLX90614.cpp:285:10: note: in expansion of macro 'SCL'
pinMode(SCL, INPUT); // SCL high
^~~
Using library Wire at version 1.0 in folder: /private/var/folders/lm/_yd7wz4x21vfrn9rjpxtbz480000gn/T/AppTranslocation/479406B4-7227-4C12-852C-1CE8C77B7B8A/d/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/Wire
Using library SparkFun_MLX90614_Arduino_Library-master at version 1.0.3 in folder: /Users/evansoo/Documents/Arduino/libraries/SparkFun_MLX90614_Arduino_Library-master
Using library SPI at version 1.0 in folder: /private/var/folders/lm/_yd7wz4x21vfrn9rjpxtbz480000gn/T/AppTranslocation/479406B4-7227-4C12-852C-1CE8C77B7B8A/d/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SPI
Using library SparkFun_Micro_OLED_Arduino_Library-master at version 1.2.7 in folder: /Users/evansoo/Documents/Arduino/libraries/SparkFun_Micro_OLED_Arduino_Library-master
exit status 1
Error compiling for board Arduino Uno.