Sto cercando di realizzare una comunicazione daArduino trimete il mio cellulare sfruttando l'app Blynk. Dopo un paio di errori iniziali (scrivevo il programma nel loop, anche se questo faceva andare tutto :P) sono riuscito a far visualizzare sul cellulare i valori dei due sensori che utilizzo ma non riesco più a far "leggere" ad Arduino le altre 2 funzioni, come se non esistessero proprio nel programma e, quindi, non riesco ad avere la notifica sul cellulare e il tweet sul profilo impostato.
Ecco il programma:
#include <LiquidCrystal.h> // Includi libreria Display LCD
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // Dichiara Pin Display LCD
#define BLYNK_PRINT Serial
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "b92ca63401f34dd98ef80930c0899e4f";
BlynkTimer timer;
#define W5100_CS 10
#define SDCARD_CS 4
int livelloacqua = 0;
int umiditaterra = 0;
#define LEDV1 9
#define LEDV2 10
#define LEDR1 11
#define LEDR2 12
#define ProvaLed 13
void programma() {
digitalWrite(ProvaLed, HIGH);
lcd.setCursor(0, 0);
livelloacqua = analogRead(A0);
if (livelloacqua < 160) {
lcd.setCursor(0, 0);
lcd.print("Riempire acqua ");
Blynk.notify("L'acqua è in esaurimento! Devi riempirla!");
Blynk.tweet("Parla Arduino");
}
if (livelloacqua >= 130) {
lcd.setCursor(0, 0);
lcd.print("Acqua OK ");
}
umiditaterra = analogRead(A1);
if (umiditaterra > 500) {
lcd.setCursor(0, 1);
lcd.print("Annaffiare ");
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
}
if (umiditaterra < 500) {
lcd.setCursor(0, 1);
lcd.print("Pianta OKAY ");
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
}
}
void mytimer() {
livelloacqua = analogRead(A0);
Blynk.virtualWrite(V1, livelloacqua);
umiditaterra = analogRead(A1);
Blynk.virtualWrite(V2, umiditaterra);
}
void setup() {
// Debug console
Serial.begin(9600);
pinMode(SDCARD_CS, OUTPUT);
digitalWrite(SDCARD_CS, HIGH); // Deselect the SD card
Blynk.begin(auth);
// You can also specify server:
//Blynk.begin(auth, "blynk-cloud.com", 80);
//Blynk.begin(auth, IPAddress(192,168,1,100), 8080);
// For more options, see Boards_Ethernet/Arduino_Ethernet_Manual example
lcd.begin(16, 2);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
lcd.clear();
timer.setInterval(1000L, mytimer);
}
void loop() {
Blynk.run();
timer.run();
}
Qualcuno sa come risolvere? Ho perfino provato a mettere un led per confermare la mia teoria (LedProva sul pin 13) e in effetti nemmeno quello si accende. Dove sto sbagliando?