Популярные проекты

WEB PICµBASIC LOGIC CONTROLLER

USB PICµBASIC Mid Hardware

USB PICµBASIC LOGIC CONTROLLER

DDS генератор сигналов "OSKAR-DDS"

Термостол для оплавления паяльной пасты

Осциллограф Карманный "OSKAR" V3.1

Электроника и механика 3-х координатного станка ЧПУ (Hobby CNC)

Простой счетчик

Измеритель ESR и емкости конденсаторов

Самодельный установщик SMD компонентов - раскладочный станок "SMD PLACER V2"

Прибор для измерения частоты, емкости, индуктивности, сопротивления

Выключатель /диммер светодиодных лент с ДУ.

Светомузыка «СЕМИЦВЕТИК» + автомат световых эффектов.

Универсальный прибор для автомобиля. Часы, термометр, вольтметр, тахометр.

Все, что нельзя запрограммировать на ассемблере, приходится паять.

      Этот сайт посвящен моим проектам на PIC контроллерах, доступных для публичного освещения. Все приведенные схемы реализованы в железе и работают в настоящее время в быту или производстве. Для написания программ использован пакет MPLAB/х , свободно распространяемый фирмой MICROCHIP. Используется программатор PICKIT2/3, ICD2/3. Любую конструкцию можно собрать самому, даже если она платная и получить бесплатно код разблокировки. Также можно приобрести в качестве набора для сборки или готового изделия. Принимаются заказы на разработку аналогово-цифровой или цифровой электроники, систем управления и электроники для производства с применением контроллеров.
Вопросы и предложения писать на почту Gennadiy.V@gmail.com
Если у Вас есть интересные предложения, закакзы или вопросы и форум Вам не помог - адрес тот же.


WEB PICµBASIC LOGIC CONTROLLER
WebServer - настройка и программирование

    Пример оформления Web страниц

           

            Авторизация

            Сервер поддерживает авторизацию пользователей. Авторизация может быть выключена установкой пустых логинов и паролей. Включить /выключить можно только из консоли PICµBASIC. Для подключения к консоли может потребоваться авторизация, как администратора. Для входа на сервер предусмотрен только один логин/пароль. Для блокировки сервера можно запретить доступ к файловым системам или установить никому не известный пароль.
            Если авторизация включена и не пройдена, то при запросе любой страницы будет выдан файл с именем  «lpass.htm», который должен присутствовать в файловой системе. В случае бездействия пользователя более 1 минуты и новом запросе -  снова потребуется вводить логии/пароль. 
           
            Форматы файлов

            Тип файла определяется по его расширению. Файлами для сервера являются *.htm, *.txt, *.gif ,*.png, *jpg, *.css, *.ico. Для них передаются соответствующие MIME типы. В этом случае этот файл будет показан браузером на странице. Для всех остальных и для расширений указанных ПРОПИСНЫМИ буквами передается MIME тип "application/download", и Ваш браузер скачает этот файл.

 

            Размещение файлов в памяти контроллера

            WEB сервер может работать с файлами размещенными в двух файловых системах. Первая размещается в памяти контроллера, ее объем 60к. Эта файловая система доступна только на чтение и только для WEB сервера. Вторая файловая система (FLASH DISK) объемом 128к   размещена во внешней Flash памяти и доступна WEB серверу на чтение и программе BASIC полный доступ. Настройку, какие системы  использовать WEB серверу, можно произвести из консоли PICµBASIC.
            Загрузка файлов в память контроллера производится также как загрузка самого  PICµBASIC, с помощью программы BASIC_BOOTLOADER.exe по сети. Загрузка производится сразу всего диска в один прием. Никакие другие файловые операции не поддерживаются. Пред загрузкой файлы должны быть конвертированы в файл прошивки WEB_TXT_FS.HEX. Самый простой способ - применить бесплатную программу  MPLAB для микроконтроллеров PIC MICROCHIP. Пример проекта прилагается.

            Общие правила создания файловой системы.

Адрес начала файловой системы в памяти программ - 0x10000, окончания 0x1DFFF.
            ORG     0x10000

            Текстовые, HTML файлы.

