Difference between revisions of "Breath Analyser"
Line 34: | Line 34: | ||
==References and Credits== | ==References and Credits== | ||
− | * | + | * http://educ8s.tv/breathanalyzer/AlcoholTester.ino |
{{DISQUS}} | {{DISQUS}} |
Revision as of 12:11, 14 October 2015
Guru (talk) 11:27, 14 October 2015 (IST)
Contents
[hide]Components/Boards Used
1 | Explore One for Arduino | ![]() |
2 | OLED Display Module 128X64 | ![]() |
3 | Alcohol Gas Sensor (MQ3) board | ![]()
|
4 | Mini Breadboard | ![]()
|
5 | [ 3 cell Battery Holder] | ![]() |
Arduino code for Breath Analyser
This file contains 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
#include <DHT.h> | |
#include <Wire.h> | |
#include <ESP8266WiFi.h> | |
#include "font.h" | |
#define offset 0x00 // SDD1306 // offset=0 for SSD1306 controller | |
//#define offset 0x02 // SH1106 // offset=2 for SH1106 controller | |
#define OLED_address 0x3c | |
String apiKey = "things_speak_api_key"; | |
char ssid[20] = "wifi ssid"; | |
char password[20] = "wifi password"; | |
char TempValue[15]; | |
String str; | |
const char* server = "api.thingspeak.com"; | |
#define DHTPIN 5 // what pin we're connected to | |
DHT dht(DHTPIN, DHT11,15); | |
WiFiClient client; | |
void setup() { | |
Serial.begin(115200); // for debugging | |
Wire.begin(0,2); // Initialize I2C and OLED Display | |
init_OLED(); | |
reset_display(); | |
clear_display(); | |
delay(10); | |
sendStrXY("Connecting to ",0,0); | |
sendStrXY(ssid, 3, 0); | |
// Setup the Internet | |
WiFi.begin(ssid, password); | |
int pos = 0; | |
while (WiFi.status() != WL_CONNECTED) { | |
delay(500); | |
pos++; | |
sendStrXY(".", 5, pos); | |
} | |
sendStrXY("connected", 5, 0); | |
clear_display(); | |
delay(100); | |
//Setup the display Screen | |
sendStrXY("Explore Embedded" ,0,0); | |
sendStrXY("Temp:",3,0); | |
sendStrXY("Humidity:",4,0); | |
sendStrXY("InternetOfThings",7,0); | |
} | |
//String TempValue; | |
void loop() { | |
float h = dht.readHumidity(); | |
float t = dht.readTemperature(); | |
char tvalue[5], hvalue[5]; | |
if (isnan(h) || isnan(t)) { | |
Serial.println("Failed to read from DHT sensor!"); | |
return; | |
} | |
str = String(t); | |
str.toCharArray(tvalue,15); | |
sendStrXY(tvalue,3,10); | |
str = String(h); | |
str.toCharArray(hvalue,15); | |
sendStrXY(hvalue,4,10); | |
if (client.connect(server,80)) { // "184.106.153.149" or api.thingspeak.com | |
String postStr = apiKey; | |
postStr +="&field1="; | |
postStr += String(t); | |
postStr +="&field2="; | |
postStr += String(h); | |
postStr += "\r\n\r\n"; | |
client.print("POST /update HTTP/1.1\n"); | |
client.print("Host: api.thingspeak.com\n"); | |
client.print("Connection: close\n"); | |
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n"); | |
client.print("Content-Type: application/x-www-form-urlencoded\n"); | |
client.print("Content-Length: "); | |
client.print(postStr.length()); | |
client.print("\n\n"); | |
client.print(postStr); | |
Serial.print("Temperature: "); | |
Serial.print(t); | |
Serial.print(" degrees Celcius Humidity: "); | |
Serial.print(h); | |
Serial.println("% send to Thingspeak"); | |
} | |
client.stop(); | |
Serial.println("Waiting..."); | |
// thingspeak needs minimum 15 sec delay between updates | |
delay(20000); | |
} |
Downloads
- Complete Arduino code
References and Credits