Leon11t писал(а):Всем привет, я здесь впервые. Не выходит скомпилить скетч из проектом
http://smartliving.ru/Main/ArduinoCodeNoEthernet. Перепробовал советы из статей, ничего не выходит. Убил в пустую 4 часа и ничего не вышло. Пробовал на версии IDE 0017,1.0.1, 1.0.3 под Виндовс 7, все возможные библиотеки позаменял. Ругается то на библиотеки Далас, то на OneWire. Скиньте пожалуйста где то архив из рабочим IDE. Или дайте ссылку на решения проблемы, если такой вопрос уже был
Вот сидел экспериментировал попробуй влить.
Код нужно протестировать.
Описан просто опрос датчиков данные непрерывно выходят в порт
И почему-то по дискретному входу долго проходит опрос ( задержка до 2х секунд )
По колдуй с этим кодом
Код: Выделить всё
// вывод информации шины 1-wire;
// вывод состояния 1 порта (тест);
// код писался и проверялся на IDE 1.0.1
#include <DallasTemperature.h>
#include <OneWire.h>
#include <SPI.h>
#include <Arduino.h>
#define ONE_WIRE_BUS 2 //куда подключен выход с шины датчиков DS18X2
#define TEMPERATURE_PRECISION 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Termometers;
DeviceAddress Termometer0 = { 0x28, 0x07, 0x82, 0x1A, 0x4, 0x0, 0x0, 0x6E }; //Данные подключеных датчиков
DeviceAddress Termometer1 = { 0x28, 0x82, 0x40, 0x1A, 0x4, 0x0, 0x0, 0xCE }; //Данные подключеных датчиков
float tempC;
float tempC1;
int startPin = 6; // присваеваем 6 ноге название pirPin
int flag=0;
//***************************
//Проверка дискретного входа
//***************************
void inputcommands()
{
if(digitalRead(startPin)==HIGH&&flag==0)
{
Serial.print("Get /objects/?object=PinOut1&op=m&m=statusChanged&status=1");
Serial.println();
flag=1;
delay(10);
}
if(digitalRead(startPin)==LOW&&flag==1)
{
Serial.println("Get /objects/?object=PinOut1&op=m&m=statusChanged&status=0");
Serial.println();
flag=0;
delay(10);
}
}
//***************************
//Поиск устройств (датчиков температуры на шине 1-wire)
//***************************
void searchDevices() {
Serial.print("Start search on 1-wire\n\r");
int numberOfDevices = sensors.getDeviceCount();
sensors.begin();
for(int i=0;i<numberOfDevices; i++) {
if(sensors.getAddress(Termometers, i))
{
Serial.print("Found device ");
Serial.print(i, DEC);
Serial.print("\n\r ID: ");
for (uint8_t i = 0; i < 8; i++) {
if (Termometers[i] < 16)
Serial.print("0");
Serial.print(Termometers[i], HEX);
}
Serial.print("\n\r Resolution actually set to: ");
Serial.print(sensors.getResolution(Termometers), DEC);
Serial.println();
float tempC = sensors.getTempC(Termometers);
Serial.print(tempC);
} else {
}
}
}
//***************************
//функция проверки движения
//***************************
void inputDevices()
{
sensors.requestTemperatures();
tempC = sensors.getTempC(Termometer0);
tempC1 = sensors.getTempC(Termometer1);
Serial.print("Get /objects/?object=temp1&op=m&m=tempChanged&status%t=");
Serial.print(tempC);
Serial.print("\n\r");
Serial.print("Get /objects/?object=temp2&op=m&m=tempChanged&status%t=");
Serial.print(tempC1);
Serial.print("\n\r");
delay(10); //устранение дребезга
}
void setup()
{
Serial.begin(9600);
Serial.println("Start");
sensors.begin(); // Инициализация шины 1-wire (для датчиков температуры)
sensors.requestTemperatures(); // Перед каждым получением температуры надо ее запросить
searchDevices();
}
//***************************
//Основной цикл
//***************************
void loop()
{
inputcommands();
inputDevices();
}