summaryrefslogtreecommitdiff
path: root/cricket.ino
diff options
context:
space:
mode:
Diffstat (limited to 'cricket.ino')
-rw-r--r--cricket.ino85
1 files changed, 85 insertions, 0 deletions
diff --git a/cricket.ino b/cricket.ino
new file mode 100644
index 0000000..7979c61
--- /dev/null
+++ b/cricket.ino
@@ -0,0 +1,85 @@
+//D1 mini / ESP8266 Board: http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json
+
+#include "DHT.h" //https://github.com/adafruit/DHT-sensor-library
+#include <ESP8266WiFi.h>
+#include <PubSubClient.h> //https://github.com/knolleary/pubsubclient
+
+#define WIFI_SSID "SSID"
+#define WIFI_PASS "PASS"
+WiFiClient wifiClient;
+
+#define MQTT_ID "cricket0"
+#define MQTT_BROKER "BROKER"
+PubSubClient mqttClient(wifiClient);
+
+#define DHTPIN 5 //Pin D1
+#define DHTTYPE DHT22 //Temp and Humidity Sensor
+DHT dht(DHTPIN, DHTTYPE);
+
+void setup() {
+ Serial.begin(115200);
+ Serial.println("Initialised...");
+ connectWifi();
+ delay(1000);
+ dht.begin();
+}
+
+void connectWifi() {
+ delay(200);
+ Serial.print("Connecting to WiFi: ");
+ Serial.println(WIFI_SSID);
+ WiFi.mode(WIFI_STA);
+ WiFi.begin(WIFI_SSID, WIFI_PASS);
+
+ while(WiFi.status() != WL_CONNECTED) {
+ delay(150);
+ Serial.print(".");
+ }
+
+ Serial.println();
+ Serial.println("WiFi: Connected");
+ Serial.print("IP address: ");
+ Serial.println(WiFi.localIP());
+ Serial.print("MAC address: ");
+ Serial.println(WiFi.macAddress());
+}
+
+void connectMqtt() {
+ Serial.print("Connecting to MQTT: ");
+ Serial.println(MQTT_BROKER);
+ while (!mqttClient.connected()) {
+ mqttClient.setServer(MQTT_BROKER, 1883);
+ if (mqttClient.connect(MQTT_ID)) {
+ Serial.println("Connected");
+ } else {
+ Serial.print(".");
+ }
+ delay(150);
+ }
+}
+
+void loop() {
+ delay(1500);
+ float h = dht.readHumidity();
+ float t = dht.readTemperature();
+
+ char t_msg[20];
+ char h_msg[20];
+ // Check if any reads failed and exit early (to try again).
+ if (isnan(h) || isnan(t)) {
+ Serial.println("Failed to read from DHT sensor!");
+ return;
+ }
+ Serial.print("Humidity: ");
+ Serial.print(h);
+ Serial.print(" Temperature: ");
+ Serial.println(t);
+
+ if(!mqttClient.connected()) {
+ connectMqtt();
+ }
+ dtostrf(t, 1, 2, t_msg);
+ mqttClient.publish("temperature", t_msg);
+ dtostrf(h, 1, 2, h_msg);
+ mqttClient.publish("humidity", h_msg);
+}