Общие правила для текста  - конец файла обозначается  кодом  0x1B = ESC, нули 0x00 содержащиеся в файле не выводятся. Тогда стоки можно объединять без привязки к четным/нечетным адресам. Текстовые файлы записываются в кавычках “.

            Бинарные файлы.

Если длинна бинарного нечетная, требуется  дописать  0x00 в конце и в значении длинны файла  отнять единицу. Бинарные файлы записываются в виде массива байт. Для конвертации в HEX вид можно использовать любой HEX редактор.

            Имена файлов

Имена файлов для WEB сервера должны содержать только маленькие буквы в расширении, стартовый файл всегда имеет имя index.htm

             Устройство файловой системы

Сначала идет каталог файлов, всего максимум 32 файла, каталог  всегда должен быть заполнен на все 32 файла, можно пробелами или любыми другими символами.

 Структура каталога - 1 запись  = 16 БАЙТ
 11 байт имя без точки, всегда 8 байт имя + 3 расширения.  Если нет символов, вместо них пробелы, пробелы после имени    не анализируются, но должны быть.
 Затем три байта  - вектор адреса где лежит файл,  первый байт старший.
 Затем два байта  - длинна файла 
 Структура жесткая, размеры полей менять нельзя.
 В конец html файла при передаче, сервер всегда допишет подвал страницы, включая </body></html>",0x0D,0x0A
 Если в файле есть двойная кавычка, которую надо выводить, то заменять на ее код - пример REPLACE  '"' = '",0x22,"'

Пример  одной записи в каталоге

DB      "index   htm" ,upper INDEX_HTM, high INDEX_HTM, low INDEX_HTM, high (END_INDEX_HTM-INDEX_HTM), low (END_INDEX_HTM-INDEX_HTM)

Пример этого файла

INDEX_HTM
                DB            "<html><head><title>HELLO</title></head><body><hr><br><center>HELLO</center>",0x0D,0x0A
END_INDEX_HTM

В общем все достаточно просто. Берем пример в разделе Файлы / Files , правим текст , Project->Build all и все, прошивка готова

 

            Размещение файлов  на  Flash диске

Файловая система FLASH диска идентична обычным файловым системам. Вам необходимо только закачать туда файлы по сети с помощью программы BASIC_Terminal.exe. Запускаем терминал, в разделе Flash disk указываем имя файла, которое будет на FLASH диске, нажимаем кнопку Send. Выбираем файл на компьютере и ожидаем окончания его загрузки. И все. Для контроля наберите DIR в консоли. 

            Взаимодействие PICµBASIC и WEB сервера.

            WEB сервер и интерпретатор PICµBASIC – это два независимых друг от друга процесса, выполняющихся одновременно. Запросы WEB сервера к PICµBASIC выполняются всегда между исполнением операторов и функций последним. WEB сервер имеет доступ к ресурсам PICµBASIC  от авторизованных пользователей:
            - Чтение состояния портов
            - Установка и сброс портов настроенных на вывод  из PICµBASIC.
            - Чтения переменных PICµBASIC с интерпретацией как число и как текст.
            - Запись значений в переменные PICµBASIC как число и как текст.
            - Доступ к файловой системе FLASH disk на чтение (может быть отключен).
Обмен между сервером и PICµBASIC происходит только в текстовом виде. Числа передаются как текст. WEB сервер отправляет запросы к PICµBASIC только в случае корректного ввода имен и значений запроса. Программа пользователя на BASIC обычно предусматривает контроль переменных, которые в данном контенте  HTML страниц могут меняться, и принимает необходимые действия. Результаты своей работы, которые необходимы пользователю, программа на BASIC помещает в переменные или файлы на FLASH диске. И WEB сервер может выводить на страницы эти данные, скачивать файлы с данными или менять графические файлы на странице в зависимости от результатов работы программы на BASIC. 
Пользователь имеет возможность менять по своему усмотрению дизайн, состав страниц, наборы передаваемых данных путем загрузки своих HTML файлов.
            Если по простому: Пользователь на странице нажимают кнопку/ссылку. Браузер отправляет данные и в переменной PICµBASIC появляется номер кнопки/текст/число. Программа на BASIC опрашивает переменную и увидев изменение  чего то делает. Результаты работы размещает в других переменных. Это могут быть как и данные так и мена файлов, ссылки. Пользователю отправляется HTML страница, в которой на месте вставки будет число/текст/картинка с этим именем файла.

            Стандарты подстановок HTML файлов для доступа к переменным BASIC

            Для вывода на страницах WEB сервера интерактивной информации предусмотрен механизм подстановок в HTML файл значений переменных  PICµBASIC и состояния портов ввода вывода.
           
                        Общие правила

            Подстановкой считается текст в HTML файле вида ~xxxxxx~ . Символы «~» являются признаком начала и конца вставки, длинна текста между символами всегда равна 6 символам. Для вывода на страницу самого символа «~» требуется в тексте страницы его дублировать. Например  текст файла содержит «равно ~~ 5», при этом на страницу будет предано  «равно ~ 5».   

            Вывод текстовых переменных

Текстовыми переменными в PICµBASIC считаются индексные переменные  вида $(x). Они могут быть переменной длинны. Любая строка текста может быть записана в массив индексной переменной $(x).  В первой ячейке хранится длинна текста,  это байт со значением  от 0x00 до 0x3F(0-63) байт, в остальных  сам текст в ASCII кодах символов. Для вывода на страницу текста из этой переменной применяется подстановка вида  ~VARxxx~, где xxx – адрес начала массива. Например   в тексте применена подстановка ~VAR050~, значение переменной  $(50)  равно 0x09,”Выключено”. На Web страницу вместо  ~VAR050~ будет отправлено 9 символов (первый байт индексной переменной)  именно  слово Выключено (байты с 2 по десятый индексной переменной).

Примеры:
Значение переменной              Текст файла                                                    Текст на странице
$(50) = 0x03,”Вкл”.                «Выключатель в положении ~VAR050~.»                             «Выключатель в положении Вкл.»
$(60) = 0x07,”OFF.gif”.           <a href="index.htm"><img src="~VAR060~"></a>              <a href="index.htm"><img src="OFF.gif "></a>

Таким образом, можно создавать динамические WEB страницы на основе данных предоставляемых программой  BASIC.

            Вывод числовых переменных

Для вывода значения числовых переменных применяется подстановка вида ~VARDxa~, где х – число от 0 до 3, а – имя переменной. Число определяет необходимость вывода десятичной точки и количество знаков после запятой. Имя переменной соответствует именам переменных в  PICµBASIC, а именно буквы латинского алфавита от a до z  и от A до Z.   
Значения переменных выводятся без незначащих нулей. Диапазон значений переменных от -32768 до 32767.

Примеры:

            Значение переменной              Текст файла                                                    Текст на странице

F=355                                                     «температура ~VARD1F~ град.»                            «температура 35.5 град.»
F=-35                                                     «температура ~VARD0F~ град.»                            «температура -35 град.»
H=65                                                      «сдвиг на  ~VARD3H~ мм.»                                    «сдвиг на 0.065 мм.»

            Вывод состояния портов

Состояние порта описывается текстом «ON » и «OFF», соответственно высокий и низкий уровень на порту ввода вывода
Применяемая подстановка  ~PORTxx~ , где xx – номер порта ввода-вывода (01-34), всегда две цифры.

 

Примеры:

            Состояние порта                       Текст файла                                                     Текст на странице
I/O01 = 1                                               «выход №1:  ~PORT01~.»                                     «выход №1:  ON
                I/O02 = 0                                                «выход №2:  ~PORT02~.»                                     «выход №2:  OFF

В случае неправильного формата  подстановки на страницу будет выдано ~ERROR

Служебные подстановки
~KYВыводит уникальный номер сессии вида KYXXX
Если он будет в теле запроса вида & KYXXX= и номер сессии будет совпадать  то логин/пароль для этого запроса проверяться не будет.

            Передача данных к серверу, тег FORM

Пример простейшей формы запроса данных, в данном случае авторизация.
<form action="index.htm" method="get">
                    Login:
                    <input type="text" name="lg" />
                    Password:
                    <input type="password" name="ps" />
                    <input type="submit" value="ok"/>
</form>
Как видим, все соответствует стандарту. Сервер поддерживает только метод GET. Для правильной интерпретации данных ввода  значение имеют имена полей, например name="lg" например тут имя будет lg .Так же в некоторых случаях имеет значение тип содержимого. Общая длинна передаваемых данных в одной форме не может превышать 127 байт.

            Имена полей для запросов  сервера

Сервер обрабатывает следующие имена:

Имя поля = значение

                Безопасность

lg=”asdf”          - user login
ps=”asdf”          - user pass
al=”asdf”          - admin login
ap=”asdf”         - adminpass

Управление портами
            Внимание:  для успешной операции пользователь должен быть авторизован, если включено.

PR=xx                          - portreset , где xx номер порта , две цифры  от 01 до 34
PR=01              Устанавливает на выходе нужного порта низкий логический уровень.
..                      Предварительно из программы на BASICили консоли нужный порт должен быть настроен на вывод
PR=20

PS=xx                          - portset, где xx номер порта , две цифры  от 01 до 34
PS=01              Устанавливает на выходе нужного порта высокий логический уровень.
..                      Предварительно из программы на BASICили консоли нужный порт должен быть настроен на вывод
PS=20

Передача значения в переменные BASIC
            Внимание:  для успешной операции пользователь должен быть авторизован, если включено.

   Простые переменные
VDx                  - получить значение в переменную xкак число, где x= имя переменной  a-z, A-Z
VDa=55                        - после передачи переменная  а=55  
VDC=-2155       - после передачи переменная  С=-2155 , диапазон чисел от -32768 до 32767  

VSy                  - получить значение в переменную yкак код символа, где y= имя переменной  a-z, A-Z
VSa=5              - после передачи переменная  а содержит код символа 5 = 0x35  
VSC=Q             - после передачи переменная  С содержит код символа Q

Индексные переменные
IDyyy             - получить значение в переменную  как число
ID020=127        - переменная $(20) = 127, диапазон чисел от -127 до  127

ISyyy              - получить значение в переменную с адресом yyy как строкy,максимальная длинна строки – 32 байта
IS320=ASDFG  - переменная $(320) = 5 – число символов, $(321)-$(325) = ASDFG -  содержат саму строку посимвольно

При получении пустого поля в запросе  VDx или IDyyy значение переменной не меняется.
При получении пустого поля в запросе  VSy значение переменной становится равно нулю
При получении пустого поля в запросе  ISyyy  только обнуляется длинна строки.

Внимание: В случае неправильного запроса сервер его проигнорирует.

Пример установки порта 1 – два варианта

                    <formaction="index.htm" method="get">
<input type="submit" name="PS"  value="01"/>
                    </form>

                    <form action="index.htm" method="get">
                    <input type="hidden" name="PS" value="01" />
                    <input type="submit" value="Установкапорта №1" />
                    </form>



ПО распространяется под лицензией Shareware. Вы можете скачать с сайта схемы, инструкции, прошивки бесплатно.
Новые версии прошивок и документации скачивать в разделе Файлы / Files

Обсудить на форуме
Купить


Страницы

     Общее описание и технические характеристики
     Аппаратная платформа. Схемы, разводка.
     Программное обеспечение. Bootloader - прошивка и программа загрузки.
Web PICµBASIC. Загрузка и установка

     Программное обеспечение. BASIC_Terminal.
     WEB PICµBASIC. Описание языка программирования
     WEB PICµBASIC. Список команд, операторов, функций. Часть 1.
     WEB PICµBASIC. Список команд, операторов, функций. Часть 2.
     Web PICµBASIC. WebServer - настройка и программирование
     Web PICµBASIC. Файловая система.

     Web PICµBASIC. Модули расширения.
     Дисплей HD44780. Схема подключения. Список команд, операторов, функций.
     Интерфейс UART, RS232/RS485. Схема подключения. Список команд, операторов, функций.
     Шина 1-Wire. Ключи и датчики. Схема подключения. Список команд, операторов, функций.
     RFID EM-Marin 125 кГц. Схема подключения. Список команд, операторов, функций.
     Датчик AM2302/DHT22. Схема подключения. Список команд, операторов, функций.
     Дискретные входы. Схема подключения. Список команд, операторов, функций.
     Интерфейс MODBUS RTU MASTER. Список команд, операторов, функций.
     Клавиатура и силовые ключи. Схема подключения. Список команд, операторов, функций.
     Примеры программирования.
     Графический дисплей на контроллере UC1601s.