Архив рубрики: программирование

ESP8266. Narodmon.ru

Отправка данных на сервис narodmon.ru. Простой narodmon.lua скрипт для отправки данных на сервис «Народный мониторинг» для nodemcu. «Народный мониторинг» — это Геоинформационный SaaS сервис по отображению на карте мира и контролю (на ПК, смартфонах и других гаджетах) показаний датчиков своих участников (температуры, влажности, атм.давления, скорости и направления ветра, радиации, энергопотребления и многих других), а также частных и городских веб-камер для публичного или частного(приватного) просмотра. 

local dataN = "#XX:XX:XX:XX:XX:XX\n"
dataN = dataN.."#T085#"..t.."\n#T2302#"..t2302.."\n#Hum#"..h.."\n#Press#"..p.."\n"
dataN = dataN.."##\n"
    print(dataN)
    conn=net.createConnection(net.TCP, 0)
    conn:on("connection",function(conn, payload)
                conn:send(dataN)
                end)
    conn:on("receive", function(conn, payload)
        print('Narodmon says '..payload)
        conn:close()
        end)
    conn:connect(8283,'narodmon.ru')

Код можно подключить к уже существуему проекту метеостанции с небольшими изменениями. Для вашего проекта необходимо ввести MAC адрес устройства в строку «#XX:XX:XX:XX:XX:XX» и внести ряд изменений в другие файлы.

Читать далее

OpenCV. Запись видео из набора изображений

Запись видеофайла из серии изображений при помощи библиотеки opencv на языке Python 3.6. Для записи используется объект VideoWriter, который в моем случае вызывается с заранее определенными параметрами: название видеофайла (для сохранения), fourcc (видеокодек), fps, size, isColour.
Размер видеофайла size определяется при однократном чтении первой в серии картинки. Код последовательно читает картинки (названия серии Hxxxx.jpg — H0000.jpg, H0001.jpg, H0002.jpg и так далее), которые находятся в той же папке, где расположен сам исходник.

import cv2

end = 120		#последний номер изображения в серии
fps = 5			#fps
file_ind = 'H'	#индекс изображения

img = cv2.imread(file_ind+'0000.jpg') #читаем первое изображение
size = img.shape[1], img.shape[0] #получаем размеры - высота/ширина
fourcc = cv2.VideoWriter_fourcc(*'XVID') #подключаем кодек по http://www.fourcc.org/codecs.php
video_name = file_ind + '_video.avi'
video = cv2.VideoWriter(video_name, fourcc, fps, size, True) #создаем видеофайл, определяем параметры

for i in range(0,end,1): #проходим в цикле все изображения
    filename = file_ind+str(i).zfill(4)+'.jpg' #формируем переменную с номером файла изображения
    print(filename) #печатаем номер текущего файла
    try:
        img = cv2.imread(filename) #читаем файл изображения
    except:
        pass
    video.write(img) #дописываем кадр в видеофайл

video.release() #отключаем видеозапись
cv2.destroyAllWindows()

В результате сборки изображений получается следующее видео движения облачных масс в радиусе действия ДМРЛ аэропорта Борисполь.

Изображения для составления видео получены с сайта meteo.gov.ua и представляют собой данные ДМРЛ (доплеровского метеорологического радара) аэропорта Борисполь (UKBB) за 4 апреля 2017 года.