forked from boblemaire/IoTaWatt
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Setup.ino
111 lines (82 loc) · 2.72 KB
/
Setup.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
void setup()
{
//*************************************** Start Serial connection (if any)***************************
Serial.begin(115200);
delay(1000);
if(Serial)Serial.println("Serial Initialized");
//*************************************** Start SPI *************************************************
pinMode(pin_CS_ADC0,OUTPUT);
digitalWrite(pin_CS_ADC0,HIGH);
pinMode(pin_CS_ADC1,OUTPUT);
digitalWrite(pin_CS_ADC1,HIGH);
pinMode(pin_CS_SDcard,OUTPUT);
digitalWrite(pin_CS_SDcard,HIGH);
pinMode(pin_CS_GPIO,OUTPUT);
digitalWrite(pin_CS_GPIO,HIGH);
SPI.begin();
SPI.beginTransaction(SPISettings(2000000,MSBFIRST,SPI_MODE0));
Serial.println("SPI started.");
//*************************************** Initialize the MCP23S17 GPIO extender *********************
GPIO.begin(pin_CS_GPIO);
GPIO.writePin(yellowLedPin,HIGH);
//*************************************** Initialize the SD card ************************************
while (!SD.begin(pin_CS_SDcard)) {
Serial.println("SD initialization failed!");
Serial.println("insert SD card");
return;
}
Serial.println("SD initialized");
//*************************************** Start the internet connection *****************************
WiFiManager wifiManager;
wifiManager.autoConnect("IoTaWatt","xyz");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Starting UDP");
udp.begin(localPort);
Serial.print("Local port: ");
Serial.println(udp.localPort());
//*************************************** Start the clock *******************************************
last_sample_time = millis();
last_post_time = last_sample_time;
//************************************* Process Config file *****************************************
GPIO.writePin(yellowLedPin,LOW);
if(!getConfig())
{
Serial.println("Configuration failed");
dropDead();
}
//*************************************** Measure and report Aref voltage****************************
Serial.print("Aref=");
Serial.println(getAref(),3);
}
void printHex(uint32_t data)
{
byte digit;
digit = data >> 24;
if (digit < 16) Serial.print("0");
Serial.print(digit,HEX);
digit = (data >> 16) & 0xFF;
if (digit < 16) Serial.print("0");
Serial.print(digit,HEX);
digit = (data >> 8) & 0xFF;
if (digit < 16) Serial.print("0");
Serial.print(digit,HEX);
digit = data & 0xFF;
if (digit < 16) Serial.print("0");
Serial.print(digit,HEX);
Serial.println();
return;
}
void dropDead()
{
GPIO.writePin(yellowLedPin,LOW);
while(1)
{
GPIO.writePin(redLedPin,HIGH);
delay(500);
GPIO.writePin(redLedPin,LOW);
delay(500);
}
return;
}