View difference between Paste ID: uNcXswCN and wJsm0qkf
SHOW: | | - or go back to the newest paste.
1
#include <YoutubeApi.h>
2
#include <ESP8266WiFi.h>
3
#include <WiFiClientSecure.h>
4
#include <ArduinoJson.h> // This Sketch doesn't technically need this, but the library does so it must be installed.
5
//This are just for the Hello message
6
#include "7seg_helo.h"
7
#include "shift.h"
8
9
//Outputs
10
#define MAX7219_Data_IN 2         //D4 of WeMos
11
#define MAX7219_Chip_Select  0    //D3 of WeMos
12
#define MAX7219_Clock 4           //D2 of WeMos
13
14
int buzzer = 15;                  //D8 of WeMos
15
16
//Variabels
17
byte adr = 0x08;
18
byte num = 0x00;
19
int i = 0;
20
long subs = 0;
21
String thisString_prev;
22
23
24
//////////////////////////////////////////////////////////////////////////////////
25
//------- Replace the following! ------
26
char ssid[] = "You shall not pass!";              // your network SSID (name)
27
char password[] = "0889565101";                // your network key
28
#define API_KEY "AIzaSyAYP811eRHcoPBCqodOIA2reTb2UWa870E"
29
#define CHANNEL_ID "UCu7_D0o48KbfhpEohoP7YSQ"     // makes up the url of channel
30
31
WiFiClientSecure client;
32
YoutubeApi api(API_KEY, client);
33
unsigned long api_mtbs = 60000; //mean time between api requests
34
unsigned long api_lasttime;   //last time api request has been done
35
36
37
38
39
40
41
42
43
void setup() {  
44
  Serial.begin(115200);
45
  delay(100);
46
  pinMode(buzzer, OUTPUT);
47
  digitalWrite(buzzer, LOW);
48
  delay(100);
49
  
50
  //Define the pins as outputs and disable CS
51
  pinMode(MAX7219_Data_IN, OUTPUT);
52
  pinMode(MAX7219_Chip_Select, OUTPUT);
53
  pinMode(MAX7219_Clock, OUTPUT);
54
  digitalWrite(MAX7219_Chip_Select, HIGH);
55
  delay(200);
56
  //Setup of the 7seg module
57
  shift(0x0f, 0x00); //display test register - test mode off
58
  shift(0x0c, 0x01); //shutdown register - normal operation
59
  shift(0x0b, 0x07); //scan limit register - display digits 0 - 7
60
  shift(0x0a, 0x0f); //intensity register - max brightness
61
  shift(0x09, 0xff); //decode mode register - CodeB decode all digits
62
63
  //Print the hello message
64
  hello(0,2,100);
65
66
67
  
68
  // Set WiFi to station mode and disconnect from an AP if it was Previously
69
  // connected
70
  WiFi.mode(WIFI_STA);
71
  WiFi.disconnect();
72
  delay(100);
73
  // Attempt to connect to Wifi network:
74
  Serial.print("Connecting Wifi: ");
75
  Serial.println(ssid);
76
  WiFi.begin(ssid, password);
77
  while (WiFi.status() != WL_CONNECTED) {
78
    Serial.print(".");
79
    delay(500);
80
  }
81
  Serial.println("");
82
  Serial.println("WiFi connected");
83
  Serial.println("IP address: ");
84
  IPAddress ip = WiFi.localIP();
85
  Serial.println(ip);
86
}
87
88
void loop() {
89
90
  if (millis() - api_lasttime > api_mtbs)  {
91
	Serial.println("1");
92
    if(api.getChannelStatistics(CHANNEL_ID))
93
    {
94
	  Serial.println("2");
95
      unsigned long Count = api.channelStats.subscriberCount;
96
      String thisString = String(Count, DEC);
97
98
      if(thisString != thisString_prev)
99
      {
100
		Serial.println("3");
101
        digitalWrite(buzzer,HIGH);
102
        delay(1000);
103
        digitalWrite(buzzer,LOW);       
104
      }
105
      
106
      thisString_prev = thisString;
107-
      if(i==8)
107+
108
      
109
      i =  thisString.length();//This variable will go character by cahracter and send the value to the 7 segment display
110
      Serial.println("4");
111
	  Serial.println("---");
112
	  Serial.println(i);
113
	  Serial.println("---");
114
	  if(i==8)
115
        {
116
          shift(0x0b, 0x07); //scan limit register - display digits 0 thru 7
117
          adr=0x01;
118
        }        
119
        if(i==7)
120
        {
121
          shift(0x0b, 0x06); //scan limit register - display digits 0 thru 7
122
          adr=0x01;
123
        }
124
        if(i==6)
125
        {
126
          shift(0x0b, 0x05); //scan limit register - display digits 0 thru 7
127
          adr=0x01;
128
        }
129
        if(i==5)
130
        {
131
          shift(0x0b, 0x04); //scan limit register - display digits 0 thru 7
132
          adr=0x01;
133
        }
134
        if(i==4)
135
        {
136
          shift(0x0b, 0x03); //scan limit register - display digits 0 thru 7
137
          adr=0x01;
138
        }
139
        if(i==3)
140
        {
141
          shift(0x0b, 0x02); //scan limit register - display digits 0 thru 7
142
          adr=0x01;
143
        }
144
        if(i==2)
145
        {
146
          shift(0x0b, 0x01); //scan limit register - display digits 0 thru 7
147
          adr=0x01;
148
        }
149-
   
149+
150
        {
151
          shift(0x0b, 0x00); //scan limit register - display digits 0 thru 7
152
          adr=0x01;
153
        }
154
        i=i-1;
155
156
   	
157
	  Serial.println("5");
158
      
159
      
160
      while (i >= 0)
161
      {
162
        if(thisString[i] == '0')
163
        {
164
        num = 0x00;
165
        }
166
        if(thisString[i] == '1')
167
        {
168
        num = 0x01;
169
        }
170
        if(thisString[i] == '2')
171
        {
172
        num = 0x02;
173
        }
174
        if(thisString[i] == '3')
175
        {
176
        num = 0x03;
177
        }
178
        if(thisString[i] == '4')
179
        {
180
        num = 0x04;
181
        }
182
        if(thisString[i] == '5')
183
        {
184
        num = 0x05;
185
        }
186
        if(thisString[i] == '6')
187
        {
188
        num = 0x06;
189
        }
190
        if(thisString[i] == '7')
191
        {
192
        num = 0x07;
193
        }
194
        if(thisString[i] == '8')
195
        {
196
        num = 0x08;
197
        }
198
        if(thisString[i] == '9')
199
        {
200
        num = 0x09;
201
        }
202
203
           
204
        shift(adr, num);  
205
206
              
207
        adr=adr+0x01;
208
        i=i-1;         
209
      }
210
	  
211
	  Serial.println("6");
212
    }
213
    api_lasttime = millis();
214
  }
215
}