Go Down

Topic: Ds18b20 mit nrf24 und lcd (Read 1 time) previous topic - next topic

Kawaci

Mar 23, 2017, 05:04 pm Last Edit: Mar 23, 2017, 06:01 pm by Kawaci
Hallo!
Ich wollte nach dieser Anleitung,
Code: [Select]
https://deloarts.wordpress.com/2016/04/29/catalex-sd-softspi/
Ohne den catalex sd Card mit 4 zeiligen lcd anstelle des 2 zeiligen, nachbauen! Aber wenn ich von github die Bibliotheken runterlade mit und über zip einspielen will funktioniert es nicht ich habe es mit verschiedenen ide versionen versucht kein erfolg!
Bitte um hilfe!
Danke schon mal!

Der Code

Code: [Select]
  // ######################################### CATALEX SSPI RECEIVER #####################################################
// #####################################################################################################################
/*
This is the receiver.
It constantly waits for a message from the transmitter.
Pinout:
- Display
- SDA: A4
- SCL: A5
- Vcc: 5V
- GND: GND
- NRF24L01+
- CE: 9
- CSN: 10
- MOSI: 11
- MISO: 12
- SCK: 13
- Vcc: 3V3
- GND: GND
- Catalex SD card reader
- MISO: 4
- MOSI: 5
- SCK: 6
- CS: 7
- Vcc: 5V
- GND: GND
*/
#include <SPI.h>
#include <SdFat.h>
#include <RF24.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

/* DISPLAY PART */
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

/* RADIO PART */
// Define the radio addresses (must be the same on both devices!)
byte addresses[][6] = {"DevRX", "DevTX"};
// Setup NRF24 to SPI BUS and the pins 9 and 10 (Check wiring on my blog!)
RF24 radio(9, 10);
// Using a struct to "store" the incomming data
struct dataStruct
{
float Sensor1, Sensor2;
} Sensor;

/* CATALEX SD CARD READER SOFT-SPI PART */
// Here are the pins for the soft-spi-bus defined
const uint8_t SOFT_MISO_PIN = 4;
const uint8_t SOFT_MOSI_PIN = 5;
const uint8_t SOFT_SCK_PIN  = 6;
const uint8_t SD_CHIP_SELECT_PIN = 7;
const int8_t DISABLE_CHIP_SELECT = -1;
// You can select every pin you want, just don't put them on an existing hardware SPI pin.
SdFatSoftSpi<SOFT_MISO_PIN, SOFT_MOSI_PIN, SOFT_SCK_PIN> sd;
SdFile file;
// #####################################################################################################################
// ######################################### SETUP #####################################################################
// #####################################################################################################################
void setup()
{
SPI.begin();
   
    /* DISPLAY PART */
    lcd.begin();
    lcd.print(F("Initializing... "));

    /* RADIO PART */
// Initialize the NRF24
radio.begin();
// Set the PA level to high, so the message can be sent over long distances.
radio.setPALevel(RF24_PA_HIGH);
/*
Other levels:
- RF24_PA_MIN
- RF24_PA_LOW
- RF24_PA_HIGH
- RF24_PA_MAX
*/
// Open RX & TX (you have to switch the values 0,1 on the devices!)
radio.openWritingPipe(addresses[1]);
radio.openReadingPipe(1, addresses[0]);
radio.startListening();

/* SD CARD PART */
while (!sd.begin(SD_CHIP_SELECT_PIN))
    {
    lcd.clear();
    lcd.print(F("Card missing.   "));
    delay(1000);
  }
}
// #####################################################################################################################
// ######################################### LOOP ######################################################################
// #####################################################################################################################
void loop()
{
while(radio.available())
{
/* RADIO PART */
radio.read(&Sensor, sizeof(Sensor));

String T1 = String("T1: " + String(Sensor.Sensor1) + (char)223 + "C");
String T2 = String("T2: " + String(Sensor.Sensor2) + (char)223 + "C");

/* DISPLAY PART */
lcd.setCursor(0, 0);
lcd.print(T1);
lcd.setCursor(0, 1);
lcd.print(T2);

/* SD CARD PART */
file.open("Temp.txt", O_WRITE | O_CREAT | O_AT_END);
        file.println(F("--------------------"));
        file.println(T1);
        file.println(T2);
        file.close();
}
}
// #####################################################################################################################
// ######################################### END OF CODE ###############################################################
// #####################################################################################################################


Das ist der GitHub link
Code: [Select]
https://github.com/deloarts/Catalex_SSPI/blob/master/Receiver/Receiver.ino#L1

HotSystems

Und welchen Sketch verwendest du dazu ?
Posten den bitte und  den Link der verwendeten Libraries ebenso.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.


Damit wird dieser für alle besser lesbar.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Kawaci


HotSystems

Ok, funktioniert der Sketch nicht, oder das Installieren der Libraries ?
Wenn Libraries, hast du mal versucht, die Libraries manuell einzubinden ?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Kawaci

#4
Mar 23, 2017, 08:24 pm Last Edit: Mar 23, 2017, 08:36 pm by Kawaci
Habe nur add .zip versucht! Und da schreibt er das keine libaries im packet sind! Dadurch lässt sich der sketch nicht kompilieren, also weis ich nicht ob er funktioniert!

HotSystems

Dann entpacke die Libraries und kopiere die Dateien manuell in den Library-Ordner.
Jede Library jeweils in seinen eigenen Ordner, der genau so heißen muss wie die Library selbst.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Tommy56

Ab 1.6.5 (oder früher?) kann der Ordner auch anders heißen. Die IDE installiert bei Zip-Installation immer im xxx-master Ordner und das funktioniert auch.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Kawaci

Danke werd ich morgen versuchen danke!

Kawaci

#8
Mar 24, 2017, 05:41 pm Last Edit: Mar 24, 2017, 06:46 pm by Kawaci
So, es hat mit den libraries alles funktioniert! hab jetzt aber das problem mit meinem angepassten sketch das der sender zwar die definierten anzeigt aber -127,00ºC angezeigt wird!
Code: [Select]
// #####################################################################################################################
// ######################################### CATALEX SSPI TRANSMITTER ##################################################
// #####################################################################################################################
/*
This is the transmitter.

Pinout:
- NRF24L01+
- CE: 9
- CSN: 10
- MOSI: 11
- MISO: 12
- SCK: 13
- Vcc: 3V3
- GND: GND

- Temperature sensors
- OneWire: 2
*/
#include <SPI.h>
#include <RF24.h>
#include <OneWire.h>
#include <DallasTemperature.h>

/* TEMPERATURE PART */
#define ONEWIRE_BUS 2
// Setup an instance to communicate with any OneWire devices
OneWire oneWire(ONEWIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature oneWireSensors(&oneWire);
// Set the LCD address to 0x27 for a 16 chars and 2 line display

/* RADIO PART */
// Define the radio addresses (must be the same on both devices!)
byte addresses[][6] = {"DevRX", "DevTX"};
// Setup NRF24 to SPI BUS and the pins 9 and 10 (Check wiring on my blog!)
RF24 radio(9, 10);
// Using a struct to store the analog values
struct dataStruct
{
float Sensor1, Sensor2, Sensor3, Sensor4;
} Sensor;
// #####################################################################################################################
// ######################################### SETUP #####################################################################
// #####################################################################################################################
void setup()
{
/* TEMPERATURE PART */
oneWireSensors.begin();

/* RADIO PART */
// Initialize the NRF24
radio.begin();
// Set the PA level to high, so the message can be sent over long distances.
radio.setPALevel(RF24_PA_HIGH);
/*
Other levels:
- RF24_PA_MIN
- RF24_PA_LOW
- RF24_PA_HIGH
- RF24_PA_MAX
*/
// Open RX & TX (you have to switch the values 0,1 on the devices!)
radio.openWritingPipe(addresses[0]);
radio.openReadingPipe(1, addresses[1]);
 
}
// #####################################################################################################################
// ######################################### LOOP ######################################################################
// #####################################################################################################################
void loop()
{
/* TEMPERATURE PART */
oneWireSensors.requestTemperatures();
Sensor.Sensor1 = oneWireSensors.getTempCByIndex(0);
Sensor.Sensor2 = oneWireSensors.getTempCByIndex(1);
  Sensor.Sensor3 = oneWireSensors.getTempCByIndex(2);
  Sensor.Sensor4 = oneWireSensors.getTempCByIndex(3);

/* RADIO PART */
radio.write(&Sensor, sizeof(Sensor));

delay(500);
}
// #####################################################################################################################
// ######################################### END OF CODE ###############################################################
// #####################################################################################################################


Ist ein Fehler im sketch oder hab ich den ds18b20 gekillt?

Und wenn ich jetzt noch einen dht22 sensor anhängen will muss ich dann nur die dht libraries einfügen und das wars?

HotSystems

Am Sketch kann ich erstmal keinen Fehler erkennen, was nicht heißt, da ist keiner.
Wie hast du den Sensor angeschlossen ?
Hast du den Pullup-Widerstand am Sensor angeschlossen ?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Kawaci

#10
Mar 24, 2017, 09:55 pm Last Edit: Mar 24, 2017, 10:01 pm by Kawaci
Hab ihn mit "+ data - " angeschlossen und + und data einen 4,7k wiederstandt reingehängt! Alles mal am steckbrett!
Auf 5v den sensor

Tommy56

Hab ihn mit "+ data - " angeschlossen und + und data einen 4,7k wiederstandt reingehängt! Alles mal am steckbrett!
Was heißt reingehängt? von wo nach wo?

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

HotSystems

Hab ihn mit "+ data - " angeschlossen und + und data einen 4,7k wiederstandt reingehängt! Alles mal am steckbrett!
Auf 5v den sensor
Dann überprüfe deine Kontakte vom Steckbrett, die sind nicht optimal.
Oder du baust dir einen Sketch nur für die Sensoren.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Kawaci

Ok, werd ich versuchen das mit den Kontakten! Wie meinst du das mit dem Sketch nur für die Sensoren?

HotSystems

Einfach nur einen Beispielsketch aus der Library einsetzen.
Da sieht man am besten ob alles funktioniert.
Das ganze drumherum mit Funk und LCD weglassen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up