Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. max6675 + Thermo

max6675 + Thermo

Scheduled Pinned Locked Moved Troubleshooting
2 Posts 2 Posters 1.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    wthiess
    wrote on last edited by wthiess
    #1

    sorry my english is not good.

    link text
    My Hardware
    Ardunion nano + max6675 + Thermoelement

    Blease Help

    lg
    Wolfgang

    #include <max6675.h>
    #include <MyConfig.h>
    #include <MySensors.h>
    #include <SPI.h>
    
    uint8_t CS0 = 9;              // CS pin on MAX6675
    uint8_t SO = 8;              // SO pin of MAX6675
    uint8_t SCLK = 10;             // SCK pin of MAX6675
    uint8_t units = 1;            // Units to readout temp (0 = ˚F, 1 = ˚C)
    float temperature = 0.0;  // Temperature output variable
    float lastTemperature;
    unsigned long SLEEP_TIME = 30000; 
    boolean metric = true;
    MySensor gw;
    
    MyMessage msg(0,V_TEMP);
    
    // Initialize the MAX6675 Library for our chip
    
    MAX6675 temp0(CS0,SO,SCLK,units);
    
    void setup()  
    { 
    
    
      // Startup and initialize MySensors library. Set callback for incoming messages. 
      gw.begin(); 
    
      // Send the sketch version information to the gateway and Controller
      gw.sendSketchInfo("Max6675 Temperature Sensor", "1.0");
    
      // Present all sensors to controller
     
      gw.present(0, S_TEMP);
      
      Serial.begin(115200);
      
    }
    
    void loop()     
    {     
      // Process incoming messages (like config from server)
      gw.process(); 
      
      temperature = temp0.read_temp();         // Read the temp
      
      if(temperature == -1) {                   // If there is an error with the TC, temperature will be -1
        Serial.println("Thermocouple Error!!"); // Temperature is -1 and there is a thermocouple error
      
      } else {
        Serial.print("Current Temperature: ");
        Serial.println( temperature );          // Print the temperature to Serial 
        if (temperature!=lastTemperature)
          gw.send(msg.setSensor(0).set(temperature,1));
        lastTemperature=temperature;
      }
      
      gw.sleep(SLEEP_TIME);
    }```
    upload error
    MySensors.h:328:2: error: #error No forward link or gateway feature activated. This means nowhere to send messages! Pretty pointless.
    
    
    

    MySensors.h

    /*
     * The MySensors Arduino library handles the wireless radio link and protocol
     * between your home built sensors/actuators and HA controller of choice.
     * The sensors forms a self healing radio network with optional repeaters. Each
     * repeater and gateway builds a routing tables in EEPROM which keeps track of the
     * network topology allowing messages to be routed to nodes.
     *
     * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
     * Copyright (C) 2013-2015 Sensnology AB
     * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
     *
     * Documentation: http://www.mysensors.org
     * Support Forum: http://forum.mysensors.org
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * version 2 as published by the Free Software Foundation.
     */
    
    /**
     * @file MySensors.h
     *
     * MySensors main interface (includes all necessary code for the library)
     */
    #ifndef MySensors_h
    #define MySensors_h
    
    #include "core/MySensorsCore.h"
    
    // Detect node type
    /**
     * @def MY_GATEWAY_FEATURE
     * @brief Is set for gateway sketches.
     */
    /**
     * @def MY_IS_GATEWAY
     * @brief Is true when @ref MY_GATEWAY_FEATURE is set.
     */
    /**
     * @def MY_NODE_TYPE
     * @brief Contain a string describing the class of sketch/node (gateway/repeater/sensor).
     */
    #if defined(MY_GATEWAY_SERIAL) || defined(MY_GATEWAY_W5100) || defined(MY_GATEWAY_ENC28J60) || defined(MY_GATEWAY_ESP8266) || defined(MY_GATEWAY_LINUX) || defined(MY_GATEWAY_MQTT_CLIENT)
    #define MY_GATEWAY_FEATURE
    #define MY_IS_GATEWAY (true)
    #define MY_NODE_TYPE "GW"
    #elif defined(MY_REPEATER_FEATURE)
    #define MY_IS_GATEWAY (false)
    #define MY_NODE_TYPE "REPEATER"
    #else
    #define MY_IS_GATEWAY (false)
    #define MY_NODE_TYPE "NODE"
    #endif
    
    // Enable radio "feature" if one of the radio types was enabled
    #if defined(MY_RADIO_NRF24) || defined(MY_RADIO_RFM69) || defined(MY_RADIO_RFM95) || defined(MY_RS485)
    #define MY_SENSOR_NETWORK
    #endif
    
    // HARDWARE
    #if defined(ARDUINO_ARCH_ESP8266)
    #include "core/MyHwESP8266.cpp"
    #elif defined(ARDUINO_ARCH_AVR)
    #include "drivers/AVR/DigitalWriteFast/digitalWriteFast.h"
    #include "core/MyHwAVR.cpp"
    #elif defined(ARDUINO_ARCH_SAMD)
    #include "core/MyHwSAMD.cpp"
    #elif defined(__linux__)
    #include "core/MyHwLinuxGeneric.cpp"
    #endif
    
    // LEDS
    #if !defined(MY_DEFAULT_ERR_LED_PIN) && defined(MY_HW_ERR_LED_PIN)
    #define MY_DEFAULT_ERR_LED_PIN MY_HW_ERR_LED_PIN
    #endif
    
    #if !defined(MY_DEFAULT_TX_LED_PIN) && defined(MY_HW_TX_LED_PIN)
    #define MY_DEFAULT_TX_LED_PIN MY_HW_TX_LED_PIN
    #endif
    
    #if !defined(MY_DEFAULT_RX_LED_PIN) && defined(MY_HW_TX_LED_PIN)
    #define MY_DEFAULT_RX_LED_PIN MY_HW_TX_LED_PIN
    #endif
    
    #if defined(MY_LEDS_BLINKING_FEATURE)
    #error MY_LEDS_BLINKING_FEATURE is now removed from MySensors core,\
    define MY_DEFAULT_ERR_LED_PIN, MY_DEFAULT_TX_LED_PIN or\
    MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
    #endif
    
    /**
     * @def MY_DEFAULT_LED_BLINK_PERIOD
     * @brief Default LEDs blinking period in milliseconds.
     */
    #ifndef MY_DEFAULT_LED_BLINK_PERIOD
    #define MY_DEFAULT_LED_BLINK_PERIOD 300
    #endif
    
    #if defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_TX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN)
    #include "core/MyLeds.cpp"
    #else
    #include "core/MyLeds.h"
    #endif
    
    #include "core/MyIndication.cpp"
    
    
    // INCLUSION MODE
    #if defined(MY_INCLUSION_MODE_FEATURE)
    #include "core/MyInclusionMode.cpp"
    #endif
    
    
    // SIGNING
    #if defined(MY_SIGNING_ATSHA204) || defined(MY_SIGNING_SOFT)
    #define MY_SIGNING_FEATURE
    #endif
    #include "core/MySigning.cpp"
    #include "drivers/ATSHA204/sha256.cpp"
    #if defined(MY_SIGNING_FEATURE)
    // SIGNING COMMON FUNCTIONS
    #if defined(MY_SIGNING_ATSHA204) && defined(MY_SIGNING_SOFT)
    #error Only one signing engine can be activated
    #endif
    #if defined(MY_SIGNING_ATSHA204) && defined(__linux__)
    #error No support for ATSHA204 on this platform
    #endif
    
    #if defined(MY_SIGNING_ATSHA204)
    #include "core/MySigningAtsha204.cpp"
    #include "drivers/ATSHA204/ATSHA204.cpp"
    #elif defined(MY_SIGNING_SOFT)
    #include "core/MySigningAtsha204Soft.cpp"
    #endif
    #endif
    
    
    // FLASH
    #if defined(MY_OTA_FIRMWARE_FEATURE)
    #include "drivers/SPIFlash/SPIFlash.cpp"
    #include "core/MyOTAFirmwareUpdate.cpp"
    #endif
    
    // GATEWAY - TRANSPORT
    #if defined(MY_CONTROLLER_IP_ADDRESS) || defined(MY_CONTROLLER_URL_ADDRESS)
    #define MY_GATEWAY_CLIENT_MODE
    #endif
    #if defined(MY_USE_UDP) && !defined(MY_GATEWAY_CLIENT_MODE)
    #error You must specify MY_CONTROLLER_IP_ADDRESS or MY_CONTROLLER_URL_ADDRESS for UDP
    #endif
    
    #if defined(MY_GATEWAY_MQTT_CLIENT)
    #if defined(MY_SENSOR_NETWORK)
    // We assume that a gateway having a radio also should act as repeater
    #define MY_REPEATER_FEATURE
    #endif
    // GATEWAY - COMMON FUNCTIONS
    // We support MQTT Client using W5100, ESP8266 and Linux
    #if !defined(MY_GATEWAY_CLIENT_MODE)
    #error You must specify MY_CONTROLLER_IP_ADDRESS or MY_CONTROLLER_URL_ADDRESS
    #endif
    
    #if !defined(MY_MQTT_PUBLISH_TOPIC_PREFIX)
    #error You must specify a topic publish prefix MY_MQTT_PUBLISH_TOPIC_PREFIX for this MQTT client
    #endif
    #if !defined(MY_MQTT_SUBSCRIBE_TOPIC_PREFIX)
    #error You must specify a topic subscribe prefix MY_MQTT_SUBSCRIBE_TOPIC_PREFIX for this MQTT client
    #endif
    
    #if !defined(MY_MQTT_CLIENT_ID)
    #error You must define a unique MY_MQTT_CLIENT_ID for this MQTT client
    #endif
    
    #include "core/MyGatewayTransport.cpp"
    #include "core/MyProtocolMySensors.cpp"
    
    #if defined(MY_GATEWAY_LINUX)
    #include "drivers/Linux/EthernetClient.h"
    #include "drivers/Linux/EthernetServer.h"
    #include "drivers/Linux/IPAddress.h"
    #endif
    #include "drivers/PubSubClient/PubSubClient.cpp"
    #include "core/MyGatewayTransportMQTTClient.cpp"
    #elif defined(MY_GATEWAY_FEATURE)
    // GATEWAY - COMMON FUNCTIONS
    #include "core/MyGatewayTransport.cpp"
    
    #include "core/MyProtocolMySensors.cpp"
    
    // GATEWAY - CONFIGURATION
    #if defined(MY_SENSOR_NETWORK)
    // We assume that a gateway having a radio also should act as repeater
    #define MY_REPEATER_FEATURE
    #endif
    #if !defined(MY_PORT)
    #error You must define MY_PORT (controller or gatway port to open)
    #endif
    #if defined(MY_GATEWAY_ESP8266)
    // GATEWAY - ESP8266
    #include "core/MyGatewayTransportEthernet.cpp"
    #elif defined(MY_GATEWAY_LINUX)
    // GATEWAY - Generic Linux
    #include "drivers/Linux/EthernetClient.h"
    #include "drivers/Linux/EthernetServer.h"
    #include "drivers/Linux/IPAddress.h"
    #include "core/MyGatewayTransportEthernet.cpp"
    #elif defined(MY_GATEWAY_W5100)
    // GATEWAY - W5100
    #include "core/MyGatewayTransportEthernet.cpp"
    #elif defined(MY_GATEWAY_ENC28J60)
    // GATEWAY - ENC28J60
    #if defined(MY_USE_UDP)
    #error UDP mode is not available for ENC28J60
    #endif
    #include "core/MyGatewayTransportEthernet.cpp"
    #elif defined(MY_GATEWAY_SERIAL)
    // GATEWAY - SERIAL
    #include "core/MyGatewayTransportSerial.cpp"
    #endif
    #endif
    
    // RAM ROUTING TABLE
    #if defined(MY_RAM_ROUTING_TABLE_FEATURE) && defined(MY_REPEATER_FEATURE)
    // activate feature based on architecture
    #if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_SAMD) || defined(LINUX_ARCH_RASPBERRYPI)
    #define MY_RAM_ROUTING_TABLE_ENABLED
    #elif defined(ARDUINO_ARCH_AVR)
    // memory limited, enable with care
    // #define MY_RAM_ROUTING_TABLE_ENABLED
    #endif
    #endif
    
    #if defined(MY_REPEATER_FEATURE)
    #define MY_TRANSPORT_SANITY_CHECK
    #endif
    
    
    #if defined(MY_TRANSPORT_DONT_CARE_MODE)
    #error This directive is deprecated, set MY_TRANSPORT_WAIT_READY_MS instead!
    #endif
    
    
    // RADIO
    #if defined(MY_RADIO_NRF24) || defined(MY_RADIO_RFM69) || defined(MY_RADIO_RFM95) ||defined(MY_RS485)
    // SOFTSPI
    #ifdef MY_SOFTSPI
    #if defined(ARDUINO_ARCH_ESP8266)
    #error Soft SPI is not available on ESP8266
    #endif
    #include "drivers/AVR/DigitalIO/DigitalIO.h"
    #endif
    
    #if defined(MY_RADIO_NRF24) && defined(__linux__) && !(defined(LINUX_SPI_BCM) || defined(LINUX_SPI_SPIDEV))
    #error No support for nRF24 radio on this platform
    #endif
    
    #include "core/MyTransport.cpp"
    
    // count enabled transports
    #if defined(MY_RADIO_NRF24)
    #define __RF24CNT 1
    #else
    #define __RF24CNT 0
    #endif
    #if defined(MY_RADIO_RFM69)
    #define __RFM69CNT 1
    #else
    #define __RFM69CNT 0
    #endif
    #if defined(MY_RADIO_RFM95)
    #define __RFM95CNT 1
    #else
    #define __RFM95CNT 0
    #endif
    #if defined(MY_RS485)
    #define __RS485CNT 1
    #else
    #define __RS485CNT 0
    #endif
    
    
    #if (__RF24CNT + __RFM69CNT + __RFM95CNT + __RS485CNT > 1)
    #error Only one forward link driver can be activated
    #endif
    
    #if defined(MY_RADIO_NRF24)
    #if defined(MY_RF24_ENABLE_ENCRYPTION)
    #include "drivers/AES/AES.cpp"
    #endif
    #include "drivers/RF24/RF24.cpp"
    #include "core/MyTransportNRF24.cpp"
    #elif defined(MY_RS485)
    #if !defined(MY_RS485_HWSERIAL)
    #if defined(__linux__)
    #error You must specify MY_RS485_HWSERIAL for RS485 transport
    #endif
    #include "drivers/AltSoftSerial/AltSoftSerial.cpp"
    #endif
    #include "core/MyTransportRS485.cpp"
    #elif defined(MY_RADIO_RFM69)
    #include "drivers/RFM69/RFM69.cpp"
    #include "core/MyTransportRFM69.cpp"
    #elif defined(MY_RADIO_RFM95)
    #include "drivers/RFM95/RFM95.cpp"
    #include "core/MyTransportRFM95.cpp"
    #endif
    #endif
    
    #if defined(MY_PARENT_NODE_IS_STATIC) && (MY_PARENT_NODE_ID == AUTO)
    #error Parent is static but no parent ID defined.
    #endif
    
    // Make sure to disable child features when parent feature is disabled
    #if !defined(MY_SENSOR_NETWORK)
    #undef MY_OTA_FIRMWARE_FEATURE
    #undef MY_REPEATER_FEATURE
    #undef MY_SIGNING_NODE_WHITELISTING
    #undef MY_SIGNING_FEATURE
    #endif
    
    #if !defined(MY_GATEWAY_FEATURE)
    #undef MY_INCLUSION_MODE_FEATURE
    #undef MY_INCLUSION_BUTTON_FEATURE
    #endif
    
    #if !defined(MY_CORE_ONLY)
    #if !defined(MY_GATEWAY_FEATURE) && !defined(MY_SENSOR_NETWORK)
    #error No forward link or gateway feature activated. This means nowhere to send messages! Pretty pointless.
    #endif
    #endif
    
    #include "core/MyCapabilities.h"
    #include "core/MyMessage.cpp"
    #include "core/MySensorsCore.cpp"
    
    #include <Arduino.h>
    
    #if !defined(MY_CORE_ONLY)
    #if defined(ARDUINO_ARCH_ESP8266)
    #include "core/MyMainESP8266.cpp"
    #elif defined(__linux__)
    #include "core/MyMainLinux.cpp"
    #else
    #include "core/MyMainDefault.cpp"
    #endif
    #endif
    
    #endif
    // Doxygen specific constructs, not included when built normally
    // This is used to enable disabled macros/definitions to be included in the documentation as well.
    #if DOXYGEN
    #define MY_GATEWAY_FEATURE
    #define MY_LEDS_BLINKING_FEATURE //!< \deprecated use MY_DEFAULT_RX_LED_PIN, MY_DEFAULT_TX_LED_PIN and/or MY_DEFAULT_ERR_LED_PIN instead **** DEPRECATED, DO NOT USE ****
    #endif```
    1 Reply Last reply
    0
    • M Offline
      M Offline
      m26872
      Hardware Contributor
      wrote on last edited by
      #2

      https://forum.mysensors.org/topic/4276/converting-a-sketch-from-1-5-x-to-2-0-x

      1 Reply Last reply
      0

      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

      With your input, this post could be even better 💗

      Register Login
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      15

      Online

      12.0k

      Users

      11.2k

      Topics

      113.4k

      Posts


      Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • MySensors
      • OpenHardware.io
      • Categories
      • Recent
      • Tags
      • Popular