Created
February 22, 2020 17:04
-
-
Save devm33/7f4d866a4f906095de6e253d6a5088b2 to your computer and use it in GitHub Desktop.
temp sensor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/**************************************************************************/ | |
/*! | |
This is a demo for the Adafruit MCP9808 breakout | |
----> http://www.adafruit.com/products/1782 | |
Adafruit invests time and resources providing this open source code, | |
please support Adafruit and open-source hardware by purchasing | |
products from Adafruit! | |
*/ | |
/**************************************************************************/ | |
#include <Wire.h> | |
#include "Adafruit_MCP9808.h" | |
#include <ESP8266WiFi.h> | |
#ifndef STASSID | |
#define STASSID "GoogleGuest-Legacy" | |
#define STAPSK "" | |
#endif | |
const char* ssid = STASSID; | |
const char* password = STAPSK; | |
// Create the MCP9808 temperature sensor object | |
Adafruit_MCP9808 tempsensor = Adafruit_MCP9808(); | |
void setup() { | |
Serial.begin(115200); | |
Serial.println(); | |
Serial.println(); | |
Serial.print("Connecting to..."); | |
Serial.println(ssid); | |
WiFi.mode(WIFI_STA); | |
WiFi.begin(ssid, password); | |
while (WiFi.status() != WL_CONNECTED) { | |
delay(500); | |
Serial.print("."); | |
} | |
Serial.println(""); | |
Serial.println("Wi-Fi connected successfully"); | |
Serial.println("IP address: "); | |
Serial.println(WiFi.localIP()); | |
while (!Serial); //waits for serial terminal to be open, necessary in newer arduino boards. | |
Serial.println("MCP9808 demo"); | |
// Make sure the sensor is found, you can also pass in a different i2c | |
// address with tempsensor.begin(0x19) for example, also can be left in blank for default address use | |
// Also there is a table with all addres possible for this sensor, you can connect multiple sensors | |
// to the same i2c bus, just configure each sensor with a different address and define multiple objects for that | |
// A2 A1 A0 address | |
// 0 0 0 0x18 this is the default address | |
// 0 0 1 0x19 | |
// 0 1 0 0x1A | |
// 0 1 1 0x1B | |
// 1 0 0 0x1C | |
// 1 0 1 0x1D | |
// 1 1 0 0x1E | |
// 1 1 1 0x1F | |
if (!tempsensor.begin(0x18)) { | |
Serial.println("Couldn't find MCP9808! Check your connections and verify the address is correct."); | |
while (1); | |
} | |
Serial.println("Found MCP9808!"); | |
tempsensor.setResolution(3); // sets the resolution mode of reading, the modes are defined in the table bellow: | |
// Mode Resolution SampleTime | |
// 0 0.5°C 30 ms | |
// 1 0.25°C 65 ms | |
// 2 0.125°C 130 ms | |
// 3 0.0625°C 250 ms | |
} | |
void loop() { | |
Serial.println("wake up MCP9808.... "); // wake up MCP9808 - power consumption ~200 mikro Ampere | |
tempsensor.wake(); // wake up, ready to read! | |
// Read and print out the temperature, also shows the resolution mode used for reading. | |
Serial.print("Resolution in mode: "); | |
Serial.println (tempsensor.getResolution()); | |
float c = tempsensor.readTempC(); | |
float f = tempsensor.readTempF(); | |
Serial.print("Temp: "); | |
Serial.print(c, 4); Serial.print("*C\t and "); | |
Serial.print(f, 4); Serial.println("*F."); | |
delay(2000); | |
Serial.println("Shutdown MCP9808.... "); | |
tempsensor.shutdown_wake(1); // shutdown MSP9808 - power consumption ~0.1 mikro Ampere, stops temperature sampling | |
Serial.println(""); | |
delay(200); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment