diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0e56cf2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+config.h
diff --git a/teasense.ino b/teasense.ino
new file mode 100644
index 0000000..fcac83c
--- /dev/null
+++ b/teasense.ino
@@ -0,0 +1,141 @@
+/*
+ * teasense.ino - Arduino code for the tea sensor
+ * Copyright (C) 2023 William Moore
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation, either version 3 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see .
+ */
+
+ // Coded for the Arduino Uno WiFi rev. 2
+// Uses a standard PT100 RTD and the Adafruit MAX 31865 interface.
+
+#include
+#include
+#include
+
+// Create a file called config.h that contains the following:
+// char ssid[] = "SSID";
+// char pass[] = "Password";
+
+#include "config.h"
+
+// Use software SPI: CS, DI, DO, CLK
+Adafruit_MAX31865 thermo = Adafruit_MAX31865(10, 11, 12, 13);
+#define RREF 430.0
+// The 'nominal' 0-degrees-C resistance of the sensor
+// 100.0 for PT100, 1000.0 for PT1000
+#define RNOMINAL 100.0
+
+int status = WL_IDLE_STATUS; //connection status
+const int port = 80;
+WiFiServer server(port);
+
+void setup() {
+ Serial.begin(9600);
+
+ thermo.begin(MAX31865_3WIRE); // set to 2WIRE or 4WIRE as necessary
+
+ Serial.println("Welcome to teasense!");
+
+ String fv = WiFi.firmwareVersion();
+ if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
+ Serial.println("Please upgrade the firmware");
+ }
+
+ // attempt to connect to WiFi network:
+ while (status != WL_CONNECTED) {
+ Serial.print("Attempting to connect to SSID: ");
+ Serial.println(ssid);
+ // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
+ WiFi.setHostname("teasensor");
+ status = WiFi.begin(ssid, pass);
+
+ // wait 10 seconds for connection:
+ delay(10000);
+ }
+ server.begin();
+ // you're connected now, so print out the status:
+ printWifiStatus();
+
+}
+
+void printWifiStatus() {
+ // print the SSID of the network you're attached to:
+ Serial.print("SSID: ");
+ Serial.println(WiFi.SSID());
+
+ // print your board's IP address:
+ IPAddress ip = WiFi.localIP();
+ Serial.print("IP Address: ");
+ Serial.println(ip);
+
+ IPAddress gw = WiFi.gatewayIP();
+ Serial.print("Gateway IP: ");
+ Serial.println(gw);
+
+ // print the received signal strength:
+ long rssi = WiFi.RSSI();
+ Serial.print("signal strength (RSSI):");
+ Serial.print(rssi);
+ Serial.println(" dBm");
+}
+
+void enable_WiFi() {
+
+ String fv = WiFi.firmwareVersion();
+ if (fv < "1.0.0") {
+ Serial.println("Please upgrade the firmware");
+ }
+ Serial.println(fv);
+}
+
+void connect_WiFi() {
+ // attempt to connect to Wifi network:
+
+ // while (status != WL_CONNECTED) {
+ Serial.print("Attempting to connect to SSID: ");
+ Serial.println(ssid);
+ // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
+ WiFi.disconnect();
+
+ status = WiFi.begin(ssid, pass);
+ // wait 10 seconds for connection:
+ delay(5000);
+ // }
+}
+
+int resetCounter = 0;
+
+void loop() {
+ WiFiClient client = server.available();
+ if (client) {
+ Serial.println("new client"); // print a message out the serial port
+ String currentLine = ""; // make a String to hold incoming data from the client
+ if (client.connected()) {
+ Serial.println("Reading data from sensor");
+ String postData = "{\"temperature\": ";
+ postData += thermo.temperature(RNOMINAL, RREF);
+ postData += "}";
+ // Serial.println(postData);
+ String httpResponse = "HTTP/1.1 200 OK\r\n";
+ httpResponse += "Content-type: application/json\r\n";
+ httpResponse += "Connection: close\r\n\r\n";
+ httpResponse += postData;
+ client.print(httpResponse);
+ Serial.println("HTTP Data Written");
+ }
+ delay(1);
+ Serial.println("Data written");
+ client.stop();
+ }
+}