Ребят, спасибо за классный продукт!
Обнаружил ошибку, но пока не смог понять чья вина…
- Arduino UNO + Ethernet shield W5100
- Android 7.0 + Blynk 2.18.1
- Local Server Blynk server-0.32.0-java8
Скрипт пока банальный чисто изучаю возможности. Как известно у W5100 имеется слот microSD карточки, повешенный на 4pin. Так вот решил поиграться с примерами сохранения фалов на карте памяти. Всё получилось. Откатился обратно на скейтч Blynk на котором у меня просто читаются датчики и сохраняются в базу. Но огорчился, в приложении Android показывает отсутствие связи с платной UNO. Причем при перезагрузке на долю секунды связи появляется, а потом offline. Помогает только извлечение карты SD.
Код:
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#define BLYNK_DEBUG
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <SimpleTimer.h>
#define DHTPIN 6 // Pin which is connected to the DHT sensor.
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define W5100_CS 10 // Pin вызова Ethernet контроллера
#define SDCARD_CS 4 // Pin вызова SD карты на контроллере
DHT dht8(8, DHTTYPE);
DHT dht7(7, DHTTYPE);
DHT dht6(6, DHTTYPE);
DHT dht5(5, DHTTYPE);
DHT dht4(4, DHTTYPE);
char auth[] = "b3e641bee9a243cbbe41dae526c268f4";
IPAddress server_ip (192, 168, 0, 50);
byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xE1 };
IPAddress arduino_ip ( 192, 168, 0, 177);
IPAddress dns_ip ( 192, 168, 0, 1);
IPAddress gateway_ip ( 192, 168, 0, 1);
IPAddress subnet_mask( 255, 255, 255, 0);
//Определяем объекты таймер для нужных классов
SimpleTimer timerDHT;
SimpleTimer timerPIR;
#define pinPIR 3
void setup()
{
pinMode(pinPIR, INPUT); // PIR датчик движения
pinMode(SDCARD_CS, OUTPUT);
digitalWrite(SDCARD_CS, HIGH); // Deselect the SD card
Serial.begin(9600);
Blynk.begin(auth, server_ip, 8442, arduino_ip, dns_ip, gateway_ip, subnet_mask, arduino_mac);
dht8.begin();
dht7.begin();
dht6.begin();
dht5.begin();
dht4.begin();
timerDHT.setInterval(3700, sendDataDHT);
timerPIR.setInterval(3800, readDataPIR);
Blynk.virtualWrite(V31, "<b>ARDUINO:</b> Произведена загрузка и проверка параметров системы.");
}
// Процедуры по каждой среде даных...
void sendDataDHT()
{
//Читаем значения датчиков DHT температуру и влажность с опредлением типа переменной
//Пишем значения в виртуальный пины V09 and V10
float h = dht8.readHumidity();
float t = dht8.readTemperature();
Blynk.virtualWrite(V9, t);
Blynk.virtualWrite(V10, h);
//Пишем значения в виртуальный пины V07 and V08
h = dht7.readHumidity();
t = dht7.readTemperature();
Blynk.virtualWrite(V7, t);
Blynk.virtualWrite(V8, h);
//Пишем значения в виртуальный пины V05 and V06
h = dht6.readHumidity();
t = dht6.readTemperature();
Blynk.virtualWrite(V5, t);
Blynk.virtualWrite(V6, h);
//Пишем значения в виртуальный пины V03 and V04
h = dht5.readHumidity();
t = dht5.readTemperature();
Blynk.virtualWrite(V3, t);
Blynk.virtualWrite(V4, h);
//Пишем значения в виртуальный пины V01 and V02
h = dht4.readHumidity();
t = dht4.readTemperature();
Blynk.virtualWrite(V1, t);
Blynk.virtualWrite(V2, h);
}
void readDataPIR()
{
int vPIR = digitalRead(pinPIR);
Blynk.virtualWrite(V11, vPIR);
}
BLYNK_CONNECTED() {
Blynk.syncAll();
}
void loop()
{
Blynk.run();
timerDHT.run();
timerPIR.run();
}
Дальше приведу, что пишет сам скрипт в терминале:
[0] Using static IP
[1300] IP:192.168.0.177
[1300]
___ __ __
/ _ )/ /_ _____ / /__
/ _ / / // / _ \/ '_/
/____/_/\_, /_//_/_/\_\
/___/ v0.5.0 on Arduino Uno
[1412] Connecting to 192.168.0.50
[6412] Connecting to 192.168.0.50
[11413] Connecting to 192.168.0.50
[16414] Connecting to 192.168.0.50
[21415] Connecting to 192.168.0.50
[26416] Connecting to 192.168.0.50
[31417] Connecting to 192.168.0.50
[31419] <[02|00|01|00]
[31420] <b3e641bee9a243cbbe41dae526c268f4
[31460] >[00|00|01|00|C8]
[31486] Ready (ping: 27ms).
[31516] Free RAM: 365
[31552] <[11|00|02|00]d
[31566] <ver[00]0.5.0[00]h-beat[00]10[00]buff-in[00]256[00]dev[00]Arduino Uno[00]cpu[00]ATmega328P[00]con[00]W5100[00]build[00]Feb 18 2018 10:55:16[00]
[31727] >[00|00|02|00|C8]
[31793] <[10|00|03|00|00]
[31861] <[14|00|04|00]v
И останавливается, дальше ДАННЫЕ не сыплются…
Лог файл сервера (mode DEBUG) если это поможет. Вроде нет возможности прицепить его к топику, поэтому приведу ссылку https://cloud.mail.ru/public/LVhz/n6iSxCmrZ
P.S. Извиняюсь, если SD карточку извлечь всё работает!