// -*- c -*-
// WiFi configuration  (2.4GHz)
//
#ifndef DEF_CONF_WIFI
#define DEF_CONF_WIFI
//const char *ssid = "AP-SSID";
//const char * password = "secret-key";
const char * ap_list[] = {
  "SSID1,Key1",
  "SSID2,Key2"
};
#endif
 
/*
  IP configuration
   DHCPでIPアドレスなどを取得する場合は#define USE_DHCP を、
   固定IPの場合は　＃define USE_DHCP をコメントアウトして、その下の情報を定義してください。
*/
//#define USE_DHCP
 
#if !defined( USE_DHCP ) && !defined( DEF_CONF_IP )
#define DEF_CONF_IP
IPAddress local_IP(192, 168, 1, 59);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(8, 8, 8, 8);
IPAddress secondaryDNS(8, 8, 4, 4);
#endif
 
WiFiMulti wifiMulti;
 
//
// for APRS-IS
//     for Ham Radio
// APRS-ISに気象情報を送信する場合は、#define USE_APRSを有効にしてください。
//
//#define USE_APRS
 
 
#if defined( USE_APRS ) && !defined( DEF_CONF_APRS )
#define DEF_CONF_APRS
const char * callsign_ssid = "NOCALL-13";         // コールサイン-SSIDを忘れずに
const int passcode = 00000;                       // APRS-ISにアクセスするためのpasscode
 
//
// センサを室内に設置する場合、その気温と湿度をAPRS-ISに送信しても、あまり意味がありませんので
// その場合は、下記の２変数を 0 にしてください。
//  ただし、現行のAPRSでは、温度、湿度を空データにすることは仕様上できないかもしれません。
const int send_humidity = 1;
const int send_temperature = 1;
 
// Your Location
const float lat = 33.0000;                        // 緯度
const float lng = 130.0000;                       // 経度
const float altitude = 75;  // altitude [m]       // 標高 [m] （気圧の補正用）
 
// Upstream APRS-IS
const char * host = "fukuoka.aprs2.net";  // Old-T2FUKUOKA or fukuoka.aprs2.net
const uint16_t port = 14580;
const int aprs_update_interval = 5;              // 更新間隔 [分]
#endif
 
 
//
//  WebServer機能を有効にする場合は #define USE_WEBSERVER を有効にしてください
//
//#define USE_WEBSERVER
 
//
//
//
//#define USE_DEEP_SLEEP
 
 
//
//
//
//  ESP32 and MBE280 Hardware configuration
//
#ifndef DEF_CONF_GPIO
#define DEF_CONF_GPIO
const uint8_t Address = 0x76;
//const uint8_t Address = 0x77;
//
//  BME280の SDA, SCLを接続したGPIOに合わせて変更してください
//     接続したGPIOに合わせて変更してください
 
//
// 利用不可能なGPIO (ESP32)
//    6,7,8,9,10,11,15 その他色々・・・
// M5Stackの場合、次のGPIOは内部で利用されているため利用できません
//    0,1,3,18,19,23,25
//    LCD関係 14,18,23,27,33
//     34-39 は　INPUTのみ
//  M5Stackの場合、センサーとして、https://amzn.to/34NHbXi を使う場合は、下記がオススメ
//   BME280とM5Stackはできる限り離してください：M5Stackの熱の影響を受けて、通常より数度温度があがって計測されてしまいます
//     （ただし、Groveとは SDA, SCLが入れ替えた設定です。Groveを併用する場合は注意）
//    const uint8_t sda = 22;
//    const uint8_t scl = 21;
//  その他は、回路図を追っかけてください
// https://github.com/m5stack/M5-Schematic/blob/master/Core/Basic/M5-Core-Schematic(20171206).pdf
 
const uint8_t sda = 21;
const uint8_t scl = 22;
 
//const uint8_t sda = 32;
//const uint8_t scl = 33;
 
//
// LED configureation
//   LEDを接続しない場合は、0を指定する
//    M5Stackの場合は33は利用不可
const uint8_t busy_led = 0;
 
#endif
 
#if !defined( DEF_CONF_USE_ANALOG )
#define DEF_CONF_USE_ANALOG
//
//  アナログセンサを接続する場合は、#define USE_ANALOG を定義してください。
//
#define USE_ANALOG
const int analog_gpio[] = { 34, 35 };
#endif
 
#if !defined( DEF_CONF_MORSE_LED )
#define DEF_CONF_MORSE_LED
//
// 気温などをモールス信号（LED）で通知
#define USE_MORSE_LED
const uint8_t morse_led = busy_led;
const uint8_t morse_speed = 200;    // 数値を小さくすると速くなります
#endif
//
//  M5Stackを利用する場合は、USE_M5STACKを定義する、ESP32開発ボードの場合はコメントアウト
//#define USE_M5STACK
#define LCD_BRIGHTNESS  150
#define USE_M5STACK_POWER_CONTROL
 
 
#if !defined( DEF_CONF_USE_LCD_SSD1306 )
#define DEF_CONF_USE_LCD_SSD1306
//
//
// https://amzn.to/2ntemy9 を使う場合は、下記を有効にしてください。（テスト中）
//#define USE_LCD_SSD1306
//
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
 
#endif
 
 
#if !defined( DEF_CONF_USE_MQTT )
#define DEF_CONF_USE_MQTT
// MQTTに気象データを送信する場合は　USE_MQTTを定義してください。
// ライブラリーは　https://github.com/knolleary/pubsubclient
//
#define USE_MQTT
const char * mqtt_host = "ketaitracker.info";
const int mqtt_port = 1883;
const char * mqtt_topic_prifix = "aprs/wx";
 
char mqtt_topic[256]; //  = "aprs/wx/dummy"; // test now
#endif
 
#ifndef DEF_CONF_USE_OTA
#define DEF_CONF_USE_OTA
//
// OTAを利用する場合は#define USE_OTAを有効にしてください。
// Bluetooth経由でプログラムの更新ができるようになります。
#define USE_OTA
#endif
