ASP.NET рдХреЛрд░ рдФрд░ Arduino рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдШрд░ рдмрдирд╛рдирд╛

рд╕рдВрдЧрд░реЛрдз рдХреЗ рджреМрд░рд╛рди, рдмрд╣реБрдд рд╕рдордп рдерд╛ рдХрд┐ рдореИрдВ рд▓рд╛рднрдкреВрд░реНрд╡рдХ рдЦрд░реНрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЛ рдордЬрдмреВрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдерд╛ рдЬрд┐рд╕реЗ рдХреЛрдИ рднреА рдбреЗрд╡рд▓рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реИред


рдЫрд╡рд┐


рдореИрдВ рдПрдХ рдЫрд╛рддреНрд░ рд╣реВрдВ, рдПрдХ рдЫрд╛рддреНрд░рд╛рд╡рд╛рд╕ рдореЗрдВ рд░рд╣рддрд╛ рд╣реВрдВред рдХрдорд░реЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╕реВрдХреНрд╖реНрдо рдЬрд▓рд╡рд╛рдпреБ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ: рдпрд╣ рдЧрд░реНрдо рд╣реИ, рдлрд┐рд░ рдардВрдбрд╛ рд╣реИ, рдлрд┐рд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣рд╡рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрд░рд╛рдорджрд╛рдпрдХ рдХрд╛рдо рдФрд░ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред


рддреЛ рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИред


рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ


рдХреЛрдиреЗ рдореЗрдВ рдПрдХ рдкреБрд░рд╛рдирд╛ рд▓реЗрдХрд┐рди рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рд╢рдВрд╕рдХ рдерд╛ред


рдЫрд╡рд┐


рд╕реНрдХреВрд▓ рд╕реЗ рдмрдЪрд╛ рд╣реБрдЖ рдПрдХ Arduino Uno рднреА рд╣реИред


рдЫрд╡рд┐


, -. VPS Centos 7.



Arduino. .


  #include <Adafruit_GFX.h>
  #include <Adafruit_PCD8544.h>
  #include "DHT.h"
  #define DHTPIN 2 //  ,    
  int fanPin = 3;
  byte incomingByte;
  DHT dht(DHTPIN, DHT22);

  void setup() {
    pinMode(fanPin, OUTPUT);
    Serial.begin(9600);
    dht.begin();
  }

  void loop() {
    //  2   
    delay(2000);
    // 
    float h = dht.readHumidity();
    //  
    float t = dht.readTemperature();
    //     .
    if (isnan(h) || isnan(t)) {
      Serial.println("   ");
      return;
    } 

    Serial.print(" ");
    Serial.print( h );
    Serial.print(" ");
    Serial.print(t);
    Serial.print(" \n");

    if (Serial.available() > 0) {
      incomingByte = Serial.read();

      if(incomingByte == '0'){
        digitalWrite(fanPin, HIGH);
      }
      else if (incomingByte == '1'){
        digitalWrite(fanPin, LOW); 
      }
        Serial.print("I received: ");
        Serial.println(incomingByte, DEC);
    }
  }

ASP.Net ore Arduino . , / - Arduino.


        public void Program()
        {
weatherContext db = new weatherContext();
            var serialPort = new SerialPort("COM3")
            {
                BaudRate = 9600,
                Parity = Parity.None,
                StopBits = StopBits.One,
                DataBits = 8,
                Handshake = Handshake.None
            };
            serialPort.Open();
            var reg = new Regex(@"[0-9]{2}\.[0-9]{2}\s[0-9]{2}\.[0-9]{2}");

            List<DeviceDTO> deviceDTOs = new List<DeviceDTO>();
            var userDevices = db.UserDevices.Where(d => d.UserId == 0);
            foreach (var userDevice in userDevices)
            {
                var device = db.Devices.Where(d => d.Id == userDevice.DeviceId).FirstOrDefault();
                if (device != null)
                {
                    DeviceDTO deviceDTO = new DeviceDTO()
                    {
                        Id = device.Id,
                        Status = device.Status,
                        Name = device.Name
                    };
                    deviceDTOs.Add(deviceDTO);
                }
            }
            while (true)
            {
                DeviceActivator(serialPort, deviceDTOs);
                string message = serialPort.ReadExisting();
                Console.WriteLine("message is: " + message);
                var match = reg.Match(message);
                IFormatProvider formatter = new NumberFormatInfo { NumberDecimalSeparator = "." };
                if (match.Success)
                {
                    string a = message.Substring(0, 5);
                    double humidity = double.Parse(a, formatter);
                    double temperature = double.Parse(message.Substring(6, 5), formatter);

                    List<MeteringWriteDTO> meterings = new List<MeteringWriteDTO>();
                    var meteringTemperature = new MeteringWriteDTO()
                    {
                        Id = meteringCount + 1,
                        Date = DateTime.UtcNow,
                        Value = temperature,
                        SensorId = 0,
                    };
                    meterings.Add(meteringTemperature);
                    var meteringHumidity = new MeteringWriteDTO()
                    {
                        Id = meteringCount + 1,
                        Date = DateTime.UtcNow,
                        Value = humidity,
                        SensorId = 1,
                    };
                    meterings.Add(meteringHumidity);
                    SetSecondMetering(meterings);
                    Console.WriteLine(message + DateTime.UtcNow + '\n');
                    System.Threading.Thread.Sleep(1000);
                }
                if (DateTime.UtcNow.Second == 0)
                {
                    SetMinuteMetering();
                }
                if (DateTime.UtcNow.Minute == 0 && DateTime.UtcNow.Second == 0)
                {
                    SetHourMetering();
                }
                if (DateTime.UtcNow.Hour == 0 && DateTime.UtcNow.Minute == 0 && DateTime.UtcNow.Second == 0)
                {
                    AddDay();
                }
            }
        }

PostgreSQL.


, :


рдЫрд╡рд┐


, :


рдЫрд╡рд┐


- ASP.NET Core, . :


рдЫрд╡рд┐


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рд╣реИред рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕реЗрдВрд╕рд░ рдХреА рд░реАрдбрд┐рдВрдЧ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред


рд╕рд╛рд░рд╛рдВрд╢


рдкрд░реАрдХреНрд╖рдг рдХреНрдпрд╛ рд╣реБрдЖ:


рдЫрд╡рд┐


рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ! рдкреНрд░рд╢рдВрд╕рдХ рдмрд┐рдирд╛ рдХрд┐рд╕реА рджреЗрд░реА рдХреЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд▓рдЧрднрдЧ рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИред


рдпрд╣ рд╕реЗрдВрд╕рд░ рд░реАрдбрд┐рдВрдЧ, рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрд░ рдкрд░ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХреЗрдВред рдЖрдк рдЙрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реЗрдВрд╕рд░ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред


рдпрджрд┐ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕ рдХрджрдо рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЗрдЦ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред


All Articles