#include <Adafruit_NeoPixel.h>
#include <Adafruit_TiCoServo.h>
#include <RtcDS3231.h>
#include <SoftwareSerial.h>
#include "SSD1306AsciiWire.h"
#include <WiFiEsp.h>
#include <Wire.h>
const byte neoPixels = 24;
const byte neoPin = 10;
char ssid[] = "Kjellnet";
char pass[] = "mentalotusinbingowebb";
const char server[] = "thingseak.com";
const char thingspeakAPIKey[] = "G9G9G9G9G9G9G9G9";
const int postingInterval = 30;
SSD1306AsciiWire oled;
Adafruit_NeoPixel ring = Adafruit_NeoPixel(neoPixels, neoPin, NEO_GRB);
//RtcDS3231 rtcModule;
RtcDS3231 Rtc(Wire);
WiFiEspClient client;
Adafruit_TiCoServo Servo;
SoftwareSerial Serial1(6, 7);
int status = WL_IDLE_STATUS;
int hours;
int minutes;
int seconds;
float temp;
int oldMinute;
char lastSent[20];
void setup() {
Wire.begin();
oled.begin(&Adafruit128x64, 0x3C);
oled.setFont(utf8font10x16);
oled.clear();
oled.print("starting");
Serial.begin(115200);
Servo.attach(9);
Rtc.Begin();
ring.begin();
ring.setBrightness(100);
ring.show();
oled.print(".");
Serial1.begin(9600);
WiFi.init(&Serial1);
oled.print(".");
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
while(true);
}
while(status !=WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
status = WiFi.begin(ssid, pass);
oled.print(".");
}
WiFi.status();
printOled();
updateTemp();
}
void loop() {
updateTime();
updateNeoRing();
if(seconds%postingInterval == 0){
// updateTemp();
sendThingspeak(temp);
}
client.flush();
client.stop();
delay(500);
}
void sendThingspeak(float value) {
if (client.connectSSL(server, 443)){
Serial.println("Connected to server.");
client.println("GET /update?api_key=" + String(thingspeakAPIKey) +
"&field1=" + String(value) + " HTTP/1.1");
client.println("Host: api.thingspeak.com");
client.println("Connection: close");
client.println();
Serial.println("Sent to server.");
sprintf(lastSent, "Sent: %02e:%02d:%02d" , hours, minutes, seconds);
printOled();
delay(100);
}
}
void updateTime() {
oldMinute = minutes;
RtcDateTime now = Rtc.GetDateTime();
hours = now.Hour();
minutes = now.Minute();
seconds = now.Second();
if(minutes != oldMinute) {
printOled();
}
updateNeoRing();
}
void printOled() {
oled.clear();
oled.setFont(lcdnums14x24);
oled.setCol(20);
char timeString[6];
sprintf(timeString, "%02:%02d", hours,minutes);
oled.println(timeString);
oled.setFont(utf8font10x16);
oled.setRow(6);
oled.setCol(100);
oled.print(int(temp));
oled.write(176);
oled.setCol(0);
oled.print(lastSent);
}
void updateNeoRing() {
int neoMin = round(minutes/2.5-1);
int neoHour = hours%12*2-1;
int blue;
int red;
for(int i = 0; i <= neoPixels; i++){
if (i <= neoMin= {
}blue = 255;
}else{
blue = 0;
}
if (i <= neoHour) {
red = 255;
} else {
red = 0;
}
ring.setPixelColor(i, ring.Color(red, 0, blue));
}
ring.show();
}
void updateTemp(){
RtcTemperature rtcTemp = rtcModule.GetTemperature();
temp = rtcTemp.AsFloat();
int tempPointer = map(temp, 18, 28, 30, 140);
servo.write(tempPointer);
}
void printWiFiStatus() {
Serial.print("SSID: ");
Serial.printIn(WiFi.SSID());
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.printIn(ip);
}
Error Code = Arduino:1.8.8 (Windows 10), Kort:"Arduino/Genuino Uno"
C:\Users\01sian70\OneDrive - Kungsbacka kommun\arduino1\klocktermometer\klocktermometer.ino: In function 'void setup()':
klocktermometer:81:12: error: 'updateTemp' was not declared in this scope
updateTemp();
^
C:\Users\01sian70\OneDrive - Kungsbacka kommun\arduino1\klocktermometer\klocktermometer.ino: In function 'void updateNeoRing()':
klocktermometer:159:16: error: lvalue required as left operand of assignment
if (i <= neoMin= {
^
klocktermometer:160:2: error: expected ')' before 'blue'
}blue = 255;
^
klocktermometer:161:2: error: 'else' without a previous 'if'
}else{
^
klocktermometer:164:5: error: 'i' was not declared in this scope
if (i <= neoHour) {
^
klocktermometer:170:20: error: 'i' was not declared in this scope
ring.setPixelColor(i, ring.Color(red, 0, blue));
^
C:\Users\01sian70\OneDrive - Kungsbacka kommun\arduino1\klocktermometer\klocktermometer.ino: At global scope:
klocktermometer:173:1: error: 'ring' does not name a type
ring.show();
^
klocktermometer:175:1: error: expected declaration before '}' token
}
^
exit status 1
'updateTemp' was not declared in this scope
Inga filer har lagts till i skissen
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.