Attiny85 met 433mhz zender en DS18B20 tempsensor
14 berichten
• Pagina 1 van 2 • 1, 2
Attiny85 met 433mhz zender en DS18B20 tempsensor
Ik wil een temperatuursensor maken die in een warme (tot max 120C) omgeving (boven in een heteluchtballon) draadloos de temperatuur doorgeeft aan een Arduino mini pro.
Als sensor gebruik ik de DS18B20 die werkt tot 125 graden C
Als zender ontvanger gebruik ik een 433Mhz oplossing zoals die op Ebay worden aangeboden.
Op een mini pro heb ik een remote temperatuur sensor werkend waarbij ik gebruik maak van de volgende libraries:
DallasTemperature, met deze library kan je eenvoudig de temperatuur uitlezen van een DS18B20 sensor
Onewire, nodig bij de aansluiting van de sensor in combinatie met DallasTemperature
Manchester, met deze library wordt de communicatie tussen zender en ontvanger stabieler (dan bij de VirtualWire library) bij grote temperatuur schommelingen.
Narcoleptic, met deze library minimaliseer ik het energiegebruik
Nu wil ik het geheel overzette naar een Attiny85 omdat ik vermoed dat ik daarmee nog meer energie kan besparen en ook nog wat ruimte. Het geheel zal moeten werken op een 3 V knoopcel.
Omdat de zender in een warme omgeving moet kunnen werken zal ik het geheel goed moeten isoleren. Daarnaast mag het ook "niks" wegen.
En dan nu mijn uitdaging: Ik krijg het niet werkend op de Attiny.
Wat wel lukt: Een Attiny programmeren met een Arduino als ISP
Wat niet lukt is het gebruik van de gewenste libraries.
Manchester krijg ik bijvoorbeeld alleen werkend in een "oude" Arduino versie (0022) maar in die omgeving werken DallasTemperature en Narcoleptic weer niet.
Wie kan mij verder helpen?
Groet
René
Ter info voeg ik de code die werkt op een mini pro bij (dit is een prototype versie)
Als sensor gebruik ik de DS18B20 die werkt tot 125 graden C
Als zender ontvanger gebruik ik een 433Mhz oplossing zoals die op Ebay worden aangeboden.
Op een mini pro heb ik een remote temperatuur sensor werkend waarbij ik gebruik maak van de volgende libraries:
DallasTemperature, met deze library kan je eenvoudig de temperatuur uitlezen van een DS18B20 sensor
Onewire, nodig bij de aansluiting van de sensor in combinatie met DallasTemperature
Manchester, met deze library wordt de communicatie tussen zender en ontvanger stabieler (dan bij de VirtualWire library) bij grote temperatuur schommelingen.
Narcoleptic, met deze library minimaliseer ik het energiegebruik
Nu wil ik het geheel overzette naar een Attiny85 omdat ik vermoed dat ik daarmee nog meer energie kan besparen en ook nog wat ruimte. Het geheel zal moeten werken op een 3 V knoopcel.
Omdat de zender in een warme omgeving moet kunnen werken zal ik het geheel goed moeten isoleren. Daarnaast mag het ook "niks" wegen.
En dan nu mijn uitdaging: Ik krijg het niet werkend op de Attiny.
Wat wel lukt: Een Attiny programmeren met een Arduino als ISP
Wat niet lukt is het gebruik van de gewenste libraries.
Manchester krijg ik bijvoorbeeld alleen werkend in een "oude" Arduino versie (0022) maar in die omgeving werken DallasTemperature en Narcoleptic weer niet.
Wie kan mij verder helpen?
Groet
René
Ter info voeg ik de code die werkt op een mini pro bij (dit is een prototype versie)
- Code: Alles selecteren
#include <Manchester.h>
#include <Narcoleptic.h>
#include <OneWire.h>
#include <DallasTemperature.h>
/*
ZENDER
Manchester library wordt gebruikt voor het zenden
DallasTemperature wordt gebruikt voor het lezen van de temperatuur met de DS18B20 sensor
Narcoleptic wordt gebruikt om tussne het zenden in het energiegebruik te minimaliseren
De zender en de sensor worden aan en uitgeschakeldom het energieverbruik te minimaliseren
tijdens de meet/zendsessie
LED 13 wordt gebruikt om te testen (wrodt in de definitieve opstelling uitgezet
MAN_300 0
MAN_600 1
MAN_1200 2
MAN_2400 3
MAN_4800 4
MAN_9600 5
MAN_19200 6
MAN_38400 7
*/
#define ONE_WIRE_BUS 2 //zit op pin7
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
#define TX_POWER 3 // Zender power zit op pin 2
#define ONE_WIRE_POWER 4 // DS18B20 Power zit op pin 3
#define TX_PIN 0 //pin where your transmitter is connected zit op pin 5
// #define LED_PIN 13 //pin for blinking LED
#define SENDER_ID 5
uint8_t moo = 1; //last led status
uint8_t transmit_data = 0;
uint8_t m = 4;
void setup() {
Serial.begin(9600);
// sensors.begin(); // tempsensor
// pinMode(LED_PIN, OUTPUT);
// digitalWrite(LED_PIN, moo);
man.workAround1MhzTinyCore(); //add this in order for transmitter to work with 1Mhz Attiny85/84
man.setupTransmit(TX_PIN, MAN_1200);
pinMode(TX_POWER, OUTPUT);
pinMode(ONE_WIRE_POWER, OUTPUT);
PRR = bit(PRTIM1); // only keep timer 0 going
ADCSRA &= ~ bit(ADEN); bitSet(PRR, PRADC); // Disable the ADC to save power
}
void loop() {
digitalWrite(ONE_WIRE_POWER, HIGH);
delay(5);
sensors.begin();
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.print(sensors.getTempCByIndex(0));
transmit_data = (sensors.getTempCByIndex(0)); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
digitalWrite(ONE_WIRE_POWER, LOW);
//SENDER_ID can be ID of the sender if you have multiple transmitters so receiver knows who sent it
//OR it can be receiver ID if you have multiple receivers so receiver knows it's for him
//OR it can by just any arbitrary 4 bit number
digitalWrite(TX_POWER, HIGH);
delay(10);
man.transmit(man.encodeMessage(SENDER_ID, transmit_data));
delay(10);
digitalWrite(TX_POWER, LOW);
moo = ++moo % 2;
// digitalWrite(LED_PIN, moo);
//Serial.println(transmit_data);
// delay(10);
Narcoleptic.delay(1000);
}
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Attiny85 met 433mhz zender en DS18B20 tempsensor
"Niet werkend" is een vaag begrip. M.a.w. welke foutboodschappen krijg je (en dan vooral de eerste paar).
En Serial wordt niet ondersteund op ATTiny.
En welke libraries gebruik je voor de ATTiny?
Versie IDE?
En Serial wordt niet ondersteund op ATTiny.
En welke libraries gebruik je voor de ATTiny?
Versie IDE?
Re: Attiny85 met 433mhz zender en DS18B20 tempsensor
Dank voor je snelle reactie Nico.
Ik gebruik:
Arduino 1.0.5
https://github.com/mchr3k/arduino-libs-manchester
github.com/downloads/mchr3k/arduino-libs-manchester/tiny.zip
Als ik met de bovenstaande libraries het voorbeeld bij de manchester library start, dan werkt het voor de Attiny85 waarbij ik als board selecteer "ATtiny85 @ 8 MHz (internal oscillator; BOD disabled)"
Als ik met die instelling echter een voorbeeld van http://download.milesburton.com/Arduino ... LATEST.zip
start waarbij ik http://www.pjrc.com/teensy/arduino_libr ... neWire.zip eveneens heb geïnstalleerd gaat het fout.
Dit zijn de meldingen
C:\Program Files\arduino-1.0.5new\libraries\OneWire\OneWire.cpp: In constructor 'OneWire::OneWire(uint8_t)':
C:\Program Files\arduino-1.0.5new\libraries\OneWire\OneWire.cpp:123: error: 'digitalPinToBitMask' was not declared in this scope
C:\Program Files\arduino-1.0.5new\libraries\OneWire\OneWire.cpp:124: error: 'digitalPinToPort' was not declared in this scope
C:\Program Files\arduino-1.0.5new\libraries\OneWire\OneWire.cpp:124: error: 'portInputRegister' was not declared in this scope
Wat ik zelf "raar" vind zijn de hardware settings. In mijn hardware directory staat een in de tiny subdirectory een boards.txt. Als ik in het Arduino menu het board selecteer zie ik echter meer mogelijkheden voor Attiny dan er in boards.txt staan.!!!
Ik gebruik:
Arduino 1.0.5
https://github.com/mchr3k/arduino-libs-manchester
github.com/downloads/mchr3k/arduino-libs-manchester/tiny.zip
Als ik met de bovenstaande libraries het voorbeeld bij de manchester library start, dan werkt het voor de Attiny85 waarbij ik als board selecteer "ATtiny85 @ 8 MHz (internal oscillator; BOD disabled)"
Als ik met die instelling echter een voorbeeld van http://download.milesburton.com/Arduino ... LATEST.zip
start waarbij ik http://www.pjrc.com/teensy/arduino_libr ... neWire.zip eveneens heb geïnstalleerd gaat het fout.
Dit zijn de meldingen
C:\Program Files\arduino-1.0.5new\libraries\OneWire\OneWire.cpp: In constructor 'OneWire::OneWire(uint8_t)':
C:\Program Files\arduino-1.0.5new\libraries\OneWire\OneWire.cpp:123: error: 'digitalPinToBitMask' was not declared in this scope
C:\Program Files\arduino-1.0.5new\libraries\OneWire\OneWire.cpp:124: error: 'digitalPinToPort' was not declared in this scope
C:\Program Files\arduino-1.0.5new\libraries\OneWire\OneWire.cpp:124: error: 'portInputRegister' was not declared in this scope
Wat ik zelf "raar" vind zijn de hardware settings. In mijn hardware directory staat een in de tiny subdirectory een boards.txt. Als ik in het Arduino menu het board selecteer zie ik echter meer mogelijkheden voor Attiny dan er in boards.txt staan.!!!
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Attiny85 met 433mhz zender en DS18B20 tempsensor
Jaaaa die heb ik ook eerder gehad.... En ik moet ff kijken hoe ik dat heb opgelost. Ik had hetzelfde probleem bij het gebruik van een ADXL345 op de ATTiny85.
Die teensy lijkt mij zonder meer verkeerd. Want dat is een heel ander platform.
Ik gebruik deze (de master) : http://playground.arduino.cc/Code/USIi2c
Die teensy lijkt mij zonder meer verkeerd. Want dat is een heel ander platform.
Ik gebruik deze (de master) : http://playground.arduino.cc/Code/USIi2c
Re: Attiny85 met 433mhz zender en DS18B20 tempsensor
Dank je Nico, maar....
http://playground.arduino.cc/Code/USIi2c lijkt mij een oplossing voor een 2-wire sensor. Die van mij is een 1-wire (DS18B20).
Het schiet niet echt op. Ik heb geen idee welke manchester library (voor betrouwbare communicatie) in combinatie met de sensor library ik moet gebruiken in combinatie met welke arduino versie.
http://playground.arduino.cc/Code/USIi2c lijkt mij een oplossing voor een 2-wire sensor. Die van mij is een 1-wire (DS18B20).
Het schiet niet echt op. Ik heb geen idee welke manchester library (voor betrouwbare communicatie) in combinatie met de sensor library ik moet gebruiken in combinatie met welke arduino versie.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Attiny85 met 433mhz zender en DS18B20 tempsensor
deze al geprobeerd: http://www.dietfig.org/avronewire.html
Re: Attiny85 met 433mhz zender en DS18B20 tempsensor
Nee Nico,
Ik kan ook geen voorbeelden van implementaties met die library vinden. En eerlijk gezegd gaat het mijn pet (nog) te boven om zelf de commando's te bedenken in mijn script waarmee ik de library moet aanroepen. Kan ik trouwen een .c gebruiken binnen de arduino library? Ik zie daar alleen maar .h en .ccp files in gebruik.
Gr René
Ik kan ook geen voorbeelden van implementaties met die library vinden. En eerlijk gezegd gaat het mijn pet (nog) te boven om zelf de commando's te bedenken in mijn script waarmee ik de library moet aanroepen. Kan ik trouwen een .c gebruiken binnen de arduino library? Ik zie daar alleen maar .h en .ccp files in gebruik.
Gr René
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Attiny85 met 433mhz zender en DS18B20 tempsensor
ik heb dit jaar geen tijd meer. Dus ik weet niet of een ander d'r ff tijd voor heeft. En c gaat prima.
Re: Attiny85 met 433mhz zender en DS18B20 tempsensor
Nico bedankt tot zover.
Ik heb inmiddels een oplossing gevonden. Als je het interessant vindt, zal ik de oplossing hier posten nadat ik de code heb opgeschoond.
Groet
René
Ik heb inmiddels een oplossing gevonden. Als je het interessant vindt, zal ik de oplossing hier posten nadat ik de code heb opgeschoond.
Groet
René
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Attiny85 met 433mhz zender en DS18B20 tempsensor
Hoewel het attiny gebruikers hier vrij klein is, zou ik het wel posten. Heeft een ander er ook wat aan.
14 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 99 gasten