Arduino + Delphi

iliusvla
Offline
Зарегистрирован: 22.01.2012

Добрый день!

Я решил написать собственный email-нотификатор.(Просто загорается лампочка при новом письме).

 

Програма на Arduino -

int outPin = 12; // Output connected to digital pin 12
int mail = LOW; // Is there new mail?
int val; // Value read from the serial port

void setup()
{
    pinMode(outPin, OUTPUT); // sets the digital pin as output
    Serial.begin(9600);
    Serial.flush();
}

void loop()
{
    // Read from serial port
    if (Serial.available())
    {
        val = Serial.read();
        Serial.println(val);
        if (val == 'M') mail = HIGH;
        else if (val == 'N') mail = LOW;
    }

    // Set the status of the output pin
    digitalWrite(outPin, mail);
}

 

Но я решил сделать все true) И хочу написать програму на Delphi, которая проверяля бы письма на ящике.

Так вот вопрос, кто-нибудь знает, как сделать проверку на все com-порты? То есть я втыкаю через USB Arduino, a Delphi прозванивает их все и находит нужный? И еще, как отправить подтверждение нового письма с Delphi на Arduino.

Сам только новичок, так что не судите строго.

Заранее благодарю!

zhuki
Offline
Зарегистрирован: 12.10.2011

Delphi прозванивает их все и находит нужный?

Занимался подобной темой и немного знаком. Скажите ,а чем отличается нужный COM от ненужного?

 У меня есть большой проект работы с СОМ портом на Делфи . После некоторых переделок им можно воспользоваться.

У меня система отопления построена на Arduino ,а управление и контроль параметров из внешней программы на Делфи. Там применены блоки из этого исходника. Исходник могу дать. Проект большой, есть что изучать.

step962
Offline
Зарегистрирован: 23.05.2011

iliusvla пишет:

Так вот вопрос, кто-нибудь знает, как сделать проверку на все com-порты? То есть я втыкаю через USB Arduino, a Delphi прозванивает их все и находит нужный? И еще, как отправить подтверждение нового письма с Delphi на Arduino.

Delphi-компонент для работы с COM-портами имеется?

разработайте свой протокол общения с Arduino (набор команд-ответов) - он вам в любом случае понадобится для пересылки информации о поступивших письмах. Среди прочего определите и Handshake-команду (что-то типа "здорово" - "здоровее видали"). Последовательно во все найденные COM-порты посылаете с компьютера Handshake-команду и тот порт, который ответит правильно, и есть ваше Ардуинко.

Как отправить сообщение о поступлении писем? Да отправляете в COM-порт любую белиберду типа "arrived: 15 mails", а уж микроконтроллер, получив все это в UART-буфер (почитайте о классе Serial в разделе Программирование), читает информацию с помощью Serial.read(), расшифровывает и реагирует соответственно.

iliusvla
Offline
Зарегистрирован: 22.01.2012

zhuki пишет:

Delphi прозванивает их все и находит нужный?

Занимался подобной темой и немного знаком. Скажите ,а чем отличается нужный COM от ненужного?

У меня есть большой проект работы с СОМ портом на Делфи . После некоторых переделок им можно воспользоваться.

У меня система отопления построена на Arduino ,а управление и контроль параметров из внешней программы на Делфи. Там применены блоки из этого исходника. Исходник могу дать. Проект большой, есть что изучать.

Был бы очень рад исходникам! :) Спасибо!

iliusvla
Offline
Зарегистрирован: 22.01.2012

step962 пишет:

Delphi-компонент для работы с COM-портами имеется?


 

Имеете ввиду Serial библиотеку?

step962 пишет:

разработайте свой протокол общения с Arduino (набор команд-ответов) - он вам в любом случае понадобится для пересылки информации о поступивших письмах. Среди прочего определите и Handshake-команду (что-то типа "здорово" - "здоровее видали"). Последовательно во все найденные COM-порты посылаете с компьютера Handshake-команду и тот порт, который ответит правильно, и есть ваше Ардуинко.

Как отправить сообщение о поступлении писем? Да отправляете в COM-порт любую белиберду типа "arrived: 15 mails", а уж микроконтроллер, получив все это в UART-буфер (почитайте о классе Serial в разделе Программирование), читает информацию с помощью Serial.read(), расшифровывает и реагирует соответственно.

Я думал тупо отправлять команду  в Delphi "whoareyou" на все порты  и eсли ответ с порта "Arduino", то считать этот порт нужным.

step962
Offline
Зарегистрирован: 23.05.2011

iliusvla пишет:

Я думал тупо отправлять команду  в Delphi "whoareyou" на все порты  и eсли ответ с порта "Arduino", то считать этот порт нужным.

Ну это оно и есть - очень низки шансы того, что какое-нибудь другое устройство, кроме вашего, получив по COM-порту ваше "whereareyou", поймет эту команду и тем более ответит в точности до последней буковки и ее регистра.

Цитата:

Имеете ввиду Serial библиотеку?

Давно с Delphi не работал - может быть и Serial.

Fluffy
Offline
Зарегистрирован: 01.06.2011

compconnect.ru/2010/04/rabota-s-com-portom-v-delphi-pri-pomoshhi-winapi/ - здесь написано как работать с ком-портом через WinAPI.

 

 

.c8r
.c8r аватар
Offline
Зарегистрирован: 15.11.2011

Зачем в вашем проекте ардуина?

Хотя...поиграться тоже можно...

iliusvla
Offline
Зарегистрирован: 22.01.2012

.c8r пишет:

Зачем в вашем проекте ардуина?

Хотя...поиграться тоже можно...

Можно как то обойтись?

.c8r
.c8r аватар
Offline
Зарегистрирован: 15.11.2011

Я решил написать собственный email-нотификатор.(Просто загорается лампочка при новом письме)

Если ардуина только для этого - да, ну а если хочется "поиграться" с ардуиной (что присуще многоим) - то без неё никак)))

iliusvla
Offline
Зарегистрирован: 22.01.2012

.c8r пишет:

Я решил написать собственный email-нотификатор.(Просто загорается лампочка при новом письме)

Если ардуина только для этого - да, ну а если хочется "поиграться" с ардуиной (что присуще многоим) - то без неё никак)))

Нет, нужен именно нотификатор))

zhuki
Offline
Зарегистрирован: 12.10.2011

Скачайте себе AsyncFree104.zip . Это реально работающий проект. Модифицируйте его и получите работу с СОМ портом.

Хочу заметить ,что в вашей задумке СОМ порт не так сложен, как опросить почту из Делфи, здесь можно столкнуться с множеством всевозможных ньюансов. Работайте .Удачи.

Если не сможете скачать дайте хоть почту Вашу.

whoim
Offline
Зарегистрирован: 03.11.2011

 Можно скроллок на клавиатуре зажигать, и ардуина не нужна ))))

whoim
Offline
Зарегистрирован: 03.11.2011

Вот и доп**лся.. надо писать программу, которая

1) слушает (listen) порт на tcpip и получает на него данные
2) обрабатывает (группирует данные в массив)
3) отправляет все это дело в компорт..

С компортов пока вопросов нет, но посоветуйте решение под 1) вопрос? Еще не работал на таком уровне, да и дельфи последний раз пять лет назад пользовал.. и то в основном - базы и отчеты..

BEE-KEE-PER
Offline
Зарегистрирован: 25.12.2016

как с вами связаться?? скинте на почту проект gbi0000010@hotmail.ru

BEE-KEE-PER
Offline
Зарегистрирован: 25.12.2016

zhuki пишет:

Delphi прозванивает их все и находит нужный?

Занимался подобной темой и немного знаком. Скажите ,а чем отличается нужный COM от ненужного?

 У меня есть большой проект работы с СОМ портом на Делфи . После некоторых переделок им можно воспользоваться.

У меня система отопления построена на Arduino ,а управление и контроль параметров из внешней программы на Делфи. Там применены блоки из этого исходника. Исходник могу дать. Проект большой, есть что изучать.

 

как с вами связаться?? скинте на почту проект gbi0000010@hotmail.ru