Hej. Chciałbym powrócić do tematu "inteligentnej skarbonki".
Teoretycznie wszystkie komponenty są złożone, ale niestety nie chce mi to działać... Mógłby mnie ktoś naprowadzić, co robię źle?
Kod:
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
#include <LedControl.h>
#include <PCF8575.h>
PCF8575 PCF(0x20);
LedControl lc=LedControl(D5,D6,D7,1);
const char* ssid = "Nazwa Sieci";
const char* password = "SuperTrudneHasło";
unsigned long lastTime = 0;
unsigned long timerDelay = 1000;
int m1gr = 0;
int m2gr = 0;
int m5gr = 0;
int m10gr = 0;
int m20gr = 0;
int m50gr = 0;
int m100gr = 0;
int m200gr = 0;
int m500gr = 0;
int statusik = 1;
bool kropka = true;
void setup(){
Serial.begin(115200);
WiFi.begin(ssid, password);
Wire.begin();
lc.shutdown(0,false);
lc.setIntensity(0,8);
lc.clearDisplay(0);
lc.setChar(0,0,' ',true);
lc.setChar(0,1,' ',true);
lc.setChar(0,2,' ',true);
lc.setChar(0,3,'0',true);
lc.setChar(0,4,'L',false);
lc.setChar(0,5,'L',false);
lc.setChar(0,6,'E',false);
lc.setChar(0,7,'H',false);
Serial.println(" ");
Serial.println("Connecting");
while(WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print("*");
lc.setChar(0,0,' ',kropka);
kropka = !kropka;
}
Serial.println("");
Serial.print("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());
if (!PCF.begin()){
Serial.println("could not initialize...");
}
if(!PCF.isConnected()){
Serial.println("=> not connected");
}else{
Serial.println("=> connected!!");
}
}
void loop(){
if((millis() - lastTime) > timerDelay) {
lc.clearDisplay(0);
m1gr = PCF.read(5);
m2gr = PCF.read(6);
m5gr = PCF.read(7);
m10gr = PCF.read(8);
m20gr = PCF.read(9);
m50gr = PCF.read(10);
m100gr = PCF.read(11);
m200gr = PCF.read(12);
m500gr = PCF.read(13);
if(m1gr==statusik){
Serial.println("Wykryta moneta 1gr");
lc.setChar(0,0,'1',false);
lc.setChar(0,1,'0',false);
lc.setChar(0,2,'0',true);
lc.setChar(0,3,' ',false);
lc.setChar(0,4,' ',false);
lc.setChar(0,5,' ',false);
lc.setChar(0,6,' ',false);
lc.setChar(0,7,' ',false);
}
if(m2gr==statusik){
Serial.println("Wykryta moneta 2gr");
lc.setChar(0,0,'2',false);
lc.setChar(0,1,'0',false);
lc.setChar(0,2,'0',true);
lc.setChar(0,3,' ',false);
lc.setChar(0,4,' ',false);
lc.setChar(0,5,' ',false);
lc.setChar(0,6,' ',false);
lc.setChar(0,7,' ',false);
}
if(m5gr==statusik){
Serial.println("Wykryta moneta 5gr");
lc.setChar(0,0,'5',false);
lc.setChar(0,1,'0',false);
lc.setChar(0,2,'0',true);
lc.setChar(0,3,' ',false);
lc.setChar(0,4,' ',false);
lc.setChar(0,5,' ',false);
lc.setChar(0,6,' ',false);
lc.setChar(0,7,' ',false);
}
if(m10gr==statusik){
Serial.println("Wykryta moneta 10gr");
lc.setChar(0,0,'0',false);
lc.setChar(0,1,'1',false);
lc.setChar(0,2,'0',true);
lc.setChar(0,3,' ',false);
lc.setChar(0,4,' ',false);
lc.setChar(0,5,' ',false);
lc.setChar(0,6,' ',false);
lc.setChar(0,7,' ',false);
}
if(m20gr==statusik){
Serial.println("Wykryta moneta 20gr");
lc.setChar(0,0,'0',false);
lc.setChar(0,1,'2',false);
lc.setChar(0,2,'0',true);
lc.setChar(0,3,' ',false);
lc.setChar(0,4,' ',false);
lc.setChar(0,5,' ',false);
lc.setChar(0,6,' ',false);
lc.setChar(0,7,' ',false);
}
if(m50gr==statusik){
Serial.println("Wykryta moneta 50gr");
lc.setChar(0,0,'0',false);
lc.setChar(0,1,'5',false);
lc.setChar(0,2,'0',true);
lc.setChar(0,3,' ',false);
lc.setChar(0,4,' ',false);
lc.setChar(0,5,' ',false);
lc.setChar(0,6,' ',false);
lc.setChar(0,7,' ',false);
}
if(m100gr==statusik){
Serial.println("Wykryta moneta 1zl");
lc.setChar(0,0,'0',false);
lc.setChar(0,1,'0',false);
lc.setChar(0,2,'1',true);
lc.setChar(0,3,' ',false);
lc.setChar(0,4,' ',false);
lc.setChar(0,5,' ',false);
lc.setChar(0,6,' ',false);
lc.setChar(0,7,' ',false);
}
if(m200gr==statusik){
Serial.println("Wykryta moneta 2zl");
lc.setChar(0,0,'0',false);
lc.setChar(0,1,'0',false);
lc.setChar(0,2,'2',true);
lc.setChar(0,3,' ',false);
lc.setChar(0,4,' ',false);
lc.setChar(0,5,' ',false);
lc.setChar(0,6,' ',false);
lc.setChar(0,7,' ',false);
}
if(m500gr==statusik){
Serial.println("Wykryta moneta 5zl");
lc.setChar(0,0,'0',false);
lc.setChar(0,1,'0',false);
lc.setChar(0,2,'5',true);
lc.setChar(0,3,' ',false);
lc.setChar(0,4,' ',false);
lc.setChar(0,5,' ',false);
lc.setChar(0,6,' ',false);
lc.setChar(0,7,' ',false);
}
Serial.println("");
lastTime = millis();
}
}
Niestety problem jest następujący...
Gdy mam podłączone wyjścia z czujników do expandera portów, to expander mi wywala co chwilę, tj. łączy się i rozłącza, albo wcale nie łączy, a gdy wyjścia z czujników nie są podłączone do expandera, to expander łączy się normalnie i nie rozłącza go